Gamedev Diary: Prototyping (What Matters)
It’s been a sufficiently long enough time since I began this project that I don’t remember a lot of my very early thought processes. What was I thinking? Mostly that I was building a toy, that thing that I was carefully not considering might become a game. A fan had already created a web page that, when reloaded, would generate a new text description of a Jokkad. That must have been on my mind, because I said at the time, “This is sort of a more needlessly complicated variation of that jokka generator.”
Which it was, because instead of randomly mixing up characteristics on every reload, it started from the premise: “Let’s define the genetics of two parents, then generate a child with some inheritance logic.”
So here’s where we can identify an important principle: that you start with the things that matter to you. What mattered to me was not “Hit a button and get a randomly generated, valid result for the species.” It was “hit a button and get a result that implies heritable traits, and refers to the parents, and therefore implies a story. And the story is ‘this is someone’s child.’” It wouldn’t have been trivial to do image generation of a random baby Jokkad, but it would have been a far more straightforward task than starting with genetic simulation. But what mattered to me was the genetic simulation, or I wouldn’t have started with it.
You often don’t know what you care about immediately. Sometimes, you only notice it later.
I began, then, by defining parents and getting the generator to blend colors and guess at aptitudes. (Not only that, but it was important to me to have mutations! Not just for aptitudes, but for the coloration.)
But it was hard to troubleshoot something that reported colors as hex numbers, so from there I moved on to “let’s make sure we can see the colors. Then I'll know if it's working or not.”
Even this strained my powers of imagination, though, so once it was producing these swatches, I sat down and drew a baby graphic, bashed out the color fill logic, and finally pressed a button to generate a baby.
Here’s the first. “omg he’s hideous” was, I think, what I said, and then I started laughing. And I laughed through all the subsequent reloads as I tested and got endless variations. Truly endless, because unlike many pet games, I insisted on having the entire hex palette available instead of a few pre-defined colors. Canonically, the Jokka as a species have eyes more capable of discerning color and gradation than ours, so there was an in-world rational for what I wanted to do anyway. And I was charmed by the idea that, after a sufficiency of generations, colors would become muted, and what that would suggest about more brightly colored individuals. "More attractive," I thought. "I should make sure that, the next time I write a story about them, I am more sensitive to how unusual it is, to have saturated skin colors, hair colors, eyes."
At this point, I had successfully created the “toy” I’d been talking about making. But the design of the toy was already groundwork for something bigger in scope, because it was asking questions. Who are these parents? Do they look at these babies and say ‘my gods, that is definitely not my hair, that weird greenish color is your fault.’ Does that child grow up and have children of her own? Do they inherit their grandmother’s nurturing spirit? Or does a random mutation turn them into the world’s next inventor while their extended family gossips about how weird they are?
From a coding perspective, I’d tackled two separate tasks: inheritance logic, and image generation using very basic templates.
I had a long way to go. But I was having fun, and it still felt like a low stakes learning experience. So I kept going, to see what would happen next.