I have a pretty clear idea of how our first playable release will play out. I’ve divided my notes into defined and undefined to give an indication of how complete I consider different designs, but anything is of course subject to discussion.
Goal: Don’t let any creature species go extinct
In other words the loss condition is that a creature species goes extinct as a result of the player failing to reach a stable (enough) equilibrium in the ecosystem.
2-5 minute game sessions
A game session should last about 2-5 minutes. It won’t be variable: we will settle on a final timer after some play-testing.
All game sessions have a maximum play time, but they may also end before reaching their maximum if a creature species dies out before the interactive part of the game session has ended.
Play X minutes, simulate for X minutes
Every game session will operate this way. Let’s say the fixed game length we landed on is 5 minutes. After 5 minutes of gameplay you can no longer interact with the game. It will now play itself out without any intervention for another 5 minutes* (sped up). If no creature species has gone extinct in this time, you’ve successfully completed the challenge.
Interaction flow (in default speed)
10 seconds of non-interactive world simulation
10 second window to choose a mutation. Change is not applied until the end of the decision window.
10 seconds of non-interactive world simulation
10 second window (…)
Optional: Session seeds
We’ve talked about determinism. I think we should embrace it as a core mechanic. It’s a good constraint to grind our design explorations against to make them polished.
Whenever I start a game I want to have two options:
- Play random seed
- Play specific seed
Mostly I’ll play
random seed. But if @khskarl tells me about how he just can’t figure out if seed#113 is even solvable, I’ll want to try that
specific seed out for myself and see if I can crack it. I think all of us would want to give it a go
Later on we might even add options such as “Popular seeds” and “Unsolved seeds”.
Think of every seed in a game iteration as a distinct puzzle to be solved.
Optional: Sentry tracking
There’s a very simple and interesting use case for Sentry here as well, which we’ve successfully integrated with Amethyst already. (We have an instance somewhere but I think it’s private for now.)
We’d like to track things like:
- How many different seeds have been played
- Which seeds take the most/least attempts to solve?
- Which seeds remain unsolved?
In the first version of the game we could limit the seeds to just 10 (i.e. they don’t even have to be computer-generated) so that we’ll have some meaningful overlap. In the early stages of the game we’ll be lucky to keep a play tester engaged for more than a handful of game sessions anyway.
We’ve touched on this a little bit in chat:
I think I know what I want the first version of interaction to be like. Quite simply: Every 20 seconds you get 10 seconds to make a decision. You get to choose one creature type to tweak. You can change up the stats of this creature however you like, within certain power limits of course.
Think of it essentially like each creature has 10 traits (movement speed, health etc) all with 10 upgrade levels, but you only have 50 upgrade points per creature. And every round you only get to choose a single creature to tweak. Followed by 20 seconds of gameplay you can’t interact with
You just gotta observe and figure out where you should attempt a balancing act next
I like the idea, but for the first iteration I would simplify it: Every 20 seconds let the user choose between two random traits for each type: E.g. choose between
+ 20 Health; - 0.1 attack speedand
+0.1 attack speed - 0.1 speed
Or something similar, basically I want the user to be able to do the decision with a single click
I like @marot’s simplified approach better than my more complicated design. But we can’t do random traits because we want other players’ playthroughs of a particular seed to play out exactly the same if they make the same choices, and they should have the exact same choices available to them. I realise that with seed-based faux randomness the game will actually remain deterministic, but I want players to be able to predict to a pretty good extent what options they’ll have available to them in the next turn when they’re deciding on a play for the current turn.
Maybe the degree to which you can manipulate any given trait is decided by the seed. So in seed#111 you can change “Movement speed” in increments of 1 point, whereas in seed#222 “Movement speed” can only be changed in increments of 5 points. Heck, in seed#333 “Movement speed” can’t be changed at all!
This would make it so that you can’t easily use the same strategy for achieving equilibrium in every seed session.
I’ll follow up later with a more specced out version of what this could look like.