WoWGD
Vanilla, 1.12.1 (5875) · tested with vMaNGOS and mangoszero · Playable · Benchmarks and screenshots vs benilla
What's in
- Login
- account, realm list, character create and select
- World
- streaming terrain, buildings, water, sky, weather, music
- Characters
- customisation, gear on the model, mounts, portraits
- Movement
- run, jump, swim, taxi, boats and zeppelins between continents, other players moving and riding
- Zoning
- continents, dungeons, portals
- Death
- release, corpse run, spirit healer
- Combat
- targeting, casts, cooldowns, auras, combat log
- HUD
- action bars, unit frames, cast bar, minimap, tooltips
- Chat
- say, party, guild, raid, whisper, channels, /who, emotes
- Panels
- character, bags, spellbook, talents, quests, map, options
- NPCs
- gossip, quests, vendors, trainers, flight, bank, auctioneer
- Groups
- invites, party frames, loot rolls, master loot, ready checks, pings
- Items
- bags, bank, equipping, stacks
- Objects
- chests, doors, levers, chairs, herbs, ore
- inbox, attachments, sending, returning
- Auction house
- browse, bid, buyout, post
- Social
- trade, duels, friends, guild, charters, tabards, inspect, honor
- PvP
- battleground queue, scoreboard, team blips on the map
- Pets
- taming, pet bar, happiness, stable
- Effects
- particles, ribbon trails, spell visuals, missiles, cinematic flyovers
- Scenery
- ground clutter, footprints, wakes and splashes, the distant horizon
Left to implement
- Battleground matches, which cannot be tested without four players a side.
- The looking for group browser.
Then the content tools: spells, creatures, items, quests and maps authored in Godot.
Install
- Copy the zip's files into your own 1.12.1 client folder, next to its
Datafolder. - Run
WoWGD.exeorWoWGD.x86_64. - Enter your server's realmlist and log in.
If the realm refuses the login, the server needs StrictVersionCheck = 0 in realmd.conf: that check wants a hash of the stock game executable, which WoWGD does not ship.
WotLK profile
Wrath of the Lich King, 3.3.5a (12340) · AzerothCore · In development
Vanilla, Turtle and WotLK share one Godot project and runtime tree. WotLK protocol, data tables, models and terrain are integrated; its profile-specific UI is not yet selected by the runtime, so this profile remains in development.
Done so far
- Login. SRP6 against the authserver, the realm list, the header cipher and the WotLK auth session.
- Characters. The character list, creating and deleting.
- World. Entering a WotLK map, with the player's stats read in the WotLK layout.
- Movement. Walking is sent, the server keeps the position across a relog, and a GM teleport lands.
- Large packets. The world socket takes the longer header AzerothCore uses above 32 KB.
- Chat. Lines go out and come back in the WotLK layout.
- Models. M2 version 264, whose geometry lives in the
.skinfile beside the model. - Terrain. Azeroth and Northrend tiles, with their water.
- Shared screens. The current runtime uses the common UI while the WotLK UI resolver is unfinished.
Next
- The data the HUD and tooltips read: update fields and Spell columns.
- Animations, which version 264 moved into
.animfiles, hundreds per model. - The packets still parsed in the 1.12 layout.
- Connect the WotLK FrameXML scenes and profile overrides through the UI resolver.
Too early to play, so there is nothing to download yet.
The wowdot extension
One C++ GDExtension for all profiles
wowdot opens your MPQ archives, decodes the DBC tables, BLP textures, M2 and WMO models and ADT terrain, and speaks the game's network protocol. GDScript builds the interface, the world and combat on top of it.
WowArchiveWowDBCWowTextureWowLoaderWowStreamerWowSessionWowCoords
Your data, your install
WoWdot ships no Blizzard code, archives or extracted assets.
The client reads your MPQ archives and talks to whatever server you point it at.
Open source
WoWdot is MIT licensed. The source is on GitHub at bearlikelion/WoWGD.
Every release zip carries the LICENSE and NOTICE.md the source ships under.
About
Made by Mark Arneman (bearlikelion)
Hi! I'm Mark and I make games.
I wanted to explore the possibilities of creating my own MMORPG, by diving deeper into the Godot game engine, and to understand how a game like World of Warcraft works under the hood.
This is an educational project, built for its own sake rather than as a product.
Thanks to
- WoWee, whose MIT-licensed auth, packet parsing and file format loaders WoWdot is built on.
- wowdev.wiki, for documenting the client's file formats and protocol so carefully.
- benilla, a from-scratch 1.12.1 client in Rust and Bevy, for showing how far one can go. See the two side by side.