The last week or so has been very productive. Many fixes and tweaks have made it into the build.
Some of the highlights :
I added bump mapping to the cal3d models last night, and tweaked the entity lighting this morning.
Better blending of animations, especially for the AI characters. Basically we derive the animations to use based on how the enemy is actually moving, rather than trying to do a traditional state machine type of thing. So we'll blend in walking forwards or backwards, and side stepping left or right depending on the facing and actual velocity. We also changed the character facing more smoothly.
Fixed some shadowing bugs, including overly large shadow frustums for non-receiving entities and drawing the same world tiles several times into the same shadow map.
This week the real character has been added to the game as well, and he looks pretty good!
Last week we added a laser sight and vertical aiming.
Last week I added blast mode to weapons so a single shot will fire several projectiles over time, rather than just at once.
Additionally, I need to change the way certain particles are rendered. Since the weapons now fire more shots per unit time, this creates more particle clusters, which are rendered individually. This is too slow when each cluster has one 1-10 particles in it. Instead, I am going to consolidate all visible needles, debris, splinters, etc. and render them all at once.
Yesterday I added a walkability field to the materials so that certain materials can still be solid, but cannot be walked on by the player. This keeps the player out of certain areas, and prevents the player and AI from sliding up the curved walls on the temple level.
Soon I am going to change the way material interactions are handled, so we can customize decals, sounds and debris based on the material types involved.
We've recently moved into a small office space in Mountain View, and it really makes a productivity difference for me - much easier to concentrate without the distractions around the house.