September 5th, 2024

Building a WoW (World of Warcraft) Server in Elixir

The Thistle Tea project is a private World of Warcraft server developed in Elixir, featuring user authentication, character creation, and basic gameplay, with plans for further refinement and expanded interactions.

Read original articleLink Icon
Building a WoW (World of Warcraft) Server in Elixir

on implementing the handling of equipment display. This involved creating a system to manage and display character equipment properly, which required integrating with the existing character data structure. I referenced the MaNGOS database to ensure that the equipment IDs were accurate and reflected the correct items. After several adjustments, I was able to successfully display the equipment on characters, enhancing the visual aspect of the game.

Throughout the development process, I focused on learning Elixir and its capabilities, particularly in handling concurrent processes and message passing, which proved beneficial for the MMO server's architecture. The project has progressed significantly, with core functionalities like authentication, character creation, and basic gameplay mechanics already implemented. The next steps will involve refining the existing features, addressing bugs, and expanding the game's functionality to include more complex interactions and features typical of an MMO.

- The project, named Thistle Tea, is a private World of Warcraft server built using Elixir.

- Key functionalities implemented include user authentication, character creation, and basic gameplay mechanics.

- The developer utilized existing resources like MaNGOS for data and Thousand Island for socket management.

- The project serves as a learning experience for the developer to deepen their understanding of Elixir and its actor model.

- Future work will focus on refining features and expanding gameplay interactions.

Related

Elixir for Humans Who Know Python

Elixir for Humans Who Know Python

The article explores transitioning from Python to Elixir, emphasizing Elixir's concurrency, Phoenix framework, LiveView feature, immutability, and pattern matching. It compares Elixir's functionalism and control flow to Python, showcasing Elixir's efficiency for web development.

Building a World of Warcraft Server in Elixir

Building a World of Warcraft Server in Elixir

A developer documents building a World of Warcraft private server project named Thistle Tea with Elixir. Challenges included cryptography, packet handling, and optimization. Utilized MaNGOS data and Shadowburn's code. Integrated Mnesia database for management.

Building a Wow Server in Elixir

Building a Wow Server in Elixir

A developer documents building a World of Warcraft private server project, Thistle Tea, with Elixir. Challenges included cryptography, packet handling, and optimization. Utilized MaNGOS data, Shadowburn's code, and Elixir documentation. Implemented player features and database integration. Explored Elixir's benefits in MMO development.

Enhancing Your Elixir Codebase with Gleam

Enhancing Your Elixir Codebase with Gleam

Gleam is a statically typed language for the BEAM platform, enabling type safety in Elixir projects. The article details integrating Gleam for managing student enrollments, emphasizing testing and robustness.

Open Source Twitch for Developers

Open Source Twitch for Developers

Algora TV is an interactive livestreaming platform for developers, requiring software installations and configurations. It features a robust architecture for streamers and viewers, is open-source, and uses various technologies.

Link Icon 9 comments
By @zelo - 8 months
That's awesome! It made me a bit nostalgic, thinking back to the first program I ever wrote. It was a WoW bot that walked between the mailbox and the auction house, manipulating auction prices. The bot would drive the glyph prices to the bottom by lowering the lowest price by just 1 bronze to always be the cheapest when sorted by price. Then, it would buy up the entire market stock and offer everything for 50 gold each, starting the cycle again. It was glue code between Lua extensions and xdotool, all written in Bash, running WoW under Wine on Linux. The bot was pulling in about 20K gold per day on a single account.

The fun part is, I was 14 years old and had zero programming knowledge at the time—just a feeling that this process could be automated and access to Google. The bot was reading the game state by capturing specific parts of the screen and comparing MD5 checksums of where the buttons were supposed to appear. I used xdotool for mouse and keyboard input, along with in-game settings like Lua command execution inside the game console to target specific NPCs or mailboxes and click to move. It probably pushed me toward pursuing a career in this industry.

By @hakanderyal - 8 months
This was a good read. As a former WoW addict, I barely stopped myself from undertaking implementing one for myself.

This is not an area I'm familiar with and I always assumed this kind of work would involve concepts that are foreign to me, but upon reading it seems it was not that magical.

By @doublerabbit - 8 months
As a s'kiddie who used to host gameservers (Q3, IRCd, RTCW) and which is now a dying art, I give many kudos to anyone developing home-brew projects to emulate any sort of game server.

I loved Habbo Hotel as a teen, and the fact there are still folk developing a "retro hotels", self hosted, really sparks a little bit of joy.

I just don't have the fanbase, time nor power of influence to get folk to join but I check around now and then.

https://devbest.com/forums/habbo-releases.31/

https://forum.ragezone.com/community/habbo-hotel.282/

By @fouronnes3 - 8 months
A pipe dream of mine is an open source WoW 1.12 client implementation. I wonder if anyone has ever attempted that. Bonus point if it compiles to javascript :)
By @dindresto - 8 months
I was active in the WoW server emulation scene somewhere around 2008 to 2012 and fondly look back on that time. Especially the German forum darkwow.de (and later mmonerds.de) is one of the reasons I got into computer science and I'm still in touch with some of the former members. Ten years later I got an MSc degree in computer science and programming is one of my most profound hobbies.
By @Eumenes - 8 months
I was drunk the other night asking genAI to make me an overengineered encrypted messaging system using extensive steganography involving WoW. Got me deep into WoW add-on development.
By @h1fra - 8 months
Impressive, feels crazy to be able to build something like this without really knowing what they actually did on the backend.
By @seper8 - 8 months
This is super cool and I really like the fact that you added the dates. Puts things in perspective!