Enable javascript to see screen shots.

prev next

The Sand Man Defends Sand Land from the Monkey Hoard of Doom

Project Members:
Lead Artist: Paul Skowronek
Flash Artist: Vishnu Desaraju
Lead Programmer: Jason Eaton
Programmer: Daniel Rice

Date Added: 12/9/2006

Download Original: SMSLMH.zip File Size: 2,893k
Download SDL Version: SDLMONKEY.zip File Size: 569k
Play Flash Version: here
Play Circle Version: here
Play on Kongregate:here

This game was made for a 48 hour game design contest with two other people. I designed and implemented most of the game using a DX Framework. I worked with one artist and one other programmer, who I gave direction on how to make randomly generated maps. The original design was going to have generated mazes, but I accidentally deleted the code I brought to do that. We tried to reproduce the code (it was only two short files, see Maze Generators) but I underestimated how complex those two pages actually were. After the contest I was able to plug in my code without having to do any modification. (DOH!)

The main intent of this game was to try out some collision detection methods I had been studying with my Collision Detection and Response paper. The penetration constraints work pretty well until there gets to be a ridiculous amount of monkeys on the screen. They start jittering around and jumping though walls. I need to do some more experimentation with this collision response model. I plan on designing an engine that uses virtual springs to keep objects off of each other so there is less monkies jumping from one end of the screen to another in a single frame This game took 3rd place in the contest.

The gameplay of SMSLMH is well balanced, the artists of this game plays this game just for fun even a year after its creation. The sand man has a move speed realtive to the direction he is facing and the direction he is moving. This small addition drasticly changed the gameplay. The farther away the direction is he is moving is off the direction he is facing, the slower he will move. This is so players can't simply back up and shoot the whole game. When running the direction you are facing, you are slightly slower than the monkies. This is so the player can't simply run from them constantly. The player gets a stamina meter so he can outrun the monkies for a short time to get out of tight situations. The game started out with two guns, a rifle with infinite ammo, and a shotgun with finite ammo. I had to add a reload time to the infinite ammo gun, otherwise the player could just sit still and shoot a constant stream of bullets. The gun even turned out to be more effective than the shotgun without the reload time, people would just get rid of all of the shotgun shots to use the rifle. The shotgun is slightly underpowered, because dead monkies absorb shots, so often they won't go past the front line of monkies.

When I started learning Flash, I wanted to do a stress test of simply using the copy pixel function to a bitmap instead of the default renderer. My decision was to use the monkey game to do that. Along with doing this, I decided to fix some things I didn't like about the original. For one, the heads up display is much nicer. And the other large change is the addition of path finding for the monkies. It was too easy to catch them behind walls and knock them off one by one. So now they can find thier way to you around obsticles. Unfortunatly this made the game near impossible, because they could come after you even if they couldn't see you. So I added one more element that they randomly ran around though the rooms untill they see you, which then they would run after you. So the game remained balanced after that addition. To top it off, I uploaded the game to kongregate.

I also planned to port this game to OpenGL to get rid of the DX Framework dependency. I first removed all the DX Framework rendering calls, and replaced them with SDL. I was going to go to OpenGL from there, but decided to do a Flash version instead. So illistrate how the collision detection worked in the flash game, I took all the graphics and changed them to map more directly to the geometry of the game. I didn't have to change the swf at all to do this, you can play either Flash version on this site.