Monday, October 25, 2010

Work heats up

Work's getting more hectic. I am plodding forward on the lunar lander game nonetheless. I've spent a little bit of time working on coming up with distinct styles of randomly-generated planets in preparation for having a series of them in the game. The big failure there was an attempt to make a loose archipelago of small asteroids. I will need to attack it in a completely different way from how I was doing it. Planet generation needs to be spun off into its own thread so the game is always responsive.

Turrets are getting tuned up now too; hopefully they will make their debut soon. Making the game more challenging is a top priority. Last night I tried making turrets wait to shoot until they can hit the rocket at its closest point; it didn't feel very good. Not enough shooting. I could make them take that point in time and space out shots before and after it but I don't think it's worth the trouble. Next I tried taking the turrets off a synchronized shooting schedule. I'd had them synchronized because I thought it would provide a good rhythm to the game but due to the varying flight times of the shots it didn't, really. Now each turret shoots as soon as it has a shot and then runs its own recharge timer. This feels pretty good. I need to work on having the turrets turn to line up their shots, which will give them an initial reaction time. That may affect how their schedule operates.

The turrets' bullets now hit the rocket. They impart a fixed impulse and a fixed amount of damage. I may fudge the impulse so it applies less torque than is physically accurate. It's cool seeing the rocket get knocked about but if it tumbles too much it just gets annoying. The bullets make use of Chipmunk's sensor shapes; they don't participate in actual collision response, just report contacts. I handle the rest. (I'm thinking of the bullets as an energy ball right now.)

Next is to give the rocket a means of fighting back and disabling the turrets. I am unsure whether I will do a bomb-dropping weapon or a shooty weapon first. Bombs are interesting from a trajectory point of view (this game is all about trajectories) but if they allow you to take out turrets from outside their range it might not be very fun. Limited inventory is the typical way to solve this. Shooting will involve aiming distinct from the aiming used to fly so it'll be an interface problem. I will probably use the same aim and have different buttons for thrust vs. shoot, but the question is what to do with the rocket's auto-rotation. You don't necessarily want the rocket spinning around while you squeeze off a few shots during an approach. I could drop auto-rotation except while thrusting; may try that. Pedro found the auto-rotation confusing. On the other hand, that's giving up some control of the rocket.

Some other similar games like Gravitron 2 (available now on Steam and XBox Live; go get it) have direct rotation control which solves the aiming problem, but it creates problems when interacting with the landscape. Gravitron's landings and impacts feel very unsatisfying to me.

Friday, October 8, 2010

Lander Game WIP

Just posted a new version of my Lunar Lander game on its site.

There are only minor changes from the previous version. The braking line more accurately matches up to the powered trajectory plot, and there are indicator circles around the landing targets when they are very small.

There are some additional undocumented keys that will go away in the future, for things I am working on or experimenting with:

F1-F3 set the camera to one of three different modes (Auto, Manual, and Experimental).
F toggles a debug display of what the camera is trying to frame.
G toggles the ramp motors (ramps are not finished).
Home rescues the nearest guy instantly; useful for testing the camera framing and the end game.