iMonster Post-Mortem

Old-school dungeon crawling is one of my favorite genre. It was also the first choice for me cause I’m also working on the second part of my IOS game Vektor, which is a cyberpunk crawler, so I’m more than familiar with the concept and the things I should do..

Being a fan of games like Dungeon Master, Eye of the Beholder, Land of Lore and many others, I cound’t resist the urge of making a crawler where you are the monster, whose only purpose is to kill anyone comes its way. All enemies are in fear, either getting stunned by the sight of you or flee.. So there is no actual challenge, just the satisfaction of slaying your enemies by spamming the space key.

As I also mentioned in the original post, initially I had the intention to award player with different hats after kiling a bunch of enemies, so that later they can be viewed in front of the mirror.. and many other things like health potions that are not for the player, where a voice (dungeon master) would yell “they are not meant for you” on interaction, a room for the monster where is a bed, mirror (which is there), parents stuffed head on wall, a D&D monstrous manual, so on…

There is not much about play mechanics, but lots to talk about the level generation system. First 8-10 seconds are the generation period. Upon start, code casts a 40×40 object grid, with each object containing ground and ceiling models, several wall types, props, enemy spawners, etc. waiting to be activated depending on the situation.

Then, similar to Vlambeer’s Nuclear Throne’s generation system, two invisible A.I.’s start walking randomly through the grid, activating ground pieces in every grid objects they walked on. After A.I.’s walked the desired number of steps, it stops and deactivates. As soon as A.I.’s finish their jobs, walls, props and spawners are placed. There are bunch of rules about where it can place doors, props, spawners, so there are no awkward object placings.

Player and enemy movements are purely based on the grid that has been generated, there are no collisions. If player has a ground tile in front, he can walk on it else no movement, simple as that. Both player and the enemies move on absolute numbers so there is no smooth movement. Enemy sprite has a “smooth follow” script on it which follows the invisible enemy A.I object.

Same thing with the player, the camera has the smooth follow function. But this time, with every step, camera selects one of two target objects within the player, which are placed apart from each other, this gives the walking that swaying, lurking effect. There is also a “Head-Bob” modifier, which effects the y value of target objects…

The game is rendered in a 320×240 texture and then stretched. There is just one 400×400 pixels (poorly UV’ed) texture covering everything. As you can see from the texture, there are several different wall texture types but they are all same because of time limitations. Finally a good amount of fog, SSAO and a dithering image effect nails the visual style for me.

As for Music and sounds, I had an hour or so. Used Bfxr for sounds and composed a track consisting of 3-4 notes and some gibberish solos with my trusty midi keyboard, using nintendoesque vst’s from Tweakbench.

I think that sums it up. It was really fun to make a run for it, learned a lot on the way and I think that’s an outcome nothing can beat..

Tools Used: Unity, Photoshop, Mixcraft, Bfxr

Thanks a lot for reading, playing and commenting! Hope to see you all on the next one..
(If you haven’t tried the game yet, click here!)

@chkkll

Source: ludumdare.com archive

Found a bug?
Tell us on Discord