I believe you are experiencing what is called âdevelopment changesâ. This happens when a developer contributes changes to a codebase, in which the result is something different. At first, there may not be any clear issues and in your smaller dev/test set of changes - it worked on your local and in the dev environments.
You see, from here we can yeet the code into the open public beta test (we will call this, âProductionâ) environments to where real players can interact with the new code changes youâve just made.
At this point, youâre like âWoah man, I just wanted to know why Ashenvale is the way it is.â Weâll get to thatâŚ
You see, there is a client side launcher (weâll call this Battle.net launcher) that when running - initiates a connection with the frontend for providing you a UI to interact with the games youâd like to Play (weâll call this the Play button). When you hit âPlayâ you are TCP handshake connected to the server and you are in a âstatefulâ connection in which all of your traffic is in-sync with the server. You press left, it goes left - magic.
When new code is yeeted into âProductionâ your client can update (if needed) and picks up the new changes - then connects to the server again.
Now you need to understand the problems.
-Dynamic Layers
-Ashenvale Event
-Game Development
With dynamic layers, as population increases a layer is added and in theory - the opposite is also true. The logic here was not bound to locking a layer during an event initiating. You could start an event on Layer X, and then Layer Y starting an event - would conflict. This is important, because when people get off work around the world and want to relax at the end of their days and enjoy some games - they login and a layer is scaled. Makes sense. This is why there was conflicting layering during events, during scale especially.
Ashenvale event would start the default to 0% on a fresh layer. New layer = new progress. Now, itâs pooled. More layers = more overall % and this is why you would sometimes see the % drop, as new layers are added. But this still presents a problem because if itâs a global value required for % to start event and youâre constantly adding layers, youâd need to default it to an in-flight value - as to not set to 0% and subtract % from other layers (illusion). Not to mention the % goes up for needing to start, which is probably why they reduced it to fix layering (and theoretically lock layers during events), then gradually reduced the % as they figured out how to pin the event % for a newly spun up layer to a value not 0% as the previous default.
-I believe- they have finally introduced an event-based lock to the layer that will cause it to not accept/remove any players during an event - but this is just a hunch, since they mentioned they needed to fix dynamic layering during events and players not being able to see their friends during events.
This brings us to the final point which is Game Development. Game development is hard, because aside from local tests, closed alpha tests with models of changes, then >any< kind of limited beta for testing changes in a game like world of warcraft, with so many zones, items, mobs, etc. is quite the challenge. You canât design a function test, unit test, or even integration test for absolutely everything needed to do a âGame systems checkâ before releasing. So granted, a lot of this is just throwing code at wall, seeing what sticks, and reverting anything that breaks other stuff - as they navigate the spaghetti merging of OG WoW code with modern implementations of WoW and abilities as we know them, plus more!
Here are a few solutions you could take to answer your own question:
1.) Become a Game Developer so you can contribute meaningfully.
2.) Multiple $15 x player (their sub revenue for this game alone) and write a strongly worded letter about how our dollars should be spent differently.
3.) Continue to ask questions on a forum in which you are acknowledging in your heading âWhat happened?â, leading to two points of âThese things changedâ, in which it leads me to write this big long useless comment basically saying âYep, this is the way the world works mate.â
Sincerely,
A brainless monkey engineer who reads blue posts and understands minimal software deployment architectures for massive companies, and hopes to share some feedback.