ACEmulator / ACE:
7 authors have pushed 28 commits to master
167 files have changed
- Improved design and performance for SequenceManager
- Added RenderTexture, String and Font to DatLoader.FileTypes
- Added scrolls to loot profiles
- Added caching system for scrolls
- Added stream support to audio export
- Fixed a long-standing network bug with lost/corrupted packets dropping clients
- Fixed a bug causing AcknowledgeSequence packets to increment the LastReceivedPacketSequence, causing the Sequence to break and never recover for that Session
- Fixed a bug causing RequestTransmit packets to be ignored
- Improved server resiliency against malformed packets
- Changed the C2S RequestForRetransmit to per-request packet, instead of sequence
- Added developer network debug commands
- Added a generational feature to ISAAC development of network layer
- Adding pre-processor definition NETDIAG + directives to ACE.Common and ACE.Server to help development by preserving troubleshooting tools, without interference with the optimal solution
- Updated client lib with features useful for third-party apps
- Added outdoor landscape texture blending system (ImgTex, TexMerge, LandSurf)
- Updated LandblockStruct to optionally generated texture UV coordinates for landscape textures. Defaults to off for server environments
- Added animation-only updates to physics engine
- Added instructions for installing with VS Community Edition
- Added more RNG treasure generation for chests
- Improved DatLoader for third-party apps
- Fixed a bug where Unicode string lengths weren’t being read as compressed
- Added optional flag for caller to select whether or not to load the cell.dat.
- Fixed a bug where Animation framecounts were being read as uint instead of int
- Added more enum flags, as per client definitions
- Added more DAT fletypes: EnumMapper, StringTable, DIDMapper, DualDIDMapper
- Fixed an issue with door and chest appraisal with respect to lockpick chances
- keepOpen option added to DatDatabase FileStream – improves DatLoader performance
- Added Property dictionary system – reduces CPU needed for handling properties by about 80%
- Removed ActionQueue.Dequeue architecture, as it was unused. This change reduces the CPU ActionQueues require by half.
- Make StackSize an int instead of ushort
- This fixes the housing prices to match retail
- Changed format of ServerStatus, Total CPU Time to match server runtime
- Streamline attributes and vitals
- Cleanup LoadAllLandblocks status output, and improved comments
- Profiling-based performance improvements:
- Landblock LoadMeshes summary improved
- Added thread safety to LScape.get_landblock()
- Improved WorldObject.ObjectGuid creation
- Added caching subsystem to EnchantmentManager
- With these recent changes, 50+ active players have been tested and running smoothly
- Improved ShadowPart performance
- Fixed a bug with using certain mana pools
- Update EmoteManager and WorldObject Generator with fixes for Anniversary event emotes.
ACViewer is currently a work-in-progress, multipurpose DAT file viewer for Asheron’s Call portal and cell DAT files.
With this tool today, you can view many of the objects contained within those files, including object models, particle effects, textures, images, sound files, and landblocks which include over-world landscape and dungeons.
The above pictures represent only a sample of what you can view with this application right now and there are plans for many more features to come. Eventually moving towards DAT modification and even a full-on WorldBuilder like functionally for new content development!
Click Here to download ACViewer!
Visit the GitHub website to download this tool and explore Dereth in new ways today! You can also click on the Discord link to the left to keep up with our changes to this new app as well as our other projects. Progress is made nearly every day on all things Asheron’s Call emulation.
Stay tuned for future announcements about our first downloadable releases of ACEmulator server software, in addition to the source code repo downloads!
November 2nd, 1999 – November 2nd, 2018…
Nearly two years after shutdown, ACEmulator is still going strong, making progress and improving week to week! Today we mark the 19th anniversary of the portals opening to Dereth with a few minor “events” in our emulated worlds.
Make sure you download the latest version of the world database and update your local copy to experience some of the “classic” moments of past anniversaries, but don’t wait too long as these events are time limited!
ACEmulator / ACE:
6 authors have pushed 45 commits to master
250 files have changed
6 issues closed
- Complex quests such as Aerlinthe and Gaerlan’s Citadel are now fully tested and completed
- Added 2-handed weapons, and cleaving damage system
- Lugian animation / stance improvements
- Added fishing
- Added dispels and pressure plates
- Improved death messages for PK battles
- Added all death messages for players dying to monsters
- Added character titles
- Added complete set of level 8 player spells
- Added server support for all level 8 spells
- Added multistrike weapons
- Improved dual weapons stat combinations from both weapons
- Improved weapon swing animation timings for melee combat
- Added particle emitters and animation to physics system
- Improved performance of physics entity cache system
- Added landblock preloading / permaload system
- DBObj boxing/unboxing performance improvements
- Improved performance of physics landblock loading / async – 30% faster landblock loading
- Improved server shutdown for db consistency
- Improved object decayable system
- Improved object database persistence system
- Improved monster animation sync between server and client
- Improved performance of GfxObjCache
- Massive refactoring to the movement and animation systems
- Adjusted use radius for some objects to match retail
- Refactored EmoteManager to better handle NPCs in busy state
- Added more emotes to support the quest system
- VitalHeartbeat performance optimizations
- Improved player movement when using items (corpses/chests/doors)
- Improved animation timing when using consumables (food/drink)
- Improved performance with weenie precaching
- Improved performance of landblock loading – portal collision -> portal space -> landblock speed improvements
- Fixed a bug with corpses decaying a Corpse.EmptyDecayTime after they were looted
- Fixed a bug where items given to NPCs reappeared back in player inventory
- Fixed a bug where landblocks were loading equipped items as objects owned by the landblock
- Fixed a possible crash if invalid object added to landblock
- Fixed a bug with some monsters getting stuck if they wakeup during idle emote
- Fixed a bug where Olthoi Swarm Eviscerator would spawn a quarter staff in its inventory, and attempt to wield it
- Fixed a bug where some linkable generators were not being classified correctly, and not spawning all of their objects
- Fixed a bug where ‘/adminvision on’ would not take effect immediately
- Fixed a bug where larger monsters were not being detected as within melee range of player
- Fixed a bug where recipe items could be combined with themselves
- Fixed a bug where monsters would continually attack players while still materializing at the lifestone
- Fixed a bug where spell projectiles weren’t triggering the possible critical death messages
- Fixed a bug where player would switch to Peace mode to open containers
- Fixed a bug where player would return to an open container for closing
- Fixed a bug with arbitrary delays for using / rotating towards items (0.5s/1.0s)
- Fixed a bug where NPCs were running Actions before completing rotation towards player
- Fixed various bugs with player switching to Peace mode to perform various actions, instead of using the current stance
- Fixed a bug where level 8 spells had their minimum power set to 350 instead of 400
- Fixed a bug where level 8 spell effects were too small
- Fixed a bug where no death message was displayed for death blows from DamageType.Health (harm, drain, life projectiles)
- Fixed a bug where item enchantments were having their ticks applied twice
- Fixed a bug where mages would cast spells before rotating completely to target
- Fixed a bug where players would windup / fizzle if they didn’t have enough mana
- Fixed a bug where life projectiles were getting the target stats instead of the source stats
- Fixed various bugs with generators spawning too many objects, RNG selecting the wrong items, and missing various RNG selection formulas
- Fixed a bug where resisted spells weren’t alerting monsters
ACEmulator / ACE:
7 authors have pushed 49 commits to master
249 files have changed
- Improved landblock multithreading
- Added more robust logic for animation timing while switching combat stances, for both players and creatures
- Added randomized stack size variances to mob projectiles, based on WieldedTreasure tables
- Usage of DateTime/PhysicsTimer cleaned up across the board
- Improved timing for all monster animation transitions (combat stance, missile launches, spellcasting)
- Improved monster timing / server animation sync
- Added randomized variance to monster melee attack delay (0.5-2s)
- Major refactoring to game code that uses SpellBase and Spell
- Added complete Void Magic system w/ all spells
- Added both server and client formulas for determining spell levels
- Added proper spellcasting wind-up animations based on spell formula scarabs
- Improved the spellcasting wind-up animations to use the exact animation timings
- Improved the damage over time system
- Added Damage Rating and Damage Resistance Rating to all damage formulas (physical and magic combat)
- Added Dirty Fighting, Sneak Attack, and Recklessness skills to combat
- Added weapon speed modifiers
- Added accuracy modifier for missile weapons
- Added missile launcher Elemental damage modifier
- Additional chat channels added (admin, advocate, sentinel, fellow, patron, vassals, allegiance)
- Added proficiency points / character points, and skills increasing through usage
- Added TreasureWielded randomized armor/clothing for monsters
- Implemented skill redistribution functionality
- Added the ability for players to buy houses
- Added the ability to place and save items on floor/wall/ceiling hooks
- Added housing storage chests
- Added house portals
- Added secure trade system for players
- Fixed a bug where monsters selected combat maneuvers that didn’t exist in their motion table
- Fixed a bug where monsters would sometimes walk instead of run, when re-chasing targets
- Fixed a bug where CreateObject network messages would be re-sent when monsters swapped inventory items
- Fixed a bug where monsters would start moving while they were still transitioning from sleep->wakeup
- Fixed a bug where projectiles wouldn’t trigger environment collisions for some objects
- Fixed a bug where player’s trade status was not evaluated properly when entering combat
- Fixed a bug that allowed players to pick up containers on the landscape that were being viewed by other players
- Fixed a bug where picking up an open pack caused it to remain locked and unusable
- Fixed a bug with player options not persisting on login
ACEmulator / ACE:
9 authors have pushed 85 commits to master
278 files have changed
5 Issues closed
- Added thrown weapons for players and monsters
- Added atlatls for players and monsters
- Added monster wielded weapons
- Implemented monster inventory / weapon switching
- Monster projectiles are now dodgeable
- Added pre-MoA skill conversion to wielded item requirements
- Added enchantments that directly modify vitals / secondary attributes
- Added weapon offense bonuses
- Fixed the appraisal fields for ammunition
- Added DamageMod for missile launchers
- Adding max broadcast range for some chat emotes (Act)
- Adding proper object spawning / initial placement system
- Adding monster combat maneuvers / special attacks
- Added support for Volley spells
- Added support for untargeted war spells
- Added max spell range support for ring spells
- Updated magic casting range checks to match retail servers / client
- Added war spell projectiles: rings, walls, and blast spells
- Improved system for players giving items to other players
- Refactored PK checks for magic system
- Added support for linking to portals
- Added dual wield combat
- Added weapon swapping between hands
- Added player stamina usage on melee / missile attack
- Refactored the death system
- Improved player exhaustion system. Both players and monsters now receive attack and defense penalties when stamina = 0
- Added attribute mod to monster damage. Some monsters now deal significantly more damage, so beware!
- Updated shield effective angle to match retail
- Updated Life Magic code to properly utilize the DamageHistory for tracking damage through harm/drain/heals
- Refactored spell resistance to common method for all creatures (players / monsters)
- Spell level now determined by Scarab instead of PowerLevel, as per retail servers and client
- Added support for weapon bonuses: Melee Defense, Mana Conversion, Biting Strike, Crushing Blow, Resistance Cleaving, Elemental Damage modifier for casters, and Slayer bonuses
- Threading improvement for WorldManager
- ActionChain AddDelaySeconds cleanup
- Added ShardDbContext caching system
- Improved /buff Player command with auras, imp, and banes
- Added /fellowbuff command
- EnchantmentRegistry improvements
- Added a system for finding the correct cell when spawning new items
- Migrate Character tables over to new caching / threading model
- Shard Biota & Threading Model Rework
- Added database performance tests
- Fixing PhysicsDesc bitflags – monsters are now recognized by vtank
- Improved network resiliency, recovery from socket exceptions
- Complete rewrite of player visibility / broadcast system
- Refactored generators
- Improved SQL writers w/ additional comments
- Significantly improved GetBiota performance from the shard by using flags to indicate populated collections.
- Also added Parallel.ForEach support for Shard GetPlayerBiotas.
- Adding dungeon position adjustments system. This fixes dungeons where cells have been relocated since PY16 (ie. Burial Temple, North Glenden Prison, and Nuhmudira’s Dungeon)
- Adding physics entity caching system. This provides massive improvements with reduced memory usage, especially over the course of a lifetime for long-running servers.
Shard schema changed to remove foreign key link between Character and Biota.
- This also significantly changes the relationship of Session/Player/Character objects.
- Change from .NET Core 2.0 to .NET Core 2.1. This requires .NET Core 2.1 x64 SDK.
- Major schema refactoring + changes for World and Shard.
- New PY16 format required
- Refactored PhysicsState
- Added Damage History system to track damage and healing sources for corpse looting rights
- Fixed a bug with monster transitions between some landblocks
- Fixed a bug with Admin and Sentinel players in the PK targeting system
- Fixed a bug where portaling could keep the player at original location
- Fixed a bug with player not appearing as pink bubbles on login/portal
- Fixed a bug with monsters running away from players
- Fixed a bug with AmmoType not being enumerated as Flags
- Fixed a bug with generators not respawning items
- Fixed a bug with generators not spawning items in containers
- Fixed a bug with generators spawning the wrong items
- Fixed a bug where players/monsters were granted Melee Defense bonus for missile attacks
- Fixed a bug where player death was removing enchantments on the client only
- Fixed a bug where a player autoattack could occur after death
- Fixed a bug where attributes could be debuffed below 10
- Fixed a bug with casting spells on items wielded by other players and creatures
- Fixed a bug with MaxVital calculation with vitae
ACEmulator / ACE:
7 authors have pushed 69 commits to master
278 files have changed
3 Issues closed
- Updated physics system to calculate accurate water depth
- Fixed various bugs in the physics and animation subsystems
- Fixed a bug with players and monsters sliding along the edge of cliff
- Added dungeon landblock detection system
- Improved monster movement: turning, walking, and running speeds from the MotionTable / animation subsystem
- Improved projectile physics. Projectiles should hit targets much more consistently now
- Added instant updates to the monster health bars
- Updated the monster aggro / tolerance system
- Added TargetManager for server tracking of monster attack targets
- Added UI Window/Saving
- Refactoring and improvements to the magic system code
- Added criticals and bonus damage to War magic, as per the ‘Atonement’ update
- Added mana stone usage system
- Fixed various bugs with monsters crossing between landblock and cell boundaries. Monsters should be able to chase the player through dungeons and indoor areas more consistently
- Added monster movement debug commands
- Fixed a bug with some dungeons having black screens on portal entry
- Fixed Enchantment registry duration and redirection of Aura spells
- Added spell layering to the Enchantment registry
- Added QuestManager saving and loading to the database
- Further integration of the EventManager into EmoteManager
- Enchantments applied to armor affecting armor stats now display correctly
- Wielded weapon debuffs are now taken into consideration
- Added magic item persistence tracking
- Added PortalSending and PortalSummon functionality
- Allow for non-players casting gateways
- Improved vital regeneration formulas / ticking
- Improved healing formulas
- Added player stance and enchantments to vital regeneration (regeneration/rejuvenation/mana renewal)
- Added basic stamina usage on evasion / jumping
- Improved vital regeneration, stamina usage
ACEmulator / ACE:
7 authors have pushed 23 commits to master
156 files changed
1 Issue closed
- Monster movement transitioning to full physics-based movement system
- Physics system integrated with projectiles
- Fixed a bug with scenery collisions in some landblocks
- Added landblock unloading system
- Improved networking code for multiplayer servers
- Added player and NPC-activated switches and pressure plates
- Allegiance system has been added
- Fellowship system improvements
- Updated gems to use the latest spellcasting system
- Added shield combat
- Fixed a bug giving wielded objects to NPCs
- Updated friends list for Entity Framework
- Fixed Undead player characters equipping armor/clothing
- Fixed specialized skill calculations
- Updated appraisal system for all objects
- Added player corpse system
– Players now drop the appropriate items
- Added looting permissions for player and monster corpse
- Added robust configuration system, server settings stored in database
– Added property for XP/Luminance multiplier
– Added vitae penalty settings to database configuration
– Welcome message/MOTD is now configurable from the database.
ACEmulator / ACE:
8 authors have pushed 30 commits to master
131 files changed
3 Issues closed
- Monster AI:
- Added monster movement. Creatures have awakened and become aware of nearby players, and run towards their attack targets
- Added monster melee combat. Creatures will now perform their various melee attacks against characters, with appropriate damage calculated
- Added monster spell casting. Monsters can now utilize their entire arsenal of spells from their spellbook, with appropriate probabilities
- Added monster ranged combat. Monsters will now perform ranged attacks if they have a bow or crossbow equipped
- War magic updates: adjustments to bolt, streak, and arc projectiles to closer match the live servers
- Item enchantment improvements: equipped items cast the appropriate spells on the player
- Added mana conversion: mana usage is calculated according to caster’s Mana Conversion skill
- Added magic defense checks for casting harmful spells
- Fixed routing for in-game messages given by magic and portal spells.
- Added emotes to Emote Manager:
- NPCs now accept items according to their emote lists, and will award players with the appropriate quest items in return
- Implemented On-Use Emotes for NPCs. When interacting with a Quest NPC, they will now respond with actions.
- Added salvaging!
- Added lockpicking for locked doors and chests. Debug commands added to automatically unlock items and bypass skill check
- Added hotspots. Wells and pools revitalize the players, with damaging acid pools
- Added spell traps
- Internal database structure improvements
- SurfaceTexture parser added to DatLoaderAdded
- Added @addallspells command for dev testing – quickly add every spell in the game to your spellbook
ACEmulator / ACE-World-16PY:
1 author has pushed 3 commits to master
2,934 files have changed
- Added monster-wielded weapons and death treasures
ACEmulator / aclogview:
2 authors have pushed 3 commits to master
10 files have changed
- Cleaned up some memory leaks
ACEmulator / ACE:
6 authors have pushed 112 commits to master.
230 files have changed.
32,113 additions and 2,579 deletions.
1 Issues closed.
- Physics engine tested and completed. Future changes to Physics will now be based on getting it to work correctly with all the objects in the world and their interactions, as well as refinements and improvements over time to make the engine work faster and smarter.
- Basic melee and bow/xbow combat added.
- Damage scaling: armor, resistance, per-body part
- Skill checks: weapon attacks, defense, healing, magic skill
- Initial work with Healkits added in.
- EmoteManager system added for world events. Add emotes to objects, initial implementation includes idle animations and local cast.
- Vitae added, but players can’t die yet.
- First pass at tiered, mutated and randomized loot added.
- Crafting framework added and basic crafting operations now supported.
- Monster pain / death sounds, splatter effects
- 1-9 shortcut keys added
- Spellcasting improvements:
- Added enchantment registry for tracking all spells
- Item enchantments: blood drinker, swift killer, heart seeker, defender, impenetrability, banes
- Life magic buffs/debuffs: armor, resistances, vulns
- Creature enchantment buffs/debuffs
- War magic spells: bolts, streaks, arcs
ON DECK/IN DEVELOPMENT:
ACEmulator / ACE-World-16PY:
1 author has pushed 8 commits to master.
76,026 files have changed.
1,390,921 additions and 1,008,962 deletions.
6 Releases published.
- Latest release of world database: 16PY v0.0.13 – 3 days ago.
- Spells added to database. This gives us information on what the spells do.
- Quests added to database. This gives us the flag information for quest timers and repeat limits.
- Events added to the database. This allows for quests on a global scale to function correctly such as Aerlinthe and the Queen quests. It also enables timed and configurable events like Fireworks at the statues or turning on the Thistledown monument.
- Housing Portal destinations added to database. These are the portals for Villas and Mansions.
- Encounter generators (Random monsters not in dungeons) added to the database. 35,000 landblocks gained at least one generator of random encounters!
- Crafting added to database. This adds the ability for over 20k different interactions between objects, such as making atlan weapons, or focus stones, fletching, cooking and much more!
ACEmulator / aclogview:
No changes to the project occurred during this monthly report cycle.