AITD is my entry for ld48 #6. It isn't everything that I wanted it to be, but I'm happy with it. Once again the competition turned out to be very rewarding. This article is my long look back at what I created.
The idea for AITD was to make a robotron style overhead shooter with mouselook. To make it interesting, and to fit the theme, a lack of light would be a major factor in the gameplay. I did manage to create all of the gameplay elements that I wanted. But I'm not satisfied with the movement of the aliens and the way they react to the light. While the game fits the theme, the gameplay isn't really about the light and the darkness. I wanted the careful use of the flashlight to be key to survival, but I didn't develop the gameplay to this point.
Python worked out well for me, with the exception of a major bug in my input handler that delayed my progress for a couple of hours Sunday morning. Doing pixel art in Pixen was a lot of fun, and I love the alien sprites that I created.
The iMac was great for doing graphics, but it runs the game at a terrible framerate.
When the theme was annocned, and I decided on what I wanted to do, I started to work on my lighting technology. Early on I decided to move away from my linux workstation and it's voodoo3. Instead I used a Win2k system with a GeForce4 mx. Not having to deal with the slow speed and limited texture sizes of the Voodoo3 made working on Windows worthwhile.
I created my lighting effect by rendering my background and unlit objects, and then calling glCopyTexSubImage2d to create a background texture. Lights were then drawn on a black screen by rending a quad textured with the the background. The lights fadded nicely using transparency, and coloured lights of arbitrary shape and position were available, though unused in the final game.
The game's framerate is quite good, as long as your videocard drivers accelerate glCopyTexSubImage2d calls. On systems that do this slowly, the framerate will be terrible, no matter how fast the cpu is.
Python and PyOpenGL - I have some experience working with these tools, and was able to get things done quickly with them.
Ditching the VooDoo3 - I'm so glad I did this. 256x256 texture size limits suck.
Graphics - I'm not an artist at all, but I'm quite proud of some of the visuals in the game.
Lack of Focus - Even though I spent almost the whole weekend on the project, there were signifigant stretches where I just wasn't as productive as I should have been.
Collision Detection - Implimenting circle vs. non-orthoginal quad collision detection turned out to be way more difficult than I thought it would be. I wanted to be able to test if an alien was in the beam of the flashlight. Just implimenting the approximation that I used took all of my Saturday evening, and totally drained me. This was a key gameplay requirement, and the game suffers from it not quite being correct. On the upside, my gemoetry skills have been improved by the experience.
Missing elements - I was adding features until the last moments of the competition, and I still missed so many. Any game written in 48 hours is going to have things missing. Unfortunately my game lacks so much that I am going to write a whole section about it.
Menu's and instructions - This is the biggest drawback, and it probably cost me the most in the ratings. I had planned to have gameplay instructions written on the floor of the first room, with spotlights illuminating things. I also wanted to have a "the end" message on the floor of the final room. I suspect that many of the people judging my entry didn't explore the first room long enough to find the switch to move on to the second room to start the game. In game instuctions are the one feature that would do the most to make this into something I would call a finished product.
Sound - As so many of the reviewers pointed out, sound would have made the game so much cooler. I wanted to do creepy alien noises very badly.
Damage Feedback - When the player is getting hurt by an alien, the health bar falls, but this isn't enough feedback. It needs to be more obvious to the player that they are being attacked, becuse you often can't see that you are being eaten.
So Much More... - The above three things would have made my entry into real game. But there was so much more I wanted to do. The framework that I built actually has a lot of potential for easily adding features, so it might still happen.
I know of three bugs in the competition version of the game. Oops.
Crash after the final room - If the player goes through the door in the final room, python raises an exception when it tries to access the non-exsistant data for the next level. There wasn't supposed to be an exit from the final room.
Player damage tied to framerate - I didn't put any limitations on the rate the aliens attack at. For every frame that an alien is touching you, you get hurt. If you have a fast computer, you die very quickly.
Firing rate tied to framerate - The faster your computer, the faster you can shoot your gun. In fact, if you have a scroll wheel on your mouse, you can get rapidfire. Quickly scrolling up and down can clean out a room in a hurry, but the buildup of mouse events can cause the player movement to start to lag.
48 hours, by the numbers.
Ratings:
| Fun | 2.2 |
| Innovation | 2.5 |
| Production | 2.5 |
Hours worked:
26
Lines of Code:
1915
Grahpics files:
11
Levels:
6
Know Bugs:
3
Some responses to select feedback.
Uhmmm... ok. Why not? I am actually quite happy with it.
Yep, some more diversity between the levels would be nice.
You need PyOpenGL to run the source. I did py2exe it. Sigh.
Yay! You nailed the influence for the concept.
I had no idea that any mouse button event would shoot the gun. I didn't know about the double your firepower "feature" until you pointed it out. Cool!
Everyone wants sounds. It's too bad I ran out of time. It would have been loads of fun to do.
Thanks Jay.
Thanks for the feedback. The game is easier if you have a slower cpu. Sorry about the bug.
It's too bad you didn't try harder to figure it out. But with so many entries to judge, and my complete lack of instructions, I understand.
I disagree. I like the way the flashlight works now.
Thanks for the feedback.
My todo list if I ever put more work into this game:
I'm sure there are 100 other cool things I could add, but it's all a matter if taking the time to do it. Is working on this game worth taking time away from other projects?
Once again, I am very glad I entered the competition. I learned a lot, and I'm proud of my game. I was a little dissapointed to see my average ratings match my previous ld48 entry, Eaters Of Coins. AITD is a much more complex game and I was hoping to do better with it. It seems that the lack of menus and polish really hurt me. But ultimately it doesn't matter. I had fun competeing, and getting to see what everyone else produced was fantastic.