One week later. (it’s actually a little later than that now, but it was when I started writing this.)
Last week we wrapped up our 72 hour jam project Evo Explorer (It says Evolver in the title screen since we never got the time to replace the temp art. Lesson to be learned there for jammers, be prepared for everything you do to suddenly be declared permanent.) The theme, suggested but never picked for many jams running, was “Evolution”.
After exploring the theme a little we settled on the idea of exploring a randomly generated world and needing to evolve your characters abilities (simple stuff like jumping higher and moving faster) in order to explore more. It still sounds a little ambitious (failure didn’t really bother us, we came wanting to learn and getting some kind of game cranked out, even if not exactly what we started out aiming for) and I’m fairly satisfied with what we got done.
Streaming ourselves while working. – It allowed us to jump back and forth quickly to see a problem someone else was having, and it added a little bit of pressure from people watching us to stay on target. (And even when we went off target, we could chill and watch what someone else was doing, staying involved while taking a break.)
Terrain Toolkit API – I had used Unity’s Terrain Toolkit in the editor before so I knew it was a powerful tool, but I hadn’t tried accessing it through code before. With the bulk of the terrain generation code taken care of for me (I had to debug their code a little) I was able to have basic world generation done by Saturday afternoon. It would have probably taken the whole weekend and looked a lot worse if I had had to come up with the based terrain generation code from scratch.
Randomized Object Placements – I still think we weren’t completely sold on the concept of randomized levels until Rob accidentally created a freaky forest with tipped over trees. Honestly, once we had the levels randomly populating themselves development slowed to a crawl since we were spending more time exploring what kind of levels would be created than we were working on the game.
What didn’t work
Boring terrains – Despite getting the terrain generation working early on, it didn’t really grow/expand much. (This was partly our fault for a lack of content to differentiate the terrains, but it was also a limitation of keeping the world realistic and fair despite being “random”.)
Object overlap – This is a complicated subject in my opinion . Overlapping objects can create “new” objects that keep things interesting(that’s good), but they also can lead to boxed in players, unreachable areas, or areas meant to be difficult to reach being very easy to reach(that’s bad). I could think of any really quick to implement techniques to get around this so I just left it as is.
Trees & Details – Unity’s terrains have really good support for trees and details, so I’m really disappointed I couldn’t take advantage of it. The current “trees” in the game are completely static, not influenced by wind and the “health” of the terrain. (Same trees in the desert or the grasslands.) As it is the trees are pretty much evenly distributed across the level (which is really unrealistic to me).
In conclusion, we got a fair start to a game done in a weekend, and I learn a lot in particular about basic techniques for randomly populating worlds. It also left me with a lot of stuff I discovered I didn’t know. (I haven’t actually made my own noise maps before, so that’s up next!)