9 Jun 2007
More Forza
Holy sh*t. I just discovered that one can download the car setup and the entire replay session of the top 100 players of each career race... No longer guessing how exactly the world's #1 player managed to finish the same race 2 minutes faster, you can watch every single second of it, complete with telemetry information. Awesome. I'm also proud to report that I just finished the Suzuka Circuit at the "Kumho Tire 250HP International" event at position 260 out of roughly 81.000 players who raced there so far. Not too shabby eh? :)
8 Jun 2007
Forza2!
Yo gang, check out my pimped out Camaro :o) It's way overpowered and handles like a container ship, so it's totally useless for racing. But that's what a muscle car is all about, right? Need to improve my paint-job skills though...
Love the game so far... It's much, much deeper then GT4. Could have more tracks though, and the environment graphics are a bit meh for a 360 title. Oh, and definitely not enough BMW models. I'd like to see the new M3 and the Z4 Coupé please.
Love the game so far... It's much, much deeper then GT4. Could have more tracks though, and the environment graphics are a bit meh for a 360 title. Oh, and definitely not enough BMW models. I'd like to see the new M3 and the Z4 Coupé please.
3 Jun 2007
Tomb Raiding
Being a veteran home computer and PC gamer I was never really interested in the Tomb Raider games. But a lack of good new 360 games in April and May, the fact that I heard good things about Tomb Raider Legends and the unbeatable price tag of 20 Euro (new) seduced me to give ol' Lara a try. And I must say I'm enjoying the game quite a bit. The graphics are relatively simple but next-genish-enough (nice dynamic lighting and shadowing, although overall the game is a bit dark). The character designs differ a lot in quality. Lara is well done, but most of the other story characters ... not so much. I like the fact that Crystal Dynamics went with a clear comic style for the characters instead of going the realistic route or some mishmash style. And Lara's British accent is simply hot, thank the gods they didn't choose one of those typical American mickey mouse voices. The game feels best when climbing around in the levels, controlling Lara is very intuitive and the animations are very well done and connect to each other nicely. But where's light, there's also shadow:
- Interactive cut scenes: this Quick Timer Event crap needs to go. It's the single poorest game play mechanic in all gaming history. The point is, humanity knows this since Dragon's Lair. But those who don't learn from history are doomed to repeat it. QTE's reduce the gamer to a trained lab-monkey who needs to push a button when the red light flashes to get his next cookie. Personally I'm slightly offended by this shit. Why did we suffer through millions of years of evolution when a chimpanzee could do the exact same job??
- Some of the boss fights require heavy guesswork. At one time I even had to look for a walk-through in the intertubes because I was stuck. That's just poor. I don't want to trial-and-error my way through the game, I want to have logical clues presented how to proceed next, please. In contrast, most of the in-game puzzles are very well done and logical, but may require some serious hand-eye-coordination.
Math lib changes
While working on the new graphics and scene subsystems I eventually came to the point where some math code was needed (managing the view, world and projections transforms and their combinations, and flattening matrix hierarchies into world space). My original plan was to create a low level functional math library which looks much like HLSL and uses SSE intrinsics for performance. I started this stuff and soon it became clear that it would be quite an undertaking to correctly implement and test all this. And then there would only be an SSE implementation, when there's still SSE2..4, 3DNow around, and completely different intrinsics on the Xbox360 and other platforms. Sure, the problem could be solved by throwing manpower at it. But that's never a good idea for solving programming problems. So I looked around for a more pragmatic solution and found it in the form of the D3DX math library. The D3DX math functions are very complete, specialized for games, and support all current (and presumably future) vector instructions sets under the hood, and the 360 math library basically offers the same feature set (although it's much more down to the metal).
There are 2 disadvantages:
There a few other aspects to consider:
Another basic change I wanted to do for some time was to differentiate between points and vectors. There is now a Math::point and a Math::vector class which both derive from the generic Math::float4 class. A point describes a position in 3d space and a vector describes a direction and length in 3d space, generalized to homogeneous 4d space (the w component of a point is always 1.0, the w component of a vector is always 0.0). By creating 2 different classes with the right operator overloading one can encode the computation rules for points and vectors right into the C++ code, so that the compiler throws an error when the rules are violated:
So the new math lib basically looks like this:
The following low level classes directly call D3DX functions:
* matrix44 (D3DXMatrix functions)
* float4 (D3DXVec4 functions)
* quaternion (D3DXQuaternion functions)
* plane (D3DXPlane functions)
All other classes (like bbox, sphere, line, etc...) are generic and use functionality provided by the above low level classes. There is also a new scalar type (which is just a typedef'ed float), which helps in porting to some platforms (for instance, on NintendoDS, all math code is fixed point, so a scalar would be typedef'ed from one of the fixed point types). I still have to write a complete set of test and benchmark classes for the math library, but for now I'm quite happy that a very big chunk of work has been reduced to about 2 days of implementation time.
There are 2 disadvantages:
- additional calling overhead since D3DX functions are not inlined
- not portable to other platforms except DirectX and Xbox360
There a few other aspects to consider:
- With C++ math code, performance shouldn't get into the way of convenience. For instance, a proper operator+() always costs some performance because a temporary object must be constructed (the return value). But it's much more convenient and readable to use C++ operator overloading in generic game code instead of using (for instance) intrinsics. The point is to pay special attention to inner loops and use lower level code there when it actually makes sense.
- There should only be very few places in Nebula where heavy math code is actually executed on the CPU (in Nebula2 these are: particle systems, animation code, computing shadow caster geometry for skinned characters). In Nebula3 these tasks are either offloaded to the GPU, or will be obsolete). In general, the CPU should NEVER touch geometry per-frame and per-vertex.
Another basic change I wanted to do for some time was to differentiate between points and vectors. There is now a Math::point and a Math::vector class which both derive from the generic Math::float4 class. A point describes a position in 3d space and a vector describes a direction and length in 3d space, generalized to homogeneous 4d space (the w component of a point is always 1.0, the w component of a vector is always 0.0). By creating 2 different classes with the right operator overloading one can encode the computation rules for points and vectors right into the C++ code, so that the compiler throws an error when the rules are violated:
- (point + point) is illegal
- (point * scalar) is illegal
- point = point + vector
- vector = point - point
- vector = vector + vector
- vector = vector - vector
- vector = vector * scalar
- etc...
So the new math lib basically looks like this:
The following low level classes directly call D3DX functions:
* matrix44 (D3DXMatrix functions)
* float4 (D3DXVec4 functions)
* quaternion (D3DXQuaternion functions)
* plane (D3DXPlane functions)
All other classes (like bbox, sphere, line, etc...) are generic and use functionality provided by the above low level classes. There is also a new scalar type (which is just a typedef'ed float), which helps in porting to some platforms (for instance, on NintendoDS, all math code is fixed point, so a scalar would be typedef'ed from one of the fixed point types). I still have to write a complete set of test and benchmark classes for the math library, but for now I'm quite happy that a very big chunk of work has been reduced to about 2 days of implementation time.
18 May 2007
April NPD numbers, ouch...
Just saw the NPD hardware numbers for April. Not only did the PS3 fall under 100k in April (which few dared to predict), it went down to 82k! For giggles, that's even less than the Game Boy Advance (84k). On the other hand, the 360 didn't do very well either, 174k is clearly sub-standard. Nintendo rules the world as usual for this generation, selling more Wiis and DS (and GBA's!) then all of the competition combined.
Of Orbs And True Skills
Finally! I found my last agility orb in Crackdown. I played through the game again to check out the downloadable content, cleaning up the remaining gang members after killing the final boss. And there it is: the long forgotten green glow! It sits on a roof of a twin-tower skyscaper near the river in the Shai Gen district at a rather exposed location (must have missed it at several times in the last days). Like an alpinist his next mountain, I analyzed the building. The facade couldn't be reached from the street level, and there was only a row of window ledges along the 2 towers. But there was a building nearby which seemed near enough for a jump. Reaching the orb was easier then it looked like at first. Finally, I stepped into the green light, absorbed all the tiny little orbs, and then the sweet, sweet sound of "Achievement unlocked". Pure gaming bliss :) Crackdown is really one of those rare gems, where you pick up the controller and within 10 seconds you're totally sucked into the game and then you suddenly realize it's 3 hours later.
Speaking of suck... I also tried out the Halo 3 beta. The game plays great, but the first few rounds I totally got my ass handed to me by some Halo veterans. But then the magic of the TrueSkill system kicked in, and after the game realized that I totally suck at Halo it handed me down the ladder until I found sessions with equally bad players. I even won one session. Now I still think that I'm a pretty good FPS player once I'm warmed up. I spent countless hours in Battlefield 2 on the PC, but on the console, I still don't feel comfortable with those old-school shooters which don't provide a cover system. To me, the advent of cover systems has been the big turning point when console shooters finally became playable. I absolutely adore Rainbow Six Vegas for its cover system. It's ways above Gears' and GRAW's. I tried to play Quake4 and Prey on the 360 and I gave up after a few hours. And I must admit that I never really understood the hype around Halo. The graphics always looked meh when compared to other shooters of that time. I really (really) tried to like it by starting to play both Halo1 and Halo2. I gave up the single player campaigns in disgust after about an hour. So I was pleasently surprised when I looked into the Halo 3 beta. The game play is extremly smooth, controls are intuitive, graphics looked pretty good (but far from great).
Forza 2 demo: I've put countless hours into GT4 on the PS2, so Forza2 will be a must-have. I really like the time penalty when crashing into other cars. Makes Gran Turismo almost look like a arcade game. I used to crash into other cars in GT at strategic positions quite a lot to drive them off the track. Makes absolutely no sense in Forza. What I really didn't like was the lighting of the demo track. Lighting is why GT on the PS2 looks so real despite the low-poly environment. Forza just looks like a typical computer game. And I think it's the lighting. I can't put my finger on it, but there seems to be too little contrast and dynamic range. I know from our projects at Radon Labs that the wrong lighting can even make fantastic models look meh. In reverse, you can take last-gen models and characters, and with the right lights and post effects it will look breath-taking. I also tried out the driving wheel with the Forza demo, and while it's seems to be supported perfectly I still prefer the game pad controls.
Another favourite this week was that new pinball game on Live Arcade. Great stuff. Brings back memories of Pinball Fantasies on the Amiga :)
Hmm... busy gaming week this was...
Speaking of suck... I also tried out the Halo 3 beta. The game plays great, but the first few rounds I totally got my ass handed to me by some Halo veterans. But then the magic of the TrueSkill system kicked in, and after the game realized that I totally suck at Halo it handed me down the ladder until I found sessions with equally bad players. I even won one session. Now I still think that I'm a pretty good FPS player once I'm warmed up. I spent countless hours in Battlefield 2 on the PC, but on the console, I still don't feel comfortable with those old-school shooters which don't provide a cover system. To me, the advent of cover systems has been the big turning point when console shooters finally became playable. I absolutely adore Rainbow Six Vegas for its cover system. It's ways above Gears' and GRAW's. I tried to play Quake4 and Prey on the 360 and I gave up after a few hours. And I must admit that I never really understood the hype around Halo. The graphics always looked meh when compared to other shooters of that time. I really (really) tried to like it by starting to play both Halo1 and Halo2. I gave up the single player campaigns in disgust after about an hour. So I was pleasently surprised when I looked into the Halo 3 beta. The game play is extremly smooth, controls are intuitive, graphics looked pretty good (but far from great).
Forza 2 demo: I've put countless hours into GT4 on the PS2, so Forza2 will be a must-have. I really like the time penalty when crashing into other cars. Makes Gran Turismo almost look like a arcade game. I used to crash into other cars in GT at strategic positions quite a lot to drive them off the track. Makes absolutely no sense in Forza. What I really didn't like was the lighting of the demo track. Lighting is why GT on the PS2 looks so real despite the low-poly environment. Forza just looks like a typical computer game. And I think it's the lighting. I can't put my finger on it, but there seems to be too little contrast and dynamic range. I know from our projects at Radon Labs that the wrong lighting can even make fantastic models look meh. In reverse, you can take last-gen models and characters, and with the right lights and post effects it will look breath-taking. I also tried out the driving wheel with the Forza demo, and while it's seems to be supported perfectly I still prefer the game pad controls.
Another favourite this week was that new pinball game on Live Arcade. Great stuff. Brings back memories of Pinball Fantasies on the Amiga :)
Hmm... busy gaming week this was...
9 May 2007
Dashboard Update!
The VGA level fix in the 360 dashboard update did wonders to the picture quality for my setup. Before the update I had the choice to connect my 360 to my TV (Sony) either through component or through VGA. Component has beautiful colors but fine detail wasn't perfect (there were slight artifacts around characters for instance). The VGA picture is extremely smooth and detailed, but had washed out colors on my TV. Also: component doesn't upscale DVDs, so the TV switches back to PAL (576p or so) and does the "upscaling" itself (which really looks crappy on my TV). DVD playback through VGA nicely upscales to 720 or 1080 (the latter doesn't make sense with my TV since it only has a 720 panel). So before the update I could either have nice colors, but slight artifacts, or a perfectly smooth picture with poor colors. The dashboard update fixes the VGA colors, and upscaled DVDs look perfect now (better then my old upscaling DVD player with HDMI I'd say). No reason to get that Elite now for its HDMI output :) Oh and the other new stuff is pretty cool too I guess, switching blades feels more responsive now, and it's now easier to find stuff on the marketplace.
Subscribe to:
Posts (Atom)