My 2019's guideline: build a game from scratch

This time it's decided, I'll try to create my own game from scratch to understand the complexity a game hides. Each time I play to a game I can't stop to ask myself "How does it work?", "How many lines of code the codebase has?" or "Will I be able to do this?". I can't live anymore without the answers to this questions, so I will try to create my own game from scratch and see by the experiment what I'm able to understand and implement.

I already try this once, a few years ago, but I've chosen to do this in C because I also wanted to understand how the low-level memory works and I think it was a mistake. You can't deal with too much complexity at a time so I will leave besides the memory understanding, even if I'm still interested by this aspect of the programming, and I will focus on the game itself. How create a world? How create the AI? How deal with the many things a game has to manage like the audio, the graphics, the file system or the gameplay itself?

To put all the odds on my side this time, I decided to do this in C#, the langage I know best even if it seems that it's not the best choice to develop a game but it's clearly acceptable for a first one. I don't want to develop the most optimized and complex game ever but just a complete working game. Maybe my next challenge will be to re-do this in C but for now I'll keep this complexity for another time.

I already read some books about game programming, the last one, "Game Programming Patterns" by Robert Nystrom was really absorbing and it's maybe one of the reasons why I'll try to implement a game on my own. I bought yesterday "Game Engine Architecture" by Jason Gregory to complete the picture of how a game is designed and implemented but I think the time has come to try by myself.

The next step is obviously to find an idea of game to develop even if the game already exists. Why not try to re-do something existing like Sim City, it could be interesting. I'm leaving myself a few day to find a concept of game that I could create from scratch then I'll try to do this. Parallel to that, I have to decide which will be my strategy for the design. Would I use a game-engine like Mono or Unity? Or create even the engine from scratch? I decided about the C# but I have to think a little more about the approach I'll use to do this.

See you in a few days or weeks for the next phase of this project.

October 24, 2018
  • .NET Core
  • Game programming