Atavism 2.5
Atavism Unity Beta 2.5 Changelogs
Release 2.5 is a large update with a couple important key features and a lot of database tidy up. There has been a bit more of an API tidy up preparing the way for 2.6 and beyond.
You should not need to wipe any existing characters, but as with all updates, there are a couple changes to the world_content and admin databases which can be updated by running the SQL update file (explained below).
Major Changes
NavMesh System
- The first stage of the NavMesh system is now ready for use. Developers can generate a Navigation Mesh (NavMesh) of their worlds and export the data to XML files. The files can be placed on the server and the mobs will be forced to walk within the NavMesh areas.
- As this is the first stage there is no dynamic collision avoidance, only the static generated mesh. The system is also not fully optimized and can take a while to generate on the client. Further stages (and improvements) will be released with the later releases.
Retroactive Updating (Backdating)
- The first stage of the backdating system is in place. A PHP CMS system has been included in the server files that allow developers to retroactively change all items players have (both in their bags, and equipped). The PHP CMS system will need a bit of setup with a tutorial to be added this week.
- The server now recalculates a character’s stats upon login ensuring that they have the correct value based on their race/class, level, skills and equipment. This means any of those values changed in the database will be applied on next login.
- The only other part left at this stage is the retroactive setting of skills and abilities. This will be included in a 2.5.1 minor update.
Building System Improvements
- The Building/Claim system has had major improvements turning it into a full featured resource and build system (when used in conjunction with the resource gathering system).
- A Build Object Template plugin has been added to the Atavism Editor allowing the setup of building objects specifying the items needed to build and/or upgrade a building object. Developers can also specify which skill is required (and can be increased) along with how long construction will take.
- Building objects can now be attacked once they are fully upgraded.
- Permissions can be set on a claim allowing others to build on your claim.
- Claims can now be bought and sold.
- A guide on using the system can be found under Customising Your Game: Claim System & Object Building
Mounts
- Players can now use mounts to help them travel the world.
- Developers can create a mount effect in the Atavism Editor and specify the GameObject (Prefab) to be displayed along with the speed increase it will give the player.
- Basic dismount region system is available for placing regions in Unity that will send a dismount message when entered. This is to be replaced with a proper server side zone system in a later release.
- A player can use the mount ability again to dismount as well. A proper UI for removing effects will be added in 2.6.
Minor Changes / Improvements
General
- Mob stats can now be set individually be set per mob template. Mobs will use the default stat values unless you tell it to override a specific stat in the Atavism Editor.
- Selling items will now correctly divide the purchaseCost value by the selling factor (incorrect rounding was applied before).
- MouseOverUI check for ClickToMoveScript added along with layer mask.
- Added support for saving and loading UTF-8 strings to the database.
- A casting bar has been added to show casting progress of abilities and building tasks.
- Added an AnnouncementUI to display announcement messages such as skill increases.
- Added the ability to set the cursor for Resource Nodes and crafting stations, and the highlight color for just Resource Nodes.
- Harvesting resources will now take the time specified in the ‘Harvest Time Req’ field. If a player moves before the harvesting is complete it will be canceled.
- Crafting grids can now have multiple of an item placed in a slot (but must be from the same item).
Combat Changes
- Effects tables have been merged together into just the ‘effects’ table. This has required changes to the Atavism Editor and to the CombatDatabase.java file.
- TeachAbility Effects have been added which will teach a player the specified ability.
- Stun Effects added which will prevent a player/mob from moving or using abilities while stunned.
- Fixed interrupts resulting in abilities now being “Interrupted” when a player moves while casting.
- A new combatinfo state property has been added which can be set to evade, immune, or incapacitated (or blank). Mobs will now evade attacks when they have been pulled too far from their standing location. While evading the mob will not be able to be hit by abilities.
Atavism Unity API Improvements
- Renamed AgisInventoryClient.checkCraftingComponents to checkComponents/checkSpecificComponents to better reflect what the functions do.
- Removed the _itemTemplate and _maxNumberCreated variables from AgisInventoryClient.CheckComponentsMessage
- Removed the AOVector.minus(AOVector other) function, replaced it with a static sub(AOVector dest, AOVector cur) function.
- Removed the AOVector.plus function, it was redundant. Use AOVector.add(AOvector p1, AOVector p2) instead.
- Removed the AOVector.times(float factor) function, replaced it with a static multiply(AOVector src, float factor) function.
Fixes
- Fixed an issue where characters would lose the stat bonuses of equipped items when they leveled up.
- Skill progression is now instantly saved to the database when altered. Before it was possible for a player to lose some progress when logging out as it wasn’t saved.
- Fixed the string manipulation code for loading Equipment Display prefabs which was causing it to not work for users from the Unity store.
- Mobs are no longer saved to the objstore. This was filling up database space that wasn’t needed.
- The Keycode check for pressing enter in the chatbox has been altered so it works on all platforms. It previously wasn’t working on Mac computers.
- The walk toggle button will now work when the player is stationary.
- Updated the datatypes for saving spawns so they are now saved as floats allowing the mob position to be saved more accurately.
- UMA characters will now keep their speed alterations (such as boosts or slowdowns) when changing instances or logging out and back in.
2.5 Update Instructions
Server
Download the updated server file and extract the files.
The following files need to be copied into your existing server directory:
- config/common/aomessages.py
- config/common/combat-ads.txt
- config/common/proxy.py
- config/world/builder-ads.txt
- config/world/combat-ads.txt
- config/world/extensions_proxy.py
- config/world/mobserver-ads.txt
- config/world/proxy-ads.txt
- config/world/worldmessages.py
- config/world/worldmarshallers.txt
- dist/lib/agis.jar
- dist/lib/atavism.jar
- dist/lib/currency.jar
- dist/lib/injected.jar
- sql/world_content.sql
- sql/updates/update_commands2_5.sql
Source only the update_commands2_5.sql file. Please note that if you have renamed your core database from the default (atavism) you will need to alter the file to have the name of your new table. This is near the bottom of the file.
Client
Download the AtavismUnity 2.5 Update.
Delete the AtavismUnity folder in your project assets.
Import in the following files:
- AtavismObjects/Other/DismountRegion.prefab
- AtavismObjects/Scripts/Abilities.cs
- AtavismObjects/Scripts/Actions.cs
- AtavismObjects/Scripts/Atavism3rdPersonInput.cs
- AtavismObjects/Scripts/AtavismBuildObjectTemplate.cs
- AtavismObjects/Scripts/AtavismCursor.cs
- AtavismObjects/Scripts/AtavismMobAppearance.cs
- AtavismObjects/Scripts/Crafting.cs
- AtavismObjects/Scripts/CraftingStation.cs
- AtavismObjects/Scripts/Inventory.cs
- AtavismObjects/Scripts/MobController3D.cs
- AtavismObjects/Scripts/ResourceNode.cs
- AtavismObjects/Scripts/StandardCommands.cs
- AtavismObjects/Scripts/WorldBuilder.cs
- AtavismObjects/Scripts/CoordinatedEffects/CoordAnimation.cs
- AtavismObjects/Scripts/GameObject Components/AtavismMount.cs
- AtavismObjects/Scripts/GameObject Components/ClaimObject.cs – DELETE THE EXISTING ONE IN YOUR PROJECT
- AtavismObjects/Scripts/GameObject Components/ClaimObjectChild.cs
- AtavismObjects/Scripts/GameObject Components/DismountRegion.cs
- AtavismObjects/Scripts/GameObject Components/RecastNavMeshQuery.cs – DELETE THE EXISTING ONE IN YOUR PROJECT
- AtavismObjects/Scripts/UI Components/AnnouncementUI.cs
- AtavismObjects/Scripts/UI Components/CastingBar.cs
- AtavismObjects/Scripts/UI Components/ChatController.cs
- AtavismObjects/Scripts/UI Components/CraftingGrid.cs
- AtavismObjects/Scripts/UI Components/Loot.cs
- AtavismObjects/Scripts/UI Components/ResourceLoot.cs
- AtavismObjects/Scripts/UI Components/SkillsUI.cs
- AtavismObjects/Scripts/UI Components/WorldBuilderUI.cs
The whole AtavismUnity folder and files.
- Resources/InteractiveObjects/ExampleResourceNodeRock.cs
- Resources/Content/BuildObjects (whole folder)
- Resources/Horse.prefab
- Scripts/ClickToMoveController.cs
- StandardAssets/AtavismCore/AtavismCore.dll