So I want to make a race game in 3D. I know my limitations; without the proper experience I’m not going to be able to create a full 3D racetrack with fancy graphics. So I’m going to generate the track geometry much like a slotcar racetrack.
I haven’t made a 3D racer before, but I did create a 2D (pseudo3D) race game. With some thought these principles can translate to 3D. It may be quite different from the way modern racers are made, so let’s see where this is headed.
As in the 2D racer, each track will be built up using segments. Each segment will have some properties to it: is it a curve? if yes, how sharp is the turn? Does it have kerbstones? What is the width? And so on. This can be expanded later with more properties.
Stringing theses sections together will create a track. The cars on the track will have knowledge of the section they’re on and the sections ahead of them. So internally the cars only work with these sections and not actually interact with the 3D model at all! The model of the track is just to display the game’s internal state.
Once the list of the sections is known, a 3D model of the track can be generated.
Until now most of my games were made in 2D. Sprites and a bit of pseudo 3D- essentially scaling tricks to make thing appear 3D. For my next project I will need ‘real’ 3D stuff. Time to get familiar with how 3D computer graphics work. I’m still learning so join me while I figure this out.
I will be using Monogame for this project. Why Monogame? Glad you asked. I want to use Monogame for a couple of reasons: I want to learn how things work.
I’ve tried both Unity and Unreal Engine. It worked nice for quick prototypes, but I felt I was struggling learning how these tools work instead of actually getting the result I was looking for. Perhaps my next game will be in Unity once I have a better understanding 3D concepts in general.
Another thing is familiarity: I started creating games in the XNA framework a couple of years ago and have since moved on to Monogame. Stuff like a custom Content Pipeline has become familiar to me.
Furthermore I’m not a 3D modeller. I have the basic concept of my game in my mind and I plan to generate most of the 3D content. Using this concept a familiar tool helps me to focus on what I want to learn.
So time to get familiar with Monogame and basic 3D concepts!