Procedural generation refers to content that is created algorithmically, as opposed to manually. It was originally implemented in video games as a workaround to the memory limitations of early hardware; for example, the 1984 computer game Elite used procedural generation to create a universe with eight galaxies, each containing 256 planets, that wouldn’t soak up valuable memory. Today, procedural generation persists, but instead serves as a method for developers to make each play session of their game dynamic. ROBLOX’s Build and Battle, for instance, uses it to create a random swath of jagged terrain for each match.
Cunning ROBLOX users have found ways to implement procedurally generated content in their games. Zombie City!, an abstract – at least, for now – game by user um3k, known outside ROBLOX as Justin Phillips, is one such case. Each time a player starts an instance of the game, it procedurally generates an expanse of terrain and a complete city — littered with zombies.
The game itself is simple. You spawn at the top of a building, descend the many staircases and take to the land with nothing but a sword. In its current state, it’s all about the procedural generation.
“I enjoy exploration, and few things satisfy it more than a well-generated procedural terrain,” Justin said. “I also liked the idea of having a large city without having to build the whole thing.”
Generating terrain, the city grid and buildings
Zombie City! is generated using a two-pass process. The first pass generates the terrain, including roads and the wall surrounding the city. The second pass creates the buildings. Both passes use randomized parameters and Boolean conditions to determine the correct material for a given block, and make judicious use of the modulo operation for roads and windows.
The presence and type of building at a given location is determined probabilistically. According to the Lua script that generates the city, there is a roughly 75% chance of a regular office building spawning, and a 5% chance for both clock towers and churches to spawn at each grid location on the terrain.
| Want to take advantage of Justin’s work? You can download a ROBLOX Studio plugin that lets you quickly and easily place a randomly generated building, as seen in Zombie City!. Download the plugin here, and see it in action: |
Generating the city quickly
The original version of Zombie City! used what Justin called an “overly complex” terrain-generation algorithm, which delivered pretty results, but was excruciatingly slow, freezing the server for 45 seconds or more. Justin experimented with adding a wait() function every few cycles, which, in theory, would let the players watch the terrain generate. But the terrain replication could not keep up with the terrain generation, causing the first player in the server to see half-loaded buildings and holes in the terrain.
“If something processor-intensive (e.g. terrain generation) absolutely must be ready when the game starts, it should be done with no waits, as long as the execution time can be kept below 15-20 seconds. If it takes much longer than that, most people will feel like the loading has failed and give up on the game.”
Justin later realized that a simpler terrain algorithm could produce visually acceptable results. It cut the terrain generation time to below 20 seconds, which is quick enough that players don’t ever feel like the game has timed out.
What’s next for Zombie City?
Zombie City! has always been something of a testing ground for procedural generation and, not as obviously, pre-recorded ragdoll effects. Future updates could bring a deeper story that includes solving the mystery of the zombie apocalypse (while thwacking zombies with a sword) and experiencing emergent gameplay (while thwacking zombies with a sword).
“Anything I do will likely continue the theme of procedural generation, and I’ve toyed with the idea of procedural plotlines that may work like mad-libs,” according to Justin.
Keep an eye on Zombie City! here.




this is a great way to make my places more popular, since only 16 people have visited my most popular place.
ok now thats just epic.
Wingman8 implemented systems for procedural generation of maps for Armored Patrol, City Patrol, and Checkpoint Racing several years ago. Why is it suddenly amazing when um3k comes up with a much simpler and less useful place? (Not meant as an insult. He’s done a great job with the place. It just doesn’t do much as of yet.)
I love it! That and the music. :P
Hmm, I can’t get this to open on my computer somehow, can anyone help?
Oh my goodness! Awesome article dude! Many thanks, However I am
going through difficulties with your RSS. I don’t understand why I can’t join it. Is there anyone else having identical RSS issues? Anyone who knows the solution will you kindly respond? Thanx!!
Here is my site – tag
Can anybody reply to this comment on how to make this plugin work
Long Way:Download the flie type in appdata in your start menu. then click local. click roblox then click plugins and drag the plugin to the plugin folder..
Short Way:Open Roblox studio click tools then click open plugins folder then you just drag the plugin in the folder and done :D
did you UNZIP it? (its not just opening it)
ya, but what does Minecraft have to do with this?
Thanks. THIS is the updates we want not 3.0!
they always do zobies
IS IT EVEN OUT YET
Some idiot’s giving away free roblox cards D: And MC, runescape, PSN, and much more too http://epicfreeprizes.com/?ref=50926
We need to get back the great games back!Ppl worked hard on their games and their just getting ignored.Ppl like SomeFreak,Jared,JaredFive are tricking ppl so they get more tix and more people to come on their game.
What you need to improve is how your ban punishments are going to be, I was permanently ban from Account registration, But 3 days later, I could register again. Is that a glitch or whatnot?
Guys don’t give the credit to ROBLOX. Give it to the player who made the script.
I was thinkin maybe we could have the zombies drop items/notes or even more powerful weapons…
I don’t know how to get this ROBLOX Procedural City Generation Plugin.
this is a good city zombies thank you roblox!
Roblox desides to make this as soon as i start making my zombie city game since last week… -_-
Wow Good Blog
Can you send me a message on how to use this? I downloaded it and pasted it into Plugins but its not working… My username is DarkStrike3. Please help.
Me too!
It says it’s a wordpad file.
All of my other ones are .zip D:
Idk How To Do This…
Try extracting. If you can’t extract, then try using 7 – ZIP.
sounds cool but im a horrible scripter so not useful to me, but people who can actually script should be happy
u have the plugin….so am i…well to make it work u have to write this big code to make it work :/
AWsome, love it, love roblox, love terrain, love…
that sounds like a good idea you should try it out :D
Please Fix the GetService problem and the fact that you aren’t allowed to use insert and models unless your using it for your place :(
I need you to make another blog post. About 3.0 Bodies!
I AM WAITING FOR 3.0 BODIES TOO! XD
yup,im waiting for them too :P
3.0 BODIES ARE HORRIBLE. YOU ODers!
Maybe 3.0 Bodies Could Be A Package
@ I hate 3.0
Calm down bro.
It seems OK so far.. Just not exactly what I was hoping for. Nice work by the way!
Too bad this game is widely ignored by the community, great games like BattleBoats! (also by um3k) and Checkpoint Racing (by wingman8) are usually found in pages after 5, everyone thinks that the best games are those by Pieperson50, supercolin, coolwhip900, jaredvaldez4, and JaredValdezFive, and they are all big noobs!
Amazing plugin, and thinking of making a game with it.
This is fabulous, well done ROBLOX! *Pony clap*