-
MMORPG Server Emulators And Where To Find Them
It’s always good to see examples of MMO servers up close. Over the years I’ve tracked down quite a few emulators. While not an exact representation of what a production MMORPG server looks like, you can get a very good sense of the design patterns just by reviewing the reverse engineered packets and opcodes. This… Read more
-
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