Well, the project status right now is like this:The graphics engine can read all original track element shapes after being unpacked (with stunpack) and is able to render any track and you can look at it from any direction. Like Stunts, it uses a painter's algorithm, but since we don't know exactly how Stunts' original algorithm works, I am unable to make it do
exactly the same. Therefore, if you use the original shapes, which are designed with Stunts' algorithm in mind, some glitches inevitably appear. If you design new shapes instead, it's easy to make them not have these glitches. Car shapes are still not drawn, but in theory, it can draw everything but wheels.
I've been considering to eventually make another version of the graphics engine that would use z-buffering instead, but this is a major change and I believe it's better to take the current renderer and advance into physics first, before replacing it, since anyway, any graphics engine that I make could be plugged together with the physics engine. Using z-buffering would mean virtually zero glitches and culling information would become unnecessary to process. It would also allow for polygons to cross each other completely and still look accurate, simplifying life for anybody creating new track elements. On the other hand, z-buffering is slower. This shouldn't be a problem for new computers, but I would have to use core routines in assembly unless I prefer to use OpenGL (which I don't, at least for this project).
The current graphics engine can do some things that the original engine cannot. For example, it can rotate track elements at any vertical angle, not just multiples of right angles. It can also place elements at any displacement. All this means that a track would not need to be strictly aligned to the grid. It can also dynamically change the material of track elements and incline them to match slopes, which Stunts
can do, but does not open to the user, so with my engine, you can do things like putting a tunnel on a slope or create a dirty or icy ramp without needing to design new shapes for them. It also has one grille type that's not available in original Stunts.
The physics engine.... well, I'm stuck. I sat down to think about how to start and I couldn't come up with a good way. I've never done anything like that. In theory, it should be easier than graphics rendering, but I'm inexperienced. I think I will have to start trying things and fail several times until I start to grasp the idea. My confusion is especially strong regarding 3D collisions. Physical car parameters, I think I can work with reasonably well. With physics, another thing appears: a track comprehension engine. What this means is routines that allow the game to tell whether the car is on the road, which way the road must be driven, which path can take you to the finish-line, etc. These problems, I intend to solve, when the time comes, in a more "manual" way than Stunts, allowing the track designer to establish checkpoints and, if he or she wouldn't want to, have the track editor auto-generate them instead of the game engine.
Status of my own personYou guys know I'm busier than before since I started my new work, but I have to admit I do have some time. I've been dedicating some of it to CarWorks, which does have lots of pending things but at least, has reached a point at which it can do all the basic things that are needed from it. I've also been feeling pretty lazy, mostly because of the super-cold days we're having. It's hard to program when you're freezing, ha, ha. But if I feel like things are more active regarding this project, I'll probably retake it soon
