Development Process

Overview

When starting this project, I really had no idea of what I was doing. I did a lot of researching, reading, book finding, and video watching. I needed to learn the following:

  • Networking
    • TCP & UDP networking
    • Data serialization
  • Rust
    • Threads
    • Safe types (Arc, Mutex)
    • Generics
    • Traits
    • Type traits
    • Macros (Procedural and Derivative)
    • Closures
    • Iterators
    • Packages and crates
    • Pretty much everything from The-Book except lifetimes
  • Game engine architectures
  • Game server architectures

Recap

I first developed the TCP server. After good data passing between threads and handling connections, I realized I needed a sort of game engine running with my server, so it could be authorative. I ended up also making a small game engine.

Resources

Here are some resources I strongly recommend (they aren't even half of what I read and watched):

  • Rust
  • Networking & Serialization
    • Book: "Network Programming with Rust" - Abhishek Chanda
  • ECS
    • Paper: "ECS Game Engine Design" - Daniel Hall
  • Game Engine YouTube series