It’s DevOps bringing WoW to us so we can rename NPCs in our name so we can feel good about ourselves.
Discord: https://discord.gg/yTYH6rNePs
Upload Academy Community: https://community.upload.academy/
Miro board: https://miro.com/app/board/uXjVNe_oRCQ=/?share_link_id=869478264198
World of Solocraft: https://github.com/mrcrilly/WorldOfSolocraft
Hey you got an install tutorial
omg please tell me wow retail does not run on MySQL. But if that is the case, has Blizzard ever considered moving to a database instead?
It was fun playing around a WoW server when I ran my own in the late 2000s. Figuring out the database and adding and changing npcs and items was really cool.
it just works mkay?
Main question is does the content works or is all bugged
So we have an Auth Server separately, to which we send our username/password.
In case of success, the Auth server returns a list of World Servers.
But how does the World Server know, what account connects? (I guess auth server also returns an auth token, that is later checked by the world server?)
This means authentication happens 2 times (on the world server, checking auth token + on the auth server, checking username/pass), right?
Then, back to the Auth Server, why do we have it in the first place if World Servers do authentication anyways?
Haven't touched AzerothCore or TrinityCore in a bit, but I remember how excited I was the first time I copied and converted the alliance zeppelin in Icecrown (The Skybreaker?) from a transport object to a static one and populated it with custom NPCs above the south island in Tanaris as a server hub. Always wanted to make my own transport system though, but never got around to figuring out the waypoint system you have to pair with it.
Anywho, this series will probably reel me back in, and just as well get way more people involved in the server emulator codebases 🙂
Damn this is so smart. I will never touch the mass disenchant button again, but dust some if I really need something. Also, some simple and bad cards will never get nerfed and should be safe, never to get surplus dust from.
Just amazing! Keep it going!
I can see this video being interesting to someone new to hosting servers so great work!
But as a senior backend web dev I somehow expected more out of this title and thumbnail. The mental picture you drew infrastructure wise is almost identical to how a private server functioned in 2006, which is disappointing. Expected something more modern and about a more interesting problem like scaling.
It also does not help that I have set up a private server for another MMO 17 years ago and edited some data in the db to give myself stats and items.
Maybe the upcoming videos I will find more interesting.
well if you want to know more I a dev for the GetMangos Project.
Ooh, this sounds like a fascinating series! Looking forward to more!
I will make my own server lol
This is so interesting…
For people who can't make their experiment accessible to Internet regardless the correct configuration, sometimes ISP providers block any tcp port request on their level so your router (modem) doesn't event receive the request. It is better to consult your ISP to have open port subscription or change if they dont offer it.
Alternative to this is to create a VPN but for performance reasons I wouldn't recommend it. Last resort is to host your experiment on rental servers where you don't have to deal with network setup but yeah it costs some.
Thank you
Interesting stuff. I'm from the North East UK, and your accent sounds somewhere near – but then you say "DaDa-base" and not the British pronunciation. Did you work in NA too long? 😀
Is there only one world server for a realm? Or is it multiple? I imagine there's at least 2, considering the loading screen that is needed between Kalimdor and the Eastern Kingdoms? I've always been fascinated by how efficiently WoW was engineered.
i never thought to ask, how does wow work, like in detail what makes all that happen, i knew the simple answer would be it's full of code, but what does that mean and how does all the coding work and blend together to give us all that, thanks for the awesome video
Not the hero we expected, but the hero we need to master CD
8 million lines of C++… Fuck me
how do u notice that someone works in IT? he will tell u in the comments even no one asked
This series rules. This series rules. This series rules.
I dived into AzerothCore a couple years back when I realized I really needed a better handle on backend development. It was enormously helpful, and learning about the data structure of the game was also super enlightening. The composability of it all is baffling, in the neatest way.
Wow. This was unbelievable. Sub'd after about 4 mins. I've always wanted to know how these games work, and I now have an Eagle-eye outline of it, and it makes sense. Channels like this are the best part of utoob to me.
Good video.
As a DevOps engineer and former WoW player and enthusiast I found this content and your SoloCraft project super exciting and can't wait to try it out myself. It's so cool to see the architecture in such a great details after all these years of playing both retail and private servers.
well this blew up
I’m actually amazed how simple it is.
I am glad this channel exists.
Dang Michael, you're blowing up!
DBC Files are there for Pre-Load the Database Information to the Client. It also stores the sounds and references to styles of armore etc.
Map Files are the Map at it selfe.
MMaps (Meta Map) Files are for the Meta informations of the terain like tree positions etc.
VMaps (Visiual Map) Files are the Map Information for the visual Information of the terain like tree styles etc.
Maps, MMaps and VMaps are needed so NPCs, Players and Object don't feel through the ground. It also says if a Player/NPC can walk through a wall or not.
This is the simplified explanation of the files.
Correction here:
Auth Server is a server that runs apart from the world server. This requires an SQL Database or an SQL Database-Tablle too. In Mangos, Trinity and ArcEmu Cores (AzerothCore is based on Trinity), It's a simple authetification, where the passwords are stored as MD5 string. It only checks if username is existing and if the password ist matching to the username.
OMG, It's like I'm 14 again 😀 When I started my own wow server with MangoDB and was creating my own weapons and quests and fixing bugs that private servers had. What a time.
I became a DBA thanks to doing stuff for private servers when I was 15. Thanks WoW 🎉
Nice, as Rey Arias, this is very interesting to me!
(/s)
Its funny how as a hacker i already know all of that info without anyone explaining it to me.
Does the current iteration of WoW still use SQL DBs or have they migrated to NoSQL?
It's mind-blowing that it ran off SQL DBs (of course, NoSQL wasn't really an option at the time).
The level of hardware they would need. It also explains the maintenance required every Tuesday.
I felt that South Park EP about WoW at 12:10 💯felt the poop and neckbeards.
Thanks for making this video! I created and hosted a Burning Crusade private WoW server many years ago when I was 13. I would charge people for armor sets and weapons with overpowered stats, add spells from other classes, etc. Made over $5,000.
My parents made me shut it down when we received a cease and desist letter from Blizzard. Lovely memories
Lol this dude must really love wow 😂
For those files;
dbc files are clientside databases that contain info about e.g. achievements / models / animations / spells / items / the environment / the world / NPC's / etc. Their structure basically just looks like a giant map data structure. These dbc files actually live inside of the .mpq files (Mo'PaQ, Mike O'Brien Pack, the file format that replaced WAR files from Warcraft / Warcraft II). SimulationCraft has a great writeup on extracting game client data from these .mpq files.
iirc in Vanilla terrain info is represented by WDT files that contain a bunch of info for a 64×64 tileset, and a world model object reference. There's even more info in tile files (ADT) which contain other things like terrain heightmaps, terrain holemaps, liquid height and types, and references to various things that are placed on the terrain.
These ADT files reference M2 and WMO files. Things like trees and brushes and whatnot exist in M2 files, and big buildings like Goldshire exist in WMO files.
maps files are a 2D view of the terrain and they store a few things;
– height map – z-index of the terrain at each location. This is how your character moves vertically.
– area data – for example when you move from one zone to another and you receive some experience for exploration
– liquid height & type – dictates if you're swimming or not, as well as things like fatigue / damage
– some other stuff i can't remember – hole maps possibly to indicate stuff like mines underground / large empty spaces?
vmaps (vertex maps) are a 3d view of the terrain – they store terrain / model bounding boxes for collision detection and are used to calculate LoS using BIH / Ray-tracing.
– vmtree files contain BIH calcs for a WDT level
– vmtile files contain BIH calcs for model info (like placement) for an ADT level
– vmo files contain BIH calcs and geometry of a single model
mmaps (movement maps) are a 3d view of the terrain used for path finding / navigation
Dude the insane thing is how this vid is gonna hit a million views, thats a lot of people interested in very technical game programming.
HAHA whats with these "im a software engineer, this video is so exciting" comments. does this make you feel better to have fake viewers? pathetic
This video was amazing! as a software engineer and architect, and Wow player, I really enjoyed it! I hope you see more videos around the same topic 😀
I feel like this video should be shown in game development courses at college/university. Great introduction to the intricacies of the network structure, server setup, DBs, etc. Well done!
Great stuff. Subscribed.
This is great! I messed around with some of the other wow solo projects (lights hope etc) a few years ago and thought it was a great learning tool for SQL. I've worked in IT for nearly 20 years but had minimal database exposure. I managed to tweak things like the AQ quest line to complete the war effort quests – breaking things and learning a lot along the way. That was a while ago now so looking forward to following this along.
I have one of the original server blades that WoW ran on. They auctioned them off years ago for St Jude's.