Hey guys, I'm active on this forum too! In fact, was checking out your project WiLL on getting coloured lights into NFSHS and the recent thread on modifying Ghost files; any hex offsets are a godsend for this project! AJ, good to see you here as well.
MADMAN, don't worry, I'm not crazy and rolling the Physics from scratch, but using the open source Bullet physics library. Getting a car driving on the NFS3 assets is a short hop away, but getting them to drive
right is a whole 'nother story. The Cry for Speed project was pretty rad, but in many ways I felt that the cart was put before the horse. From what I saw, music playlists were being built at a time when only Hometown had been modelled, with some car model assets thrown in and tied to a prebuilt car Physics model. To get to this point right now with original assets in Unity is doable. Any idea what happened to the project? As luck would have it, I stumbled onto this website
http://www.acth.vissim.com/fed_421.html containing a reverse-engineering of sorts for the Physics. Correlating this back to the carp.txt will be an immense challenge, you're right.
For now, a short project update for you:
- Graphics are nearing a 100% pixel perfect match on the original game, down to the fog and car reflection maps. The animation data and models are loaded too, but using them right now isn't a priority. JimDiabolo has provided me with source for the latest modified versions of T3ED, and through that, Lasse's (Nappe1) shadow raytracer. This is integrated into the engine currently, and allows for some 'time of day' changes - not real time though. Later, a real time shadow map solution will be employed to provide this feature.
- I've just finished up some major work on refactoring the maths to support 'Billboarding', the effect whereby a polygon always faces the camera. This is used around the track for the fake lights. These lights in the original game only had the ability to update the car lighting, in 2018 GPU power is a little ways on from the 90's, so we can now dynamically affect the track lighting - this will make night time races a lot prettier. This is the first of the graphics upgrades that are planned, but I don't want to take away from the original games aesthetic by adding too much; think renovation over revolution. Here's a pic of the unbillboarded lightsrc's in-engine:
- Denis's FSHtool source code is being integrated so that texture asset load will happen automatically after you point the engine to the game resource directory.
- The original game logic responsible for drawing the Skybox and actual light shafts are being reverse engineered. The skybox is a little tough, but everything I need seems to be stored in the .hrz files. I think the original game used fixed function gouraud shading built into the GPU hardware, but nGlide is exposing this as a Pixel Shader 2.0 vertex shader with some special blending, so it's doable.
- AI 'VRoad' data is in, and I've been doing some reading on basic AI to utilise it. Jeff Harris of OpenNFS1 and OpenC1 fame has a blog post up that gave me some inspiration for a base to work from, the idea being that the track is made of 'nodes' and paths between them. To paraphrase, with this data they can look ahead to know when to accelerate and brake to make it successfully around a corner. AI can go nowhere without physics though, so I'm putting a hold on this work for now. Emulating the sine-waveyness of them will be fun I'm sure
- Music! We will have no need for custom playlists, the open source project 'VGMStreamer' can already read the .MUS files in game, but I've found another website that has file format descriptions of the .MUS and .MAP files. When time permits, I will be hooking the VGMStreamer libraries into the project, or writing my own player and referencing the .MAP files so that the music plays dynamically just as in the original. The music was the heart and soul of the original, this is an essential feature. Not essential enough to trump Physics though, so it's going on the backburner.
In terms of time scales and burnout, I am doing this when time permits after work during my University 'year in industry'. On return for my masters thesis, I will be working on machine-learning derived AI for car simulation, and the intention is to bring it up inside OpenNFS3. This places a unique constraint on the project, in that auxiliary features (i.e everything outside of Physics and AI) must be done heading into September 2018 so that I can focus on the AI models. I'll keep you guys up to date when I can, and be putting as much work in as I can. Like AJ said, following me on Twitter is a great way to stay in the loop.
Finally, it's lovely to still see an old school NFS scene around. NFS and the community modding scene got me interested in computers, setting me on the road to being able to develop a project like this. This is as a way of returning to my roots and a love-letter to the original. Hopefully with time we can bring the scene back to the old days by injecting some life with this project.
Peace out
- Amrik.