- I fixed a bug that in the front/back face edge culling algorithm where the face normal was not being properly multiplied against the rotation matrix.
- I added the ability to rotate or translate any selected object in the world.
- I added a new red-black tree that is keyed on name (a string currently) - I have plans to key this on a 32-bit CRC-Hash in the future. I kept the red-black tree that is keyed on glname, so that objects can still be properly selected. Instancing is now properly supported.
- I ported the Windows code over to Linux. I tested the code on a cluster of 15 dual-processor opteron machines with Nvidia Quadro 3000G cards connected through gig-E. I was able to render to a powerwall framebuffer of 11,520 x 3072 pixels, over 7,000,000 triangles, never falling below 35 frames per second. Very nice. I was using Chromium to kidnap and distribute the openGL state. Chromium Homepage
- I added the ability to post the complete world level data to standard out. Redirecting stdout to a file will create a new instance of the modified world that can then be loaded.
- I added the ability to scale any object in the world universally along all axis or independently. Before scaling can be achieved, the scaling state must be turned on (which will initialize GL_NORMALIZE). This will only be a development tool. I plan to add extra data in the world file that will track the original transformation matrix before scaling occurs and the scale factors along each axis. This will allow me to go into Maya and process the meshes correctly so that scaling can be once again turned off.
I have to confess to spending a lot of my time recently on the XBox 360. I received one over Thanksgiving unexpectedly and finally figured out how to have my N64, PS2, Xbox, and XBox 360 all hooked into my home theater receiver simultaneously.
I had tried the free XBox live trials before that came with games, but I never kept the service. I have always been hesitant to subscribe to services that automatically debit my accounts. But I found it so enjoyable this time around that I purchased a prepaid one year subscription to the service.
So far, I've played Perfect Dark Zero, Gun, Call of Duty 2, Gauntlet, and Smash TV. Surprisingly, or maybe not so surprisingly, Gauntlet and Smash TV proved to be great fun over XBox Live. I really like the "Coin-Op Arcade" feature of XBox Live (which comes free for all users - no subscription required). So far the selection is limited to Gauntlet, Smash TV, and Joust, but Microsoft has contracts with most of the major IP holders of these classics and more will be rolling out soon. Basically, you can browse the selection of classic coin-op games and download a free trial of any that you choose. To unlock the full game you pay around $5 in Microsoft Points (also available in prepaid card fashion). The game is then on your XBox 360 harddrive and can be backup up to another drive if you wish.
For multiplay, the most fun I have had is with Perfect Dark Zero co-op mode. The game was designed from the ground up with Co-op in mind. When playing offline, NPC bots usually fill the void nicely with strong A.I., but having a live human on the other end of the game character is a strong allure for me. Several situations throughout the game require both players to work together. For example, there may be an elevator that needs to be hacked from another location. Once hacked the elevator rides to the top. One player has to hack, the other has to ride up into the unknown. Situations like this are really great.
I also like the "Achievement Point" system. It's almost like a MMORPG in regards to the fact that you have a global point level. Anyone that plays against you can see how many points you have accrued. This allows a social motivation for single player games. While playing Gun, I am always glad to see the "Achievement Unlocked" screen appear.
I am much more impressed with the XBox 360 than I expected to be. I love the ability to download movie trailers, game trailers, game demos, new themes, and game updates at anytime. I also like the fact you can leave voice or text mail messages for any user or send a game invite asking another friend to join in on your multiplayer game.
I am really looking forward to see what comes next.