About VideoDog


Ludum Dare 35
Ludum Dare 34
Ludum Dare 33

VideoDog's Trophies

VideoDog's Archive

Don’t Stop Drilling – Level Generation

Posted by
Wednesday, December 16th, 2015 3:28 am


Rick from VideoDog here.

So it turns out when you put more than 12 hours into a game, the results are much better!

Don’t Stop Drilling is a huge improvement over our last game, and I really think we all learned a lot! I feel I speak for all the other VideoDogs when I say that we can’t wait for the next Ludum Dare! Now to give everyone something hopefully interesting to read, I’ll talk a little about our level generation in Unity.


“Please remember to drill at all times, lest you meet an unfortunate demise.”




In Don’t Stop Drilling the generation of the board is determined based on various scripts we call “generators”. Original, I know. Now each generator is given a weighting to determine how often it BTSLV2is allowed to generate a layer.

The RandomGenerator has the highest weighting, so I’ll focus on that specifically.



BTSRNDMAs you can see here the “Weight” category has a value of .81. This means that RandomGenerator should generate about 81 out of 100 layers. But what will our friend the RandomGenerator place in a layer it generates? Well that is what sub weightings are for! Every item listed under the “Weightings” category contributes to the layer that RandomGenerator creates. So in this example 5 out of every 100 blocks generated should be Copper.

I know most of you programmers out there must be thinking that this is nothing too crazy, but as a Artist/Designer, this is pretty damn cool! I spent way too much time tweaking each level trying to get the balance right, and could probably spend a lot more. But alas, Ludum Dare is only 72 hours and every project must come to an end.





Thanks for reading! I hope you found this short write up interesting!


@Variant_3 – Rick (Art/Design)

@pmlamotte – Paul (Programming/Design)

@carnyth – Devin (Music/Art/Design)

Special thanks to Brett and Mike who gave great feedback during development!


[cache: storing page]