• Architecture Improvements

    Architecture changes Over on mastodon (you know, where all the cool people hang out), June from Redpoint Games reached out to me with an alternate and much better design for dealing with client encryption keys. By the way, check them out if you need matchmaking code, trust me that stuff is SUPER COMPLEX, like NP Read more

  • Some client encryption design thoughts

    My goal was to get libsodium integrated, but I quickly realized I need more systems. For one, I need an LRU cache for storing client keys. Our clients will need to prove they are legitimate before we enqueue their packets, the only way we can do this is if we have some way to determine Read more

  • 40k packets

    Simplifying the server code I wasn’t too happy with the results from the last post, also there’s a lot of magic going on with uvw/libuv. I’m not a fan of magic. So I ripped it all out and decided to go back to basics (sort of). I wanted to try a design where we have Read more

  • Libuv, uvw, flecs oh my!

    Adding in the glue I spent most of the weekend getting the project setup (remember it’s all open source!) , which means fighting with CMake. I also did a lot of reading of libuv vs boost asio for an event based networking system. I finally settled on uvw which is a c++ wrapper of libuv. Read more

  • Environment Setup

    I can not stress enough how important having a good environment setup is for me. Traditionally, I’m a Go developer so getting a similar setup working in C++ will help ease me in. I also use VSCode, so having something working there where I can have my tests and the ability to debug is key. Read more

  • So, you want to build an MMORPG Server

    Even researching how to build an MMORPG server is a large undertaking. There are so many different architectures and designs, components and considerations to take, even before you start coding. It helps to have a high level understanding of what and why it is so complicated. Please keep in mind I’ve Never Done This and Read more