I've been building a video game with the Untold Engine, a game engine I developed. I wanted to create a racing car video game for my kids. I figured that it would make them happy. You can read part I here.
I showed the current state of the game to my kids. To my surprise, they didn't like the direction of the game.
I was wrong in assuming they would like a cartoonish type of video game. I asked my son what he didn't like, and he replied that he wanted the car to be more real and to look like an F1 car. I was a bit "hurt" (lol) and also surprised. I guess they have better taste than I do.
So, we went to cgtrader.com and found a car they loved. Here the F1 car he chose. The video below shows the F1 car in a PBR renderer a made a while back.
Now that I knew what my kids wanted, I tried to render the car in the Untold Engine, and it failed to load. The reason is that the engine associates one entity id to one mesh. The model had several meshes. So, I modified the engine to handle one-to-many relationships, i.e. one entity can have many meshes. After doing so, the Untold Engine was able to render the F1 car.
What I did next was to buy a race-track asset for the game. I added control points (path) to help my kids drive the car; I call it "AI Assist" lol.
However, once I hit play, I realized several things were missing in the engine:
- The wheels are not rotating.
- The car's steering sucks.
Ideally, we want the car to be the parent entity and the wheels and the steering to be child entities. By doing so, the wheels can rotate independently as the car drives. However, the engine does not have a concept of "Transform Hierarchies". I need to figure out how to do so in an ECS architecture.
If you have any ideas, let me know.
Thanks for reading.