About Nambiar


Ludum Dare 32
Ludum Dare 29

Nambiar's Trophies

Nambiar's Archive

LOST beneath the surface – A post mortem.

Posted by
Tuesday, April 29th, 2014 9:52 pm

LOST is about a firefly who is lost in the dark and is trying to find a way out of the mazes created by the horrors of the dark.  It took me around 13 hours of work to make the game (the rest of the 48 I spent between sleeping, reading, eating and sleeping).  The theme – Beneath the Surface – led to first to underwater ideas. Then I knew what I wanted in the game (listed below) and I only had to make the ambience feel like you’re below a surface and everything else would place into place.


1. Line of Sight

I’ve always wanted to use line-of-sight mechanics in my games and these few links will give you excellent examples for the same –

Amit P’s Blog on LOS

Then i came across this – GameMechanicsExplorer’s Flickering Lights

General line-of-sight implementation produce straight line shadows and while that’s how actual shadows really are, they seemed to disrupt the suspension of disbelief in a game with straight line obstructions everywhere. So a general flickering restrictive view is what i settled for (and got the idea for a firefly from there instead of the other way round).

2. Procedural Maps

My other greatest love is procedurally generated content. Maps, enemies, levels, et al. I think its because I am too lazy to design individual levels or the inherent need to create infinite never-ending games. Most of my games only have a  ‘Lose’ screen since the only way the game ends is when you die. Coming back to procedural content, for LOST I had to chose between mazes and dungeons. Dungeons offered greater exploring fun but then with the view restricting mechanism , sitting in a room and having to stick to walls to find the doors wasn’t really appealing. So a maze it was!

Here are a few links that list amazing maze generation algorithms tutorials/algorithms and one of them has the actual pseudo-code I used –

James Buick’s Site

Dstromberg’s Javascript Maze Tutorial

Rosetta Code’s Maze Generation Algorithm Consolidation Page

James Buick’s Algorithm Recap

3.  Enemy Movement

There had to be enemies on the map because “just” maze solving is quite boring. But then they had to be moving around too. Path finding algorithms are easy but take time to implement. I had to settle to random movement wherein enemies on the map choose randomly between all the possible directions they can move towards when they hit a wall. This method is very restrictive and causes enemies to clump up together but when I played the game, I especially liked the jumpscare of 3+ horrors coming at you suddenly from the dark.

Some of these enemies tended to inhabit important nodes in the map (required to actually solve the maze) and hence I had to add another element (in the form of randomly scattered helmets) to best these enemies.

4. Movement controls

The choice was between simple up-down controls and GTA-II like controls. Simple WASD controls led to sudden flips in directions which was different from what a real insect will move around like. GTA-II like controls (forward is always UP and changing directions is achieved by left-right, kind of like driving). It also added a level of difficulty because getting used to the controls is a short (albeit annoying) learning curve.


I’m very bad at art and in-spite of extended inkscape tutorials before the dare began, I ended up drawing really bad things. Choosing a black and white palette was much easier since I know very well how bad my color sense sucks.

The Firefly

I started with 8 bit fly but then it turned out to be really really bad.


For the greater part of the development cycle, I stuck with the above fly. But then, during the choosing fonts, I ran into webdings fonts with insects in them! JACKPOT! I found a beetle i liked, used it in Paint.NET, and used the basic skeleton to draw myself a nice firefly.


The Tiles and Enemies

Simple square tiles and another edited (and scary looking) letter from the webdings font helped to create the rest of the game. The on the fly font is Arial to keep cross browser compatibility.

I also used the noise generation effect in Paint.NET to create the static effect in the background.


Art is something I am bad at, but then at music, I am worse. So Freesound was the obvious choice and I had no time to waste anyway. Here’s the link to the brilliant ambient music used in the game – xDimebagx Horror Theme.

Final Hours of Ludum Dare

All the basic elements were in place but the game states were still in production and there was only 2 hours left to the deadline. Its fairly obvious how little time was spent on polishing these last few screens (the end-game screen and the generating new world screen).  But what is important is realizing that you need to finish the game rather than make it look amazing. 

When the final beta testing was done in the last half hour and everything fell into place, my heart was racing as I waited for the game to upload to my site. One of the biggest relief-sighs happened when I was able to convincingly click the Submit button.

After I uploaded the game, I realized that the HTML page itself looked bland and I sat down to make it look a little better. Giving it a black background and formatting the instructions text on the page was the final adjustment and I was done.

Phew! A ludum dare completed. I am happy.

Things I’d have liked to add but did not given the time restriction.

I wanted missions and better AI movement. Maybe next time .

Minimap or some sort of indicator of how far the final stop is. It gets frustrating if there is not general direction you want to go to. It does add to the gameplay so I am on the fence about it.

Better art and animations.

The Game

Click here to go to my game’s Ludum Dare Page.

My creepy game is done!

Posted by
Monday, April 28th, 2014 5:29 am

I rushed through the last few hours to get all the game states in place but phew! its done. I finished my first ludum dare. Am I proud or what?!



You’re a firefly in this game. And you’re lost in the dark in an underground labyrinth.

You only need to survive in this procedurally generated world for as long as possible and finish as many worlds as possible.

(The mazes are generated on the fly and vary in size from 15 squares to 40 squares… so you’ll need all the luck in figuring out a few of them. Of course then there are the monsters blocking important paths, so save up on  helmets!)


To go to the ludum dare entry, click HERE!


Firefly day 0.4


I can say that i am pleased.

[cache: storing page]