Tokyo 10 Sept 2004
EXCITING TIME
In less than 2
months time I will have to leave Japan and I will start to work to
nKpro as a full-time
occupation. After 3 years of sharing my time between my real job and my part
time obsession this next change is one of the most exciting things I've ever
faced. I can't wait to find myself able to wake up, work, eat and sleep with
just one thing in mind: nKpro. I was "forced" into this by some
events during last week (that's the reason for the missing report btw), but now
that things have cooled down I can see this is the right decision for
everybody. I hope sales for nKpro will be enough to allow me to come back to
live here, but if not, it was a fantastic experience that I'll never forget. A
country with such an high pace in everything, from fashion to cars to daily
life to commerce to culture.. and simply the place with the most beautiful
girls on the planet ;-)... I will miss every bit of it.
GENERAL PROGRAMMING
That's what I've
been doing last week, it was one of those week when it was very difficult to
say I was working on a videogame. I concentrated my effort on 2 main subjects:
1) Security and
protection
Nothing's
uncrackable of course, I just hope to make it more difficult to happen. nKpro
is based on a series of licence files that unlock different parts of the game. Every
component, from tracks to cars to plugins to single editors could be connected to
a licence. This would allow commercial expansion kits for nKpro, where the 3rd
party developer could use this licence system to "lock" their
creation.
2) Virtual file
system
Things can get messy
with hundreds of texture files, ini, conf, and db files lying around, so I took
some time to work on a virtual file system that allow an entire folder
structure to be collapsed into one big file. Nothing new really, most commercial
games do that, think about Id's "pak" files. nKpro virtual file
system files will be password protected to lock sensible data and artwork for
3rd party cars.
BACK TO PHYSICS
This week though,
was finally about physics. It is amazing how nKpro is getting "simpler"
compared to nK 0.9.9. I've changed the way the collision between road and tyres
work, well, what I actually mean for "changed" is, I've deleted 40%
of the code for it! The entire automatic smoothing system is gone and now cars
are driving purely on the triangles. When I started nK my main references was
GPL and Nascar from Papy. Their road surfaces were always silky smooth and it
was weird to have cars bumping around on the tracks. Then F1200x came along and
we started to get used to a more bumpy track and to discover that, actually,
not only bumps offered a major challenge actually present in real life, but
they also contributed to created an increased "sense of speed" by
just raising the frequence of the micro irregularities of moving from one
triangle to another. But the triangle approach has many problems when applied
to corners with high height changes (think Eau Rouge). I strongly opposed to
the idea of having splines in nK since from the start, it makes the job too
difficult for converters. For nKpro the solution for banked or high elevation corners
is in a high definition triangle mesh used by the collision system and not by
the drawing system. In other words, tons of triangles are checked for collision
but only a reasonable amount are used to render. This is pretty simple, code is
very clean and memory footprint (for
"normal"
tracks) is much reduced because the collision triangles are not storing normals
and additional infos for barycentric interpolation.
MY HEAD IS HURTING,
CAN I DO A FPS?
Physic programming
can be a nightmare, there are things that just will not work and make you
scream in agony. Low speed (<10Kmh) is an official nightmare, I tried to
clean up a bit the code in that segment too but all I did was gettng an headache
for 2 days, this morning I quickly fell back to the old code, I'll think about that
during my "fulltime" nKpro period.
MORE ADDITIONS
McPherson is
working. It is still difficult to setup because I didn't write the code to analyse
the roll center position yet. So I tried to setup a McPherson on a test car and
the front axle was going uuupp during cornering driving me mad. At the end of the
day it was just a bad jacking due to a wrong setup, instant centers and roll centers
are needed badly for this suspension since it is so easy to screw it compared
to double wishbones.
I've also finished
the work on progressive springs and dampers. They're not really "progressive",
they could be whatever the user wants so to simulate coil overs, different
dampers etc. Pretty nice but I need a lot of work to expose them outside.
I am also working on
a real-time garage for spring and height adjustments, it is much easier when
you can actually see the car going up and down.
ONE MORE SIM
Just a quick note on
the new Richard Burns Rally: really awesome. I was hooked for hours and I
couldn't stop. The most impressive feature is "familiarity", never, not
even for 10 second I had to "relearn" the car in the game, it felt so
familiar and every apparent "strange" behaviour was due to setup and
not to strange physics. I read it is selling well since online resellers are
out of stock, this can only do good to this community and I hope to see more of
these efforts in the future.
Next week is going
to be a "full-time" week (hols that is) and I really expect to
come up with some
screens for you.
ciao
stefano