It’s been a long time since I participated in any time-constrained game development competitions, and with some free time (not really) available this weekend, I decided to attend the Triangle Indie Game Jam in Raleigh. It was a three-night event, so I’ll describe the nights in order and then post screenshots of our final product. I’m going to focus more on the process and less on the game, which I will talk about in another post.

Friday was ‘planning night.’ About 7 people showed up and pitched ideas for a game with a common theme: Placing Blocks. I pitched two ideas:
(1) A puzzle game where balls would constantly fall and you have to place blocks to get them to bounce to a goal.
(2) A tower defense/reverse Jenga style game where attackers are constantly weakening your tower, and you have to place pieces to keep it from tumbling.

Between the seven of us, about 18 ideas were pitched. I’m not going to enumerate them all, but in the end, the four that were picked are thus:
(1) A Rogue-Like where, instead of attacking creatures, you pick up blocks in the world and then place them elsewhere to try to avoid/manipulate enemies.
(2) A game where blocks of different colors constantly fall into gates, and you have to open/close gates strategically so that when the blocks pass through, they form an image.
(3) A reverse Jenga style game where you must build a structurally sound tower.
(4) A Lemmings-like where instead of assigning jobs to the Lemmings, you manipulate the environment to get them to appropriate positions.

I decided to go the Rogue-Like route, having a random dungeon generator already written and some interest in the genre. I was joined by Mike Lee and Mike Daly.

On Saturday development started in earnest and lasted from 9:30 AM until about 11 PM. We decided to break the project up into 4 distinct phases of development.

In Phase 1, we targeted standing up a lot of core code, get movement and (super basic) enemy AI in, allow creation and destruction of tiles, and put all the major state transitions (win, lose, main menu, etc) in place.

In Phase 2, we targeted picking up and dropping blocks properly, where blocks would be stored in an inventory. We wanted all the different tile types implemented. We also wanted random dungeon generation and a couple more enemy types. SFX were planned, but we cut those from the phase.

In Phase 3, we planned for race/class selection, limited vision, spells, and music.

In Phase 4, we wanted to implement all the enemy types and make things shine a little more, with multiple level themes and seamless graphics.

After planning the phases, we started some extreme programming for a couple hours, where we all huddled around Mike’s computer and outlined the core code. There wasn’t a lot - enough to get a solid Rogue-like simulation running, but it was a fair start and got us to the point where we could break up tasks.

Upon breaking up tasks, I initially spearheaded most of the rendering and level creation. As we pressed on and people finished tasks, we just started pulling things off a list that we were interested in doing. It was a fairly distributed bunch, with me on a lot of the rendering/map generation/level progression, Mike L on enemy AI/importing graphics/tile types, and Mike D on actions/menus/HUD. Which isn’t to say that anyone had clear roles, since we all regularly grabbed arbitrary items out of the task list.

We blasted through Phase 1; Phase 2 had a lot of work in it, but even it went quickly. By the day’s end, we were ramping up on Phase 3 and planning out our next (shorter) day.

Sunday development went from approximately 9:15-5:15.

Phases 3 and 4 blended into each other at this point - we compiled a list of all the things we wanted to get, a wish-list of things we knew probably wouldn’t get in, and ideas for how to improve the gameplay. There was a lot of back and forth on how to make the game fun and how to make the concept work, and by the end we had a list of about 20 tasks to knock out.

So we just got to it. Though we prioritized the items, we jumped up and down the list regularly based on what each individual thought was important or wanted to work on.

And we got nearly all the list done. We did have to cut spells, SFX, and a bit of polish, but we spent the saved time adjusting stats and gameplay parameters instead; a rewrite of the control scheme, for instance, though not strictly necessary ended up making the game much more playable.

At 5:15, development stopped and people showed off their projects.

In the end, our little 3-man team made a fully-featured, well constructed game in just under 24 hours of work. Our code base is terrifying, but that doesn’t matter.

Here are some (blurry) screenshots of our finished product!

Brixplorer Title

Brixplorer Character Select

Brixplorerer Play 1

Brixplorerer Play 2