Why Should I Care?

Many of us played retro games when we were kids. Anything from Nintendo from the 80s/90s to flash games in the early 2000s. However, as time went on, the natural spark of these games died down as they were mostly linear in gameplay.

Once you have completed them, they no longer feel the same as the first time. It's just like rewatching that favorite show of yours. You already know what's going to happen.

While it may not be the next GTA 6, it could be the start to relive the golden age of gaming. Not everything has to be the next hack n' slash or the run n' gun.

What Does It Do?

With Super Artificial Bros, it's a start to being able to generate new, exciting levels infinitely.

With a new storyline each time, your actions towards characters at the end of each level will determine what gets generated with enemies, items, terrain, and more.

How We Built It

Using pre-existing open-source code of the classic Mario Bros. game, we were able to incorporate the Gemini API to generate random levels. Using JavaScript, HTML, and CSS, we have added character cutscenes at the end of each level with player options to determine gameplay variability.

Challenges

Although it may sound good on paper, using pre-existing code as a template requires good comprehension to be able to debug and edit the game, which had its share of difficulties.

Accomplishments

With just 20 hours, we have managed to implement a system and algorithm that can accurately generate terrain and level design that's completely playable (and won't softlock). We made gameplay playthroughs unique through randomized player decision-making prompts that are different every time.

What We Learned

This was our first time for our team to prompt engineer for a project. We have learned many various concepts, such as training AI with our own given data/code, understanding how to contribute to a project through trading files via version control, and more.

In general, we discovered that AI assistance is only as good as the context you provide. Initially, we struggled with vague requests that led to generic solutions. We learned to include specific code snippets, error messages, and detailed descriptions of observed behavior versus expected behavior. Even a single general, vague statement can be a danger to our work.

To put it bluntly, reverse engineering a program that has been released online wasn't easy; understanding the game's architecture and tracing executions required hours of keyword searching, playtesting, and sleep.

What's Next?

With this project, it has set in stone hopes for more vintage games to be reimagined in the future, including but not limited to Pokémon and Kirby, with endless, rogue-like map and level generation.

Perhaps in the future, we could add in save files using memory to keep track of your progression within the game in terms of decisions and levels generated.

Share this project:

Updates