This year I submitted an entry to GitHub Game Off 2017. It’s called Wildflower Child.
The challenge for the game jam was to create a game on the theme throwback during the month of November. I actually started right away, and came up with a very cool idea that I’d still like to implement someday. To nobody’s surprise, I didn’t carve out enough time to actually work on the game. I got as far as downloading the Godot engine and walking through a few of it’s tutorials before realizing I’d probably picked something too ambitious, given the holidays and this being a busy time of year at work. So I gave up on the jam.
Alleson encouraged me to pick something up again, and when I got sick enough to miss work in the last week of the month I started noodling on an old idea for a gardening game. I wanted to play with dynamically generated and animated flowers, so I threw together a little JavaScript that would build them in SVG.
Well, I totally failed to make time for #GitHubGameOff – so I'm at least doing some initial exploration for an old idea, and generating some SVG flowers. pic.twitter.com/ajyHtkg9tp
— Bradley C Buchanan (@islemaster) November 30, 2017
In the space of about four hours I was generating a matrix of randomized nice-looking flowers with a sort of antique illustration look. It was kind of fun just to reload the page and see what new flowers appeared, so I figured I might be on to something. I went to bed that night thinking I’d be done with the project, and I could feel good about building something game-like this month.
At this point happy about my one-evening SVG floral wallpaper thing, plus all the surrounding Webpack+Babel setup that I haven't practiced in a while. It's no game, but at least I built something. #GitHubGameOff pic.twitter.com/kOjZ5WL1Bu
— Bradley C Buchanan (@islemaster) November 30, 2017
The next morning I woke up sicker than the day before, so I figured I could at least use my sick day to turn my experiment into something worth sharing. The first step was to change flower generation, giving each flower a ‘genome’ so I could generate exact copies on demand. I could still generate random flowers by generating a random genome.
Silver lining to my sinus infection is maybe having time to turn this thing into a game before the deadline. Step 1: Generate flowers deterministically from a genome so they can be copied (and mixed!) #GitHubGameOff pic.twitter.com/bjO5lGbccZ
— Bradley C Buchanan (@islemaster) November 30, 2017
A flower genome is just a string of hex characters, with every pair representing a gene and controlling one characteristic of the flower. In some cases a gene is treated as a raw random seed, in other cases it’s used as a normalized value (out of 0xFF) to replace a Math.random() result.
Next of course, was mixing genomes.
Middle flower pulls traits from parents (left and right). #GitHubGameOff pic.twitter.com/APL7whdsW4
— Bradley C Buchanan (@islemaster) November 30, 2017
Then I realized arranging flowers in a hex grid might be nicer visually, and provide a nice logic for generating descendants from neighbors.
It's starting to _look_ like a puzzle game… #GitHubGameOff pic.twitter.com/ECK8HWVeRO
— Bradley C Buchanan (@islemaster) December 1, 2017
The remaining work (drag-and-drop with snapping to the hex grid, flower generation rules) took quite a while, but I ended up with something you can “play.”
Flower mixing is looking better! Some predictability, some surprises. #GitHubGameOff pic.twitter.com/oU9yWE6xyX
— Bradley C Buchanan (@islemaster) December 1, 2017
I gave up on coming up with a compelling objective and decided to leave it as a toy. Maybe in the future I’ll revisit this and build a puzzle game, but for now I’m proud of building a cool little HTML5 toy and submitting it to the game jam!
- Play Wildflower Child on its itch.io page or on GitHub Pages
- View the source on GitHub