It started with good intentions. I had a one pager as a foundation. The name and visual style were set. The character spreadsheet was complicated, but not crazy. Cautious optimism spread through the synapses.
Now that my sim is taking shape in @unity3d, thought I'd share prelim pitch and db pgs. that gave direction. #gamedev pic.twitter.com/mwaz0WArFv
— christophe davies (@adChristophe) June 27, 2014
The idea was to create a breeding ground for mutant creatures to roam. There was an interbreeding of species and a number of variables to adjust per character to account for terrain, food, and prey. These variable would in turn be mutable as the animals learned more about their surroundings and mated. The breeding used weighted averages to decide which genetic attributes would be passed on. Each creature part held attributes for certain character features. Ex. Weighted averages between legs and arms would decide speed. Head would influence prey type. Self defeating mutations could be created using this method.
A major part of the sim was allowing for user generated content. Everything was modifiable via spreadsheet. And creature parts could be swapped out or added to by users. This is where the visual style began to change. Initially, I created some characters and an environment in clay and used Catch123 to 3d scan them. The process was both fun and extremely time consuming, but it looked good. Assist by Marmoset’s SkyShop to create the lighting.
Starting to come together. @marmosetco SkyShop shaders being used in @unity3d 4.6 Pro. #screenshotsaturday #gamedev pic.twitter.com/BIYhxPvHUD
— christophe davies (@adChristophe) December 7, 2014
In the above prototype, the creatures would look for food, get hungry, fight, etc.. This was done with a combination of scripts, Behavior Designer, and A* Pathfinding. You could select a creature from a menu and place it on the terrain. Things were coming together. But I wanted user generated content to play a bigger role. I wanted anybody to be able to create a creature part or terrain element. In combination the spreadsheet characteristics were expanding. The CSV files getting a little unwieldy. Generated content also had to take state into consideration like sleep, walk, sad, tired, attack, injured. Whoops.
I also realized the content needed a place to live so creaturemash.com was born. I setup a complex forum that was quickly destroyed by two spammers. My fault.
Things began to spiral downward till I ended up with this:
Ouch. Painful. This also included a switch between pathfinding assets. Went to Apex, then came back to A*. And yes, there are a lot of exposed variables. In the end, I learned a lot: how to dynamically update csv files and images, and have them remain exposed in the installation folder ( place them in the StreamingAssets folder ), updating csv files with LINQ, and how to go crazy with iterators ( this also got out of hand when used to update image files based on character state ).
The main thing I learned: DON’T CREATE THINGS IN A VACUUM.
The secondary thing: Downward spirals are painful, but writing about them afterwards is a lot of fun.