Skip to content

Just an another World of Warcraft server emulator written completely in go

License

Notifications You must be signed in to change notification settings

paalgyula/summit

Repository files navigation

🏔 Summit

World of Warcraft 3.3.5a server emulator - Written in purely GO

"The climbers reached the summit of the mountain after a long and challenging journey."

GitHub go.mod Go version go workflow GitHub top language Lines of code GitHub GitHub last commit

Modules:

  • Authentication/Realmlist server [summit-auth]
  • World Server [summit-world]
  • WoW Database converter [datagen]
  • Proxy (actually a worm) [serworm]
  • Packet dumper

Only for fun/education purposes

This project is just a tiny fun project, my free-time fun with GO, Ghidra. I really love this programming language and I've decided to rewrite my abandoned project what I wrote ~15years ago in C++ (that was the original summit emulator for burning crusade) later became Ascent -> ArcEmu ☠ -> AscEmu

This project will be pure fun, writing the emulator from scratch after +15years experience 😈 Goal: to just run the wow emulator whenever you wanna play/continue to play or you just want to experiment some low level stuff in go.

How to run/develop

The project contains a Makefile which is parameterized to build the project with go 1.21+, the binaries will be placed in bin/ folder. Later I'm planning to create a goreleaser pipeline for github actions to provide some instant binaries too.

The DBC stuff? Hmm... I have an idea to load the dbc in a different way than before. If you check the package:

Community

This project is a one man band (because when i'm writing these lines the project is just 3days old). I have an architecture in my head how this tiny project will change the 🗺 and I'll document it soon to here, but feel free to fork this repository and feel free to have fun.

I've pulled some existing parts from emulators:

Thanks for these communities for the research! 🙏

Why Wotlk?

Because I'm perv a bit. I left the WoW community with this version, so I've decided to jump back in time, and as a linux lover: have a lot of fun 🐧

Plans/Ideas

  • easy to implement/pluggable packet(handler) system
  • Some scripting interface (js maybe) to script the dungeons
  • exportable metrics
  • clustering (with grid based world)
  • administation interface with gRPC connector hosted on https://buf.build (planned)
  • federated auth server (one authentication server, anyone can join with a custom server)
  • Binary file based database no 3rd party sql needed (plan)

If you have any question, feel free to contact me:

[email protected] | gophers.slack.com/#wow | https://fb.me/nev3rkn0wn | ig: @nev3rkn0wn

PR-s are welcome!

Made with ♥ by @paalgyula