Hello! I”m Andy and this is my first post on the 1-6 blog. Since I normally like to keep a low profile and nobody knows me, I”ll briefly introduce myself and what I do at Q.
I”ve been working on PixelJunk as an artist way back since Racers. I did most of the art for the original Monsters, was responsible for the general art direction on the Shooter games and SideScroller, but I have a CS degree and got in the games industry as a level designer because I like making levels. Because of this, I also did a lot of level design on Shooter and SideScroller, and am now helping out with programming on 1-6.
One of the things we wanted from the start in 1-6 is to have a world that is unique every time the game is run, so that every player will have a different experience, and also hopefully that people who buy the game will want to restart and try again on a different world. Anyone who has played Minecraft will be familiar with the excitement of starting a new game and finding a completely new world to explore, and this is something we would like in 1-6.
What I”ve been doing this week is writing some tests to improve our world generation. The meat of this is finding algorithms that can generate interesting patterns and coaxing them into creating features in the world such as tunnels, caves, ravines, forests, mountains; Basically areas that players will want to visit and hopefully instead of having a mess of extremely random looking shapes, will be memorable and easy to navigate by.
One of the easiest ways to add a memorable area into a procedural world is to have pre-designed areas saved in a file separate to the world, and have the world generator just stamp these into the world at random positions with only simple rules to guide it. One example is a rule that says there can”t be more than one of these stamps per world, another is a limit that prevents the stamp being placed too close to the surface of online casino dgfev the world. You could also have rules that makes stamps join together procedurally to create more complex areas.
Adding stamps can add interest to the world, but one of the problems is that – especially in a 2D game, where the player has not got a very wide view of what is around them – a single stamped area will only really be found by accident, when the player stumbles into them.
In order to help get around this problem, one thing I want to try doing is to add clues in the world that suggest the existence of something. When a player finds these clues, he or she should be able to deduce that if they follow the trail, they will find something that they are looking for. Some examples are natural formations such as a river flowing towards a lake, certain flowers that always grow around the edge of a desert, or small ruins suggesting the existence of a temple nearby.
Whilst it”s still early days for my tests, I hope to have more to talk about in a future post.
Procedural terrain pretty much translates to ” I’ll spend a lot of time playing this game “.
Pre-made chunks, or stamps as you call them, can totally work, but you’ll probably want to only pre-make things that wouldn’t be functional in generation. Some of the fun in procedural generation IS the fact you can get absolutely ridiculous constructs from the generator, like Minecraft. If you’re gonna handcraft areas, keep it down to the things that’ll be highly impractical to have generated, like NPC villages or such. Alternatively, you could just make a large pool of pre-made areas, and have the game pull one out of those when needed. Dungeon Crawl did that very effectively, I think.
Spelunky also does a good job of generating based on premade structures, and then scrambling them slightly, see here: http://makegames.tumblr.com/post/4061040007/the-full-spelunky-on-spelunky
That’s a nice link. Spelunky is great fun! Cool to read about his process. :D
John: Thanks for the link. Spelunky is an awesome game and we had a hell of a lot of fun playing it here (except there was one too many players that wanted to play, so we had to… TAKE TURNS! NOOOOO!)
Kripto: Yes, I want to try and have it be as procedural as possible without massive areas that are hand made. The idea at the moment is to create some kind of algorithm to select stamps and arrange them into more complicated constructs (maybe like spelunky or many dungeon crawlers?)
There’s still plenty to do on the basic terrain generation before moving further with stamps though!
I wanted to try doing something very similar to this with an L-system or Voronoi diagrams, but haven’t gotten around to it yet. Maybe that’s something to look in to?
And thinking some more about it, since an L-system in essence produce a tree structure, adding hints like you talk about could be as easy as going up the tree to where it branches… Now I feel like skipping work the rest of the day to toy around with this again…