Stellar Fortress v0.20
To placate my critics, here is another update for Stellar Fortress, as promised.
I'm hit! I'm hit!
New Features:
sf20.asm 1/10/08
- Major improvements to shield collision detection. Now uses a combination of coordinate checking and collision registers. Allows player to fly closer to the cannon, making the game feel less claustrophobic.
- Added 16-bit trig table for linear shots. This is now used for the Plasma ball. It imitates 16-bit motion with proper trig ratios, without the RAM overhead. Allows Plasma Cannon to be fired in 64 directions.
- Added ship-to-enemy collision detection. Ship can now be destroyed by missile, Plasma ball, and the Plasma Cannon.
- Plasma ball expands as it moves away from the cannon.
- Added animated ship explosion with color cycling. Thanks to Nathan for providing the original explosion. I had to stretch it a couple lines to match the size of the ship, but otherwise I like how it turned out.
- Lowered pitch of shield bounce sound. Sounds less rubbery.
- Added explosion sound and warp-in sound.
- Ship count is reduced when a ship is destroyed.
- Fixed two bugs that have been around for literally years. The first bug was visual artifacts on the player ship when the game first started. This was caused by an incorrectly initialized graphics vector. The other bug was a volume reset in the thrust code that was affecting all sound effects on audio voice 1. All sound effects now sound more crisp, particularly the player's Ion Cannon, and the shield bounce sound.
To Do:
- Add artificial intelligence to the evil forces of the Galactic Trade Union. Add a tracker for the missile, and targeting for the Plasma Cannon.
- Rewrite the kernel (again.) It currently contains suckage. Should handle the screen in sections, rather than trying to do everything in one kernel. This will open up cycles for a snazzy new game feature.
- Change the player shots to use the new trig engine. This will open up more RAM. The current code uses 6 bytes for each player shot: 2 for a 16-bit X position, 2 for a 16-bit Y position, plus one for direction and one for distance. Now I only have to use one byte for X and one for Y, and direction and distance can be combined into a single 2-nibble byte. This will free up another 6 bytes of precious RAM.
- Clean up the priorities and channel sharing on the sound effects, especially the thrust sound. The trust is interfering with the bounce and warp-in sounds.
- Stop making blog posts at 2 in the morning on a work night.
Known Issues:
- The player shot to shield collision detection is a little off. Gotta fix that.
Development Notes:
For the record, I am not anti-union. I understand that not all galactic trade unions are evil.
4 Comments
Recommended Comments