Built a WoW emulator in Rust as a hobby, the difference vs C++ is insane

⚓ Rust    📅 2026-03-03    👤 surdeus    👁️ 2      

surdeus

Hey everyone,

I wanted to share a project I've been obsessed with lately. I'm actually a Web Developer, but a few months ago I decided I wanted to learn how game servers work. I started with C++ (looking at things like TrinityCore and MaNGOS), but as a beginner, the segfaults and the memory management were honestly kicking my ass.

So, I decided to try Rust. I've only been at it for a few months, so I'm definitely still a "novato" (newbie). I've fought the borrow checker more times than I can count.

I built RustyCore — a WotLK (3.4.3) emulator. It's still early days, but seeing the difference between this and the C++ stuff I was studying is just... insane.

On being a beginner + AI: Full disclosure: Since I'm still learning the ropes of Rust and low-level systems, I've been using AI tools to help me out. It's been great for filling in the blanks or explaining why a certain lifetime was failing. However, having the architecture figured out (and knowing what I wanted to build) made the real difference. The AI is a great co-pilot, but Rust still forces you to understand why things work.

Some "noob" observations on performance:

  • RAM: My idle RAM is around 50-80 MB. The C++ servers I tried usually sat at 300-500 MB doing nothing.
  • Size: The release binary is only 10 MB. I'm still shocked by how tiny it is.
  • Async: Coming from web dev, using Tokio and Axum felt way more natural than the thread-per-connection stuff in C++.

The hardest part (The "Aha!" moment): At first, I tried to code it like a regular app, but in a game server everything wants to talk to (and change) everything else at the same time. I almost gave up until I discovered ECS (I'm using the hecs crate). Moving from "objects" to "components and systems" changed everything. Suddenly, the code started making sense and the compiler stopped yelling at me.

The "Raspberry Pi" dream: I'm not 100% sure yet, but looking at how little it uses, I think it might actually be possible to run this on a Raspberry Pi 5. That would be a huge win compared to the hardware usually needed for these emulators.

Repo if you want to judge my beginner code: github.com/alseif0x/rustycore

I'm still learning, so if you see something that looks "un-idiomatic" or just plain wrong, please let me know! I'd love to hear how I can make this better.

1 post - 1 participant

Read full topic

🏷️ Rust_feed