I’m working on a very simple interactive fiction engine using Gemini. Think Twine but with way fewer features.
I think Gemini fits this use-case really well both from a technology standpoint and also just an aesthetics standpoint.
As of right now, “game” configuration is via a YAML file that looks a little something like this:
rooms:
- room_id: 2824028c-d71c-49cd-9289-c349a640ed9a
room_name: Living Room
room_description: >
You are in the living room. It is a cozy area with
a couch, loveseat, and big chair with ottoman. The seats are separated by end tables.
There is a coffee table in the middle and an entertainment center with TV across from
the seats.
exits:
- exit_description: The kitchen lies to the north.
destination_id: 9dabb186-6046-4570-a585-2fbaadfab3cc
exit_id: 85a71759-5c70-4fc4-8178-8ad8a3bef2d6
- exit_description: To the west is a sliding door that leads to a porch
destination_id: 478f88b7-88fe-4f2d-8b76-35d5f190c4d1
exit_id: 478f88b7-88fe-4f2d-8b76-35d5f190c4d1
- exit_description: To the east is the front door, leading to the yard.
destination_id: cb178734-dd94-4333-87bd-731f8e8ac1ed
exit_id: e4e23c7e-3f54-4bb9-a76e-c899034bc327
Where each destination_id is the room_id of another room.