Inspiration

I think role play is fun and also a great way to improve strategic decision-making and soft skills. Video games lose a bunch of this by restricting player choices. Most RPGs also have limited playability because they contain fixed quests and game world assets.

A Gemini-based RPG solves both of these problems! Much more replayability through nondeterministic generation of people, places, and things, with which you can attempt arbitrary interactions!

What it does

It's an RPG game. The player chooses their name and gender, then most stuff is randomly generated from there. The two current end game conditions are:

  1. Each completion of a major quest has a 1d6 chance to end the game.
  2. Reaching level 5 also ends the game.

Gemini 3 (Flash, for latency minimization) is used in generation of essentially all entities.

How we built it

Using AI studio and lots of playtesting! Gemini 3 was also used as a code assistant.

Challenges we ran into

Free tier gemini rate limits made playtesting to endgame really hard. I had to spread some playtests over multiple days, ultimately deciding to add the "end game at level 5" rule which is a much lower level cap than originally intended.

Accomplishments that we're proud of

  • The game loop works!
  • It's pretty fun
  • Playthroughs are unique with random game asset generation working
  • Help modal -> scroll to bottom -> download game log and sysadmin report are nice touches

What we learned

  • Don't rely on a new gemini request for every encounter. The game instead has a small chance to call for new asset generation and a large chance to re-use what has been seen to far. This caching is a double-win as it drives down gemini cost and latency while also creating a felt sense of a real world where certain monsters are common, for instance.

What's next for dreambound-rpg

The GitHub README has 20+ potential improvements. Some key ones:

  • authentication, social asset sharing, and leaderboards
  • better graphics
  • much higher level cap
  • More variety across quest types, including some that require custom actions

Built With

Share this project:

Updates