Monday, June 30, 2008
Version 0.15 additions:
- new improved targeting reticle which shows up under any view (1st person, chaseCam, cornerCam etc.)
- targeting reticle now adjusts to ship's momentum, thus providing an accurate estimate of where your shot will go. Coding this involves taking the ship's orientation quaternion and projecting a fictional, instantaneous shot approximately 25 ship lengths in front of the player (at least that's how I chose to do it)
- shots are now much faster, able to traverse the length of the holodeck in about half a second. This allows for much more accurate, "laser-like" shooting
- you can now adjust the distance of the chaseCam from the player ship
- new Allied ship which hatches from certain small asteroid chunks when the asteroid is shot (these special asteroids have a reddish tint to them)
- the Allied ships look like the player ship, but are red instead of blue. They will actively attempt to hunt down and kill enemy ships in the arena. Quite helpful! But of course they steal points from the player this way.
I'll be in New York City for a week, so the next update will be in 10 days or so.
Saturday, June 21, 2008
- Now that the quaternion problem is solved, I've had time to take a breather and return to some existing elements of the game that needed attention. For instance:
- Increased asteroid size by a factor of 4+. This makes them easier to hit, but also tougher to avoid. In general I find that it makes the asteroids more a part of the game when they are bigger.- New enemy ship graphics (I added enhancements to a free model I downloaded from TurboSquid.com)
- New ChaseCam view allows more panoramic view around the ship
- Revised the particle systems routines to make the particles move more realistically
- I found that the less text I render, the better. There was a dramatic speed improvement when I removed the debugging text.
- Created a basic framework for powerups - a few of the smallest asteroids are of a slightly different colour, and will release a random powerup when hit. (Coming soon!)
- More combing of old code and fixing little errors
- Experimented with temporary gravity toward the -z wall (this could be a powerup)
Tuesday, June 17, 2008
Quaternion by-product work that needed doing:
- Enemy ships tracking abilities re-implemented, quaternion-style
- Shots re-implemented with quaternions
- Re-worked object struct, getting rid of a lot of unneeded parameters and adding others
Enemies now start off quite weak and non-aggressive, so the early levels are fairly easy
Enemy shields, intelligence and aggressiveness increase with each level
Lots of bug fixes
Did some internal re-naming to make the code more readable
Friday, June 13, 2008
After much reading, internet googling and experimentation, I've been able to implement quaternions as the basis for ship orientation and movement.
Still lots of work to do though, as many items (such as the shot spawn routine, and enemy analysis of which direction to move for attack) are still Euler-angle based. For now, though, v0.09 is the first version which allows true 3D movement, uninhibited by gimbal lock.
My goal for version 0.10: to have it as fully functional as the last Euler-angle based version, with shots and enemy AI all working normally but using quaternions.
Wednesday, June 04, 2008
All ships (including the player) now have regenerative capability. Energy levels slowly restore over time; the rate of recovery is proportional to the amount of energy available.
The next major obstacle is overcoming gimbal lock; it's too obvious a problem to be ignored.
The only viable solution is conversion of the 3D orientation algorithms from Euler Angles to Quaternions, an extension of the complex numbers first studied by Hamilton in the 19th century. They were thought to be of very limited value until more recently, when their functionality as a 3D orientation system was discovered. They avoid the problem of gimbal lock completely but the tradeoff is their nonintuitive nature; it's difficult to immediately sense a direction from a given Quaternion, the way one can with Euler Angles.
- ▼ June (5)