OpenNFS1 is an open-source rewrite of the original Need for Speed 1 game by Pioneer Studios and EA. The code is written in C#, using Monogame. The code was written from scratch, but uses the original Need for Speed data (textures, models, tracks). Information on the file formats was reverse engineered by Denis Auroux (mostly) and myself.

I wanted to do this for a couple of reasons: To learn more about 3D coding, to play NFS1 again (the original won't run on modern Windows), and as to see if its possible to replicate (a small amount!) of a groundbreaking old game using modern tools.

While working on OpenNFS1, I learnt a lot of tricks and really came to appreciate the skill of the original programmers. These days computers have so much space and power, us programmers can often get away with being lazy. Back in 1995 things were different...
For example, the texture of track fence and also where the fence is located is all packed into a single byte. The top 2 bits define the sides of the road the fence is on, and the lower 6 bits define the texture id. Pretty cool stuff!

In this version, you can race around every track, with basic vehicle and engine physics, collision detection and sound. There is no collision detection for traffic or racers in this version.