Tesseract : A procedural FPS Prototype Postmortem

22 05 2012

So on the SA forums I’ve been participating in biweekly game jams. Sometimes I’ve made stuff, and sometimes I haven’t, but this week I feel I made something pretty decent at least from a prototype standpoint.

Tesseract is an FPS consisting entirely of procedurally generated levels. Currently the prototype only runs the player through 10 of them, just to get an idea for what’s going on. I made it in about a week using Unity, doing just about everything myself although most art assets and some pieces of code were taken from free resources on the Internet.

What originally inspired me to create Tesseract was the idea of taking concepts from Roguelikes (randomly generated levels, one life to live, permadeath, etc.) and put them into an FPS. Along the way however I think I got a bit hung up on the FPS aspects and less on the Roguelike aspect, but I’ll get to that.

What worked
Coding : This was really my first big foray into writing code since College, and surprisingly things came out really well. Overall I’d say despite some of my coding looking like a nightmare, the fact that it was functional and did most of what I asked is an achievement enough for now.

The HUD : The HUD is really unconventional-looking for an FPS as part of a compromise I made to get the game in on time, but I like how it came out. Also since this was my first time working with a GUI skin I was glad to be able to change the font from boring-old Arial.

The Shotgun : The shotgun is powerful almost to the point of breaking the game but considering how many enemies the game tends to throw at you I’m glad I left it as is. Plus watching a ragdoll fly across the room never gets old

The Maze Builder: Based off of a free script, I made tweaks to the maze builder so that it would only place one entrance room and one exit room to avoid confusion. Basically I put the Entrance and Exit in the first two slots of my array of rooms and any time a 0 or 1 came up in the array more than once I had the generator pick a number between 2 and the Array’s max length. This was actually based off the solution to fix a broken random number generator for the pieces in the Game Boy version of Tetris that I read about in Retro Gamer

The Exit Hatch: This was my solution to how to have the player get between levels. The way the maze generator worked was that any exit to a room not leading to another was walled-off, so I decided the easiest way to get an exit door in would be to just have the player drop down a hatch.

What didn’t work/What could’ve gone better

The Roguelike Elements: Permadeath aside, I wasn’t able to add a score, rare items, or an inventory in the time I had. The Inventory is probably my biggest regret right now since it probably could’ve solved some problems i had with my ammo system (that I had managed to resolve anyway). I also didn’t have time to only start the player out with one weapon and have them find others. If I had more time I probably would’ve also gone with a system where the player presses a button to pick up objects off the ground instead of just automatically getting them.

The Loot: Without a score system my loot was limited to ammo and health packs, and I seemed to end up giving an abundance of both as a result.

The HUD: The HUD despite looking close to what I want was also slapped together kind of quickly and I wish I had had more time to work on it before submission. Furthermore at any resolution aside from 1024×768 (the default) the HUD and menus don’t scale quite right because again I was in a rush.

The Art: A lot of texture tiling problems, mostly because I built the rooms entirely in Unity to save time. If I had more time I would’ve imported them with a better set of UV maps.

The AI: The AI is kind of dumb as a brick, following laid-out waypoints to get through the level, only deviating to shoot at the player. This puts them on par with the Dopefish for intelligence (without any of the charm). Also for whatever reason they have a hard time hitting the player.

Although Tesseract is a prototype I think it came out very well in terms of what I accomplished having only been seriously tackling Unity over the past month. I hopefully plan to work on the idea more and expand upon it as time goes on.

Play version 0.15 of Tesseract

I have a playable version of Tesseract up for your playing enjoyment, either in Unity Web Player format, or as a Windows download. I’d recommend if you download to play at 1024×768, and also to read the included README file.

For those playing on the Web, here are the controls

WASD – movement
Space – Jump
Mouse – Aim/Look (sorry, I can’t invert the mouse without making a new build, so up looks up and down looks down)
Mouse Button 1 – Fire
Number Keys 1, 2, and 3 – Select Pistol, Assault Rifle, and Shotgun respectively.

Hope you enjoy. Also I know the title screen still says V0.1 but that’s a minor oversight.




Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: