30 December 2004

 

Here we are again after a long time with my dev report. nKpro is now a full time occupation an it is ironic that I had less time to write down these reports. It was easy to find some time at lunchtime while I had a “real” job to get together some ideas and communicate to you; now it seems I am so tired when I finish my day that all I can do is watch TV or listen to some music: weird.

 

Let’s see some progress in nKpro subdivided by sectors:

 

GRAPHICS

I have the real time shadowing system for the cars finished. It is an “hack”, but it works very well. The system generates a plane from the collision points on the ground, then uses this plane to project a shadow onto. This is quite a simple technique, all you have to do is add a plane projection matrix to your model matrix and render the car using a black material. One of the problems with this basic approach is that shadows are completely black. To go around the problem I am using a simple stencil test to make sure that, during the “shadow” pass every pixel is written just once so I can give the material a semitransparent fill and get a blended shadow. The system also need some z biasing to avoid to see the shadow going “under” the road or “under” the kerbs.

This approach works well in 99% of the cases but still fails to project shadows into walls or to correctly handle big elevation changes on the scenery.

Pretty much I am done with the “safe” rendering options, I’ve got lightmaps and hacked car shadows working, now I can use my remaining time to try to work out a “global” shadowing system based on shadow mapping that should be able to cover the entire scene with just one technique. In the case I find myself out of time, or the system to be too complex and not clear I can “fall back” to the actual situation that is already an huge improvement over the past.

During a night experiment with Outrunner we decided to move nKpro to a 16:9 view. This gave an exciting new style to the game. We found the sensation of speed greatly improved with this aspect ratio given the same basic FOV, and, another plus is that now we have some “clean” screen real estate to use for infos and other data needed during the race without using any element to overlap to the main scene. I really love the new look.

 

PHYSICS

Most of the work was done to check and recheck the ingame car behaviour against engineering data and formulas. I found some inconsistencies in the forward/back weight transfers that now is 100% sorted and cars feels much more “alive” under the gas pedal.

The suspensions are still being improved, a lot of work and research is going into McPherson struts, their geometry and behaviour is not as easy and predictable as double wishbones (also because of experiences for us as double wishbones were in nK since the first release) and requires a much more thought approach.

Toeing and dynamic toeing is a another new aspect for us to work with and, alone, it is able to introduce different oversteer/understeer behaviours and it is a real joy to play around with it.

I’ve also done some work to rationalise the turbos but I feel the need for an engineer book on the subject that I don’t have at the moment. Same goes for the engine, I’ve found a couple of books about simulation of combustion engines on amazon and I might have a go at it before the release of v1.0.

 

SOUND

The crossfade engine is an hidden treasure of potential, the system can do so many things and it really gives the possibility to experiment a lot of different ways to approach sound simulation. The next step for us is to grab some nice samples from the real world and apply it to the new system as this will be the real test for this new system. But it is already clear that the articulation of the new sound as it is now is already a big step forward. It is quite exciting to hear the gas coming up and down while braking during replays, it really makes the entire car to come alive.

 

MULTIPLAYER

This has been my main occupation for the last 2 weeks. As I said before, I am starting from scratch with multiplayer because the code used for nK099 was too complex and confused, as results of the many “blind” guesses I had to take given the fact that it was my first attempt at a multiplayer system. There is much more order in the “basic” part of the engine, and I am working a lot on a system that, actually, nobody will ever see but that will allow me to analyse a multiplayer session in the deepest details so to understand the reasons for some weird behaviour. Internet based multiplayer is still a very complex environment, with high risk of lost, obsolete or out of order packets delivery and it can get really hard to understand what remote testers are trying to explain and fix it. It is like shooting in the dark. I am confident this new system will give me a much better chance to identify and target the possible problems.

 

TIMES

nKpro is however really late. I definitely underestimated the impact of an intercontinental relocation on my schedule and Xmas went by with still an huge amount of things to do. I will enjoy one more week of holiday back in my “second home” Tokyo before I come back to my activity, as determined as never in making this entire project something we all could be proud of.

 

I leave you with some renders of one of the new car in nKpro, I hope you’ll enjoy the attention to details.

 

Happy New Year to all of you

 

Stefano