Random Goblin Name Generator

Hi everyone. In these days, me and my friend and colleague at Noctua are working at a new game jam: the SpeccyJam. The goal of this jam is to recreate a game with the same feel and look of an original ZX Spectrum game. We chose to implement a “managerial game” in which the player takes the role of a fantasy blacksmith that have to increase its fame crafting amazing weapons. This jam is very formative because it is forcing us to work in a low resolution with a very limited color space and, also, to explore the amazing kingdom of 2D shaders in Unity in order to recreate the visual glitches of the original console.

While these is very interesting, today I’m not going to talk about this (I will, but not today. We still need to finish the game). In this post I want just to show a small script that you can reuse in your games: a random goblin name generator. In fact, the blacksmith have to hire some goblin minion in order to mine metals around the land. And these minions need a name.

Writing a random name generator is trivial. You take a list of syllables, another list of syllables, one more list of syllables, and at the end you randomly join elements from these three lists hoping for the best. However, also if it is easy, it is boring. Searching for the good syllables/words that creates the desired effect is just time consuming and during a game jam, you don’t want to consume time in boring and trivial stuff. So, if you need some goblin names, I solved this problem for you.  :)

class NameGenerator {

	static string[] NameDatabase1 = { "Ba","Bax","Dan","Fi","Fix","Fiz","Gi","Gix","Giz","Gri","Gree","Greex","Grex","Ja","Jax","Jaz","Jex","Ji","Jix","Ka","Kax","Kay","Kaz","Ki","Kix","Kiz","Klee","Kleex","Kwee","Kweex","Kwi","Kwix","Kwy","Ma","Max","Ni","Nix","No","Nox","Qi","Rez","Ri","Ril","Rix","Riz","Ro","Rox","So","Sox","Vish","Wi","Wix","Wiz","Za","Zax","Ze","Zee","Zeex","Zex","Zi","Zix","Zot" };

	static string[] NameDatabase2 = { "b","ba","be","bi","d","da","de","di","e","eb","ed","eg","ek","em","en","eq","ev","ez","g","ga","ge","gi","ib","id","ig","ik","im","in","iq","iv","iz","k","ka","ke","ki","m","ma","me","mi","n","na","ni","q","qa","qe","qi","v","va","ve","vi","z","za","ze","zi","","","","","","","","","","","","","" };

	static string[] NameDatabase3 = { "ald","ard","art","az","azy","bit","bles","eek","eka","et","ex","ez","gaz","geez","get","giez","iek","igle","ik","il","in","ink","inkle","it","ix","ixle","lax","le","lee","les","lex","lyx","max","maz","mex","mez","mix","miz","mo","old","rax","raz","reez","rex","riez","tee","teex","teez","to","uek","x","xaz","xeez","xik","xink","xiz","xonk","yx","zeel","zil" };

	static string[] SurnameDatabase1 = { "Bolt","Boom","Bot","Cog","Copper","Damp","Dead","Far","Fast","Fiz","Fizz","Fizzle","Fuse","Gear","Giga","Gold","Grapple","Grease","Greasy","Ground","Haggle","Hard","Knee","Leaf","Loose","Man","Mega","Money","Mud","Multi","Peddle","Pepper","Pick","Rocket","Rust","Salt","Salty","Sand","Scroll","Shadow","Sharp","Silver","Spark","Steam","Top","Wrench" };

	static string[] SurnameDatabase2 = { "basher","blade","blast","blaster","bolt","bomb","boot","bottom","bub","button","buttons","cash","clamp","digger","feet","fingers","flare","fuel","fuse","gear","gleam","gob","grinder","grubber","hallow","hammer","head","knob","mine","nose","nozzle","pinch","pocket","pot","racket","rocket","screw","shatter","shiv","skimmer","snap","snipe","spark","sprocket","task","tongue","tooth","tweak","twister","volt","watts","well","wick","wizzle","wrench" };

	private static string RandomInArray(string[] array) {
		return array[Random.Range(0,array.Length)];

	public static string RandomGoblinName() {
		return RandomInArray(NameDatabase1) + RandomInArray(NameDatabase2) + RandomInArray(NameDatabase3) + " " + RandomInArray(SurnameDatabase1) + RandomInArray(SurnameDatabase2);


The goblin names are inspired by the goblin “instance” in the Warcraft world. The script is in C# but you can easily translate it in any other languages. As I said is just a bunch of lists and a random function to join them. I hope you can enjoy this. :)

PS: I don’t know why this code looks a mess in the embedded version. I’ll try to fix this soon. Sorry.

EDIT 08/09/14: I don’t know why this script destroy the syntax highlighter algorithms. However, now it is more clear. Just a bit.