My Gamedev.net Community Challenge Entry: TunnelJumper

posted in kiwibonga's Blog
Published May 17, 2011
Advertisement
A little "postmortem" on my GDnet Community Challenge entry.

You can download the entry here: Download (Windows EXE - 5.05 MB)

The only requirement to run the game is to have the MS Visual C++ 2010 Runtime DLLs.

There is a known bug when attempting to run the game from a standard user account in Win7/Vista -- if the game crashes on startup, try running it as an administrator. (EDIT: On machines with the issue, setting the compatibility setting to "Windows 95" in the file properties of the .exe can fix the problem. I haven't identified the bug yet, but I found a way to reproduce it in a virtual machine, so I should be able to work it out eventually. Note that you may have to close the program from task manager if you run it this way... Not very convenient, I know, but I suppose it's better than nothing!)

We had three days (72 hours) to create a game more-or-less from scratch. I used version 3 of my "EDBJ framework" as a base, it's the 2D/audio/input/GUI framework I've been working on lately.

This latest iteration, EDBJ3, was actually a partial recode of the framework I used to prototype my classic Blackjack game. It lacked functionality such as gamestate management and scripted actions (as you can see in the game, even the title screen is a level), but it added OpenGL support, replaced all homemade GUI code with CEGUI wrappers (unused in the game) and SDL_mixer for sound.

In the rush to get the game out, I quickly hacked together some missing functionality:

- Music (MOD files; easy thanks to SDL_mixer)
- Trig and math functions
- Arbitrary keyboard bindings and input "passthroughs"
- Collision / "Physics"


I lost about 8 hours over 2 days to a silly issue involving header files and compilation settings... A real nightmare! It's a competition though... Gotta suck it up! Besides, I only put in about 30 hours into the project in total, when 72 were available, minus sleep :P

Here's a little description:

Your player is a little guy driving a small, round, red spaceship. To move, you have to choose an angle (by pressing UP/DOWN or clicking with the mouse to set a direction) and can charge up a jump by holding down space. The goal of the game is to get to the end of each level (the purple platform) by jumping from safe spot to safe spot, correctly estimating the angle and power needed each time, without touching any walls.


Levels are actually PNG files that you can create with any image editing software. Some pixel colors have special meanings:

RED (#FF0000) : "Safe spot" -- if you touch it, you'll respawn there next time you die
GREEN (#00FF00) : Player starting position (1 pixel)
BLUE (#0000FF) : Bouncer (horizontal) - doubles your vertical speed
BLUE (#0000C0) : Bouncer (vertical) - doubles your horizontal speed
BLACK (#000000) : Obstacle (die on touch)
PURPLE (#FF00FF) : Goal! (touch to win level)

All other colors are ignored - the player can pass through them.

Valid levels are PNG files with a width and height that are multiples of 256, with at least one green (#00FF00) pixel for the starting position. You can substitute any of the provided level PNG files for your own as long as they respect these conditions.

The game begins with a tutorial level, which also doubles as a title screen, and only has 3 levels:

ZUFdh.png

Title screen


6GkQo.png


Star level


tC40T.png

Colored dots and black grass level



n0CBp.png

Vertical level




Sadly, I ran out of time to create the ending I wanted, which was going to feature a crappy animation of MC Hammer dancing, so the closing screen just says "YOU WIN" in white on a black background :)

The game is functional, but the levels could use some editing; they were for the most part created and playtested in the 4 hours that preceded the deadline, so some parts are unnecessarily hard, and there's not as many levels as I would have hoped. Since this is a "guesstimating game," it's not good that making some jumps (especially with bouncing involved) requires up to 20, 30 tries, each time changing the angle or power by a pixel until you somehow manage to make the jump. This is the kind of stuff that makes people punch their computer, or stop playing a game out of utter frustration. :P

Possible improvements could include:

- Adding a title screen and proper ending
- High scores? Saving? Online leaderboards? User-submitted-level-browser? :D
- Make scrolling more obvious (with arrows when you move the mouse near the edge of the screen); possibly add a scrolling function when you right click the background
- Minimap and/or pointer that shows the location of the player if he's off-screen
- Overall graphic/sound/level improvements
- Additional block types: Booster, slowdown, "sticky walls," etc.
- Add license / copyright info, remove dependencies on included-but-unused third-party libraries

I will most likely take a fresh look at the project later on this week and post a "cleaned up" version. I'll wait until judging for the contest is over...
0 likes 2 comments

Comments

metalmidget
Really like this one! Are you going to make more levels and release a full version?
Please? :D
May 19, 2011 09:47 AM
kiwibonga
Thanks, I liked yours too -- pretty addictive!

I'm hard at work on a new version... Lots and lots of bug fixes to implement :P
May 19, 2011 09:50 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement