Giant Bomb ROM: We're all Wizards

Game Jam Blog! I made a game for the Giant Bomb ROM game jam. About being a Wizard!

April 10, 2015

Since I've been following Giant Bomb for around 6 years now, I realized immediately I really wanted to be a part of the Giant Bomb ROM happening on Giant Bomb, which is a website about video games. So when I mentioned that this 9-day game jam was happening to a friend, who also knows of Giant Bomb, asked if we should make a game for it, I immediately said yes.
We're also working together on our bachelor project, so we already knew that our time for this game would be limited to spare-time, but we both wanted to do it.

So, we made the game "I'm a Wizard, and…" in 9 (technically 8) days. It's a sandbox, freeform game about being a wizard and throwing crazy spells to do weird, ****'ed up stuff to the world around you. It's debatable if it's actually a game since there's no goal and no real way to lose, but it's just dumb fun for a while, which is also pretty neat, I think. We, at least, had a lot of fun making it.


So, I want to go through the process of us making it, kind of semi-quickly, since I don't want this to be too long (yeah, right… see you in 1000 words). When we started out, someone linked a random game-name generator in the Giant Bomb ROM forum, and we shuffled through that until we stumbled upon the title "Cool Wizard Trilogy", which we thought was hilarious in a really dumb way for a jam game. Immediately, I thought of an old Giant Bomb joke from a Bombcast from 2011 about wizards, and we knew from that point on what the game was about: "I'm a wizard, and that looks fucked up."

When we started out, we had a lot of big ideas, like you always have. We were thinking Hand of fate x Magicka x Titan Souls with dungeon crawler and puzzle elements. Phew, that's a mouthful! We wanted spells, which you found on cards, in a, perhaps randomly generated, dungeon, to be able to merge and form into different spells kind of like Magicka. Which, in hindsight, is obviously a really huge idea that we had no way of managing to make in 9 half days (since we were really only working on this 1-5 hours per day).

But the next thing that happened kind of shaped the entire project: I remembered a *bad* (as in amazing) shader I had made as practice for our exam in Computer Graphics Programming last semester, which was perfect for making things look fucked up.

I took that old shader and fed it random values every frame: Wizard Vision was born.

[There was a Vine, it was a like a fine wine.]

I was smiling the widest smile when I saw this the first time. :D

(You probably get a better idea of it when seeing it in-game, though.)

The shader, if you're interested, is basically a really simple vertex displacement shader that can either translate, rotate, or scale an object, and also decide how much of the object should be displaced (from top to bottom), which you can actually create a lot of neat effects with. If you then just do one of those randomly really fast, you get something like what you see above. The really weird glitches, where it looks like the entire screen is covered happens by me deliberately breaking the shader by multiplying the vertices with values you're not supposed to give :D

A couple of days in and not much more progress than this and a basic movement system, we drastically scoped the entire card system down to just a simple pick up system, with fixed spells doing "random" things. It was then up to me to figure out what the spells should do. We started with simple, generic magic-y ideas of fireballs and freezeblasts and that kind of thing, but I knew that was too boring in the long run and I had to think a little further. First, I came up with the transform idea, where a spell could transform an object into any other object in the game, which I felt had the right amount of randomness/****ed up-ness.

From then, other types of transforms were logical: Moving, rotating and scaling an object to (of course) a random value every time you hit. However, it wasn't until I added the physics that it really clicked. In the beginning, I hadn't given the cubes a Rigidbody, meaning they didn't interact as physics-objects, so when I scaled an object to be smaller, it just floated in the air (since it's position was still stuck in the center of its previous size) as a smaller version of itself . This meant that you couldn't hit it again because it was too high up, which kind of sucked. I thought of some other ways to fix it, until I realized that the easiest (and thus, most jam-like) way to fix it, would be to add a rigidbody, so the objects always just fell down by the power of gravity.

I didn't realize what kind of impact that had until I tried it:

[Vine is now gone, and there is nothing left of this song.]


When I saw that I knew I had to keep that too.

From then on, the game was pretty much just this: A crazy sandbox in which you could do weird stuff to the environment and watch it break completely. Who needs large ideas anyway? The rest of the time was spent on weird little polish and Giant Bomb references and other little easter eggs (like the Giant Bomb Spell, which I think is the best thing in the entire game), and the enemy-name generator, which spits out a random Giant Bomb related name for all the other wizards.

I'm pretty satisfied with the game, and even more so, the jam was really fun to be part of, even though we perhaps didn't really have time for it.
All the games from the game jam can be found here, and they are all really cool in their own way. However, if you're not a Giant Bomb fan, some of them might be hard to understand, since most of the references etc. tend to be kind of deep, crazy in-jokes and inside humor that's really fun to be a part of but doesn't really make any sense if you're not.

And, again many thanks to Steparnicus and dougonomics on Giant Bomb for the music!


As an aside, I realized later that parts of the game (especially the spell hit effect) really reminds me of the music video to Porter Robinson's "Lionhearted". Which I am totally fine with :)

PS: I got comments now! Post a comment if you like :D