Netherwing PTE Realm Update
Ahoy Atlantiss Community!
We have announced our PTR project idea starting with Netherwing TBC realm a few months ago and have been working strenuously on making it real since then.
A lot of you have probably been waiting for some information about the progress and the state the realm is in and we hope this news will satisfy everyone eagerly awaiting server’s launch.
The base TBC core we started with was extremely outdated (as most of them are) and did not reach the standards everybody expects from a private server core in 2016. Since then, we have modernized, updated and rewritten most of its functions and features, allowing us to implement essential mechanics, a task which was impossible to accomplish prior to the changes. We have also been unifying the core to make script transitions between expansions much easier.
Maps and movement
Vmaps and Line of Sight calculations were updated and corrected. We have disabled LoS obstruction for certain objects which did not block it on retail like trees and outhouses:
We also implemented dynamic line of sight for certain objects, as you can see in an example below:
Another issue we had was liquid detection. In certain areas, liquid’s type was not detected properly, causing all kinds of problems like fatigue or combat issues underwater. This has already been fixed – lava in Shadowmoon Valley is correctly detected as lava, Naxxramas’ slime is correctly detected as slime, and so on.
One of the most important things for us, was a proper implementation of pathfinding. With our new move maps and pathfinding tweaks, issues like not finding a proper path, mobs moving through walls and obstacles, charging uphill and underwater have been resolved.
NPCs and their formations
A lot of changes have been made to creature AI. We have ported and greatly improved SmartAI to increase the number of things we can do with it. For example, caster mobs should no longer get stuck when their target moves out of line of sight.
Additionally, they can now put spells in a queue, ensuring that all of them are properly executed.
Apart from that, interrupting creature’s casting with abilities such as Pummel or Counterspell will effectively prohibit creatures to cast spells from that school of magic for the duration of the interrupt.
Author: Peter Lee (peterconcept)
When it comes to generic combat mechanics, we have reworked the threat system to ensure that mobs won’t suddenly drop out of combat. We have implemented mob kiting (including with non-damaging spells such as „Faerie Fire”) and increased the combat radius significantly. We have fixed several „leaks” which allowed both creatures and players to attack targets they were not supposed to, some combat visual issues as well as added missing evade system.
Furthermore, creatures will now use health multipliers instead of using invalid plain values in the database. We have already ported all multipliers, although some of them will require correcting or adjusting to pre-nerf values.
One of our most proud achievements, was an implementation of proper core-calculated mob’s physical damage. We are able to modify them to almost fully correct retail values for all creatures, without having to change manually every single one of them in the database. We still need to do more research and tests to adjust some multipliers accordingly, but we are looking optimistically to seeing this feature in action.
To ensure that leveling is a more pleasent experience, we have increased experience received for killing elite mobs and bosses in dungeons. Group bonus should now be properly displayed in chat when the specific filter is selected.
We have successfully ported our visibility system from Acore4 (Cataclysm), which not only mirrors retail’s, but also allows us to go further - decrease and increase the view distance as we wish without greatly, negatively affecting performance.
Quests & Events
Despite the fact that we always were trying to keep our quest scripts on high level, we've never stopped chasing the idea of Gōngfu in terms of quest scripting. Nevertheless, we do realise that no matter how many quests will work splendidly, the broken or not scripted ones will always ruin the experience and fun for everyone, therefore, we will continue to try to make such situations appear least often.
Similar feelings accompany us whilst we're working on World Events, every single one of these events is unique and it brings players lost of fun and satisfaction. Events are also an opportunity to try out something new and detach from already known game content. We want to give our community such possibilities. That is why, even though scripting such events may be hard we still want to develop this aspect of the game. We hope to make journey through Outland an immersive experience and a possibility to see and cherish all the little things that make WoW the game we love.
Pets, spells and classes
The spell system required some work as well. Most notably, we have corrected spell range checking to eliminate some issues with spells unable to be cast due to wrongly being detected as „too close” or „too far” from the target.
We were not able to find all class issues due to our limited knowledge and having only a small group of internal testers, but we managed to fix a few bugs and mechanics such as Warrior’s Charge not finding a proper path to the target or Druid’s shapeshift form not being saved on logout. We hope that open tests will help us find more broken class spells and mechanics.
Raids & Dungeons
Apart from working on the game engine, we have been busy with rewriting, fixing and polishing instances. Most of the classic (1-60) 5-mans are done and TBC dungeons are under development right now.
With a bit of luck, you might be able to witness the Ashbringer event in Scarlet Monastery!
- Ported Vmaps
- Generated gameobject models
- Ported proper vmap core usage
- Implemented using gameobject models (dynamic vmaps)
- Implemented proper pre-wotlk liquid handling with area/map overriding and spells
- Disabled Line of Sight for M2 objects
- Ported MMaps
- Ported some pathfinding tweaks
- Added proper Charge handling
- Fully rewritten WaypointMovementGenerator with proper pausing, flags and moving by path instead of single waypoints for flying creatures (can be extended to others, but requires UncompressedPath splineflag which was added in WOTLK)
- Fully rewritten RandomMovementGenerator to be a lot more optimized and with proper path generating using mmaps and collision
- Implemented dynamic creature respawn system
- Added extra flag for dungeon boss distinguishing
- Fixed creature equips and implemented multiple equips for same creature entry
- Implemented setting addon values and scriptname's to specified creatures in `creature` table
- Fixed multiple issues with aggroing and fighting with objects invalid for creature's attack
- Ported combat radius setting from Acore4
- Ported creature kiting from Acore4
- Fully rewritten creature formation system to be much easier to use, more logical and with dynamic formations support
NPC & Creatures:
- Added/fixed lots of waypoints, scripts, formations, missing npcs, missing visual effects, invalid reputation, equipments, etc...
- Lots of different changes and improvements
- Implemented handling custom view distance
- Implemented view distance handling for large creatures
- Fixed lots of issues with visibility not being updated properly
- Fully ported delayed visibility system from Acore4
- Missing In Action
- Gyromast's Revenge
- The Sleeper Has Awakened
- Guardians of the Altar
- Kyle's Gone Missing!
- Disrupt Their Reinforcements
- Mission: Gateways Murketh and Shaadraz
- Return to Thrallmar
- Mission: The Abyssal Shelf
- Return to the Abyssal Shelf
- The Assassin
- A Strange Weapon
- The Warchief's Mandate
- A Spirit Guide
- The Mag'har
- Envoy to the Mag'har
- Bonechewer Blood
- Apothecary Zelana
- Spinebreaker Post
- Boiling Blood
- Apothecary Antonivich
- A Burden of Souls
- The Demoniac Scryer
- Report to Nazgrel
- The Foot of the Citadel
- Forge Camp: Mageddon
- Cannons of Rage
- Doorway to the Abyss
- The Agony and the Darkness
- Cruel's Intentions
- Decipher the Tome
- The Battle Horn
- Bloody Vengeance
- Honor the Fallen
- Arelion's Journal
- Arelion's Secret
- The Mistress Revealed
- Anzu Summoning Event
- Stairs of Destiny Event
- Ashbringer Event
- Multiple quest events mentioned in quests above
- Fixed Mana Tap spell
- Fixed Improved Shadowfiend T4 2p bonus
- Clever Traps talent will now properly increase Explosive/Immolation trap damage
- Shapeshift form will now be saved after logout
- Greater Blessing of Sanctuary (Rank I) will now properly require Blessing of Sanctuary (Rank 4) instead of Rank 5
- Fixed pet avoidance
- Pet "Attack" command will now properly work on targets not in line of sight
- Converted ALL EAI to SAI
- Added some new functions
- Ported many missing functions from Acore4
- Fixed some issues reported by testers
- Fixed Environmental Damage spell effect
- Increased spell range, slightly exceeding maximum (blizzlike)
- Corrected an issue where spells with SPELL_ATTR_EX_NO_THREAT and without SPELL_ATTR_EX3_NO_INITIAL_AGGRO would incorrectly cause initial aggro
- Trigger Missile spells with TARGET_UNIT_AREA_ENEMY_DST will now be considered as a DEST TARGET spell
- Fixed < 20 spell level penalty
- The Stockade
- Razorfen Kraul
- Razorfen Downs
- Blackfathon Deeps
- Wailing Caverns,
- Shadowfang Keep,
- Scarlet Monastery (with Ashbringer Event)
Fully rewritten dungeons:
- Auchenai Crypts
- Sethekk Halls
- Hellfire Ramparts
- Blood Furnace
Partially rewritten dungeons (bosses only):
- Mana Tombs
- Ported SmartAI from Acore4
- Implemented Spell Queue handling
- Added new cast flags for proper AI handling
- Base condition port from Acore4 (supports only gossips for now)
- Ported SpellScripts from Acore4
- Implemented proper evade system
- Fixed some visual issues with combat not ending properly
- Questgivers will not send combat unit_flags in update packet to prevent mouseover icon from disappearing
- Fixed some issues with dynamic flags
- Implemented creature spell school locking
- Implemented correct melee damage multipliers based on creature's health and instance type
- Implemented health and mana mods and creature_classlevelstats
- Ported speed_walk and speed_run values
- Dropped DeathState column
- Mobs are now kitable with negative spells that do not do damage (e.g. Faerie Fire)
- Implemented saving respawn time to DB
- Ported and implemented proper Position struct and functions from Acore4
- Added missing ToCreature(), ToTemporarySummon() etc. functions
- Implemented ACTIVE_MASK_SELF_ONLY which enables objects to remain active without updating the whole grid
- Guardian summons will now use `creature_template` info for a few fields like level and faction instead of inheriting all of them from the summoner
- Finishing moves will no longer remove combo points when the spell didn't hit the target
- Bonus experience receive from being in a group will now be correctly displayed if experience filter is selected in chat
- Elite mobs killed in dungeons will now grant much more experience as intended
- Fixed gossip menus wrongly being cleared when using a creature script (mainly involves action_menu_id cases)
- Fixed autocomplete timed quests not being failed after the time limit is reached
- Fixed packet sending radius
- Fixed DelayEvents function
- Ported Task Scheduler
- Ported Gossip System
- Save limited items restock timer to DB
- Fixed issues with FindNearestGameobject
- Added proper implementation of GameObject spell casting
- Fixed opening chests with keys that disappear afterwards
- Implemented saving respawn time to DB
- Ported Dodge and Parry calculations
- Greatly increased chance to receive defense/weapon skill
- Bandages will no longer be consumed when used on a recently bandaged target
- Fixed not being able to walk on water as a ghost after changing the map
- Fixed player's orientation and vertical position after going in/out of arenas and dungeons
- Fixed multiple wrong graveyards
- Added missing rest bonus to several inns
- Fixed "Usable Items" filter
- Fixed adding items with a random property
Author: Peter Lee (peterconcept)
We will be looking for closed beta testers very soon, stay tuned for a news with more details and information.