Atavism Unity Beta 2.6 Changelogs
Release 2.6 is the biggest update to Atavism to date with numerous new major features, a couple minor features and key server code re-writes to make improving the system much faster.
Due to the large underlying structure changes, you will need to delete all existing characters by installing the atavism.sql script again to your database. You do not need to wipe your world_content or admin databases, but instead can run the update_commands2_6 sql update file (explained below).
Major New Features
UI Re-write: UGUI implementation
- The whole in-game UI has been recreated using Unity’s UGUI system.
- Items and Abilities now use a drag system to move them around the UI. Both can be dragged into and out of the Action Bar.
- The chat window has had Combat Log and Events log views added. This allows different messages to be filtered through to the different views.
- Many UI improvements have been made as a result, too numerous to list here.
- Players can invite others to join in their adventures by using the grouping feature. It allows the sharing of exp earned from kills and Quest objectives. You can bring up the options menu for a player by right clicking on their Target Profile and selecting Invite from the menu or by typing /invite <playername>.
- Group chat is supported allowing group members to talk to each other no matter how far away they are. Type /g at the start of your chat message to change to group chat.
- Group dungeons are supported! If an Instance is set to Dungeon in the Instances Plugin it will create a new copy of the instance for every different group or non grouped member that enters it.
- Players can now trade non-bound items and currency to one-another using the Trade UI.
- You can start a Trade Session by right clicking on the Target Portrait for another player and choosing Trade from the menu, or by typing /trade when you have them targeted.
- The new Interactive Objects system will allow developers to place objects in their world that players can interact with.
- Current interaction options include Instance Teleporting, Starting a Quest, Completing a Quest Objective, Applying a Combat Effect, and changing appearance (e.g opening/closing a door).
- The new Regions system will allow developers to place collision volumes in their world that can perform actions on players as they enter it.
- Current actions that can be applied include Water/swimming detection, Instance Teleporting, Starting a Quest, Completing a Quest Objective, Applying a Combat Effect, and Dismounting players.
- Multiple “Realms” or “Servers” can now be run for your game allowing players to select which one they want to connect to.
- The characters players make will be stored (stuck) on the “Realm” or “Server” they are created on.
- Note: A guide on how to implement this is still to be developed.
Minor New Features
- Patrol paths can now be created for mobs to follow with predefined pauses or “linger time” at specified points. Mobs will deviate from the path when attacked or aggro’ing a target.
- Ammo support has been added. You can create Ammo Items in the Items plugin, set UseAmmo effect for weapons, and set ammo used for abilities.
Improvements to existing features
- Stat-links have been added allowing one stat to change the amount of another stat. Hard coded health and mana stats have been removed allowing players to specify what stats they use to keep their players alive, and what other stats can influence their values.
- Vitality stats now have start and release percent settings to set what percent they are set to on those two events.
- Numerous new combat effects added including Teleport, Revive and Morph.
- Pulse coordinated effects now work for pulsing effects (such as a heal over time).
Inventory, Crafting, Quests
- Sub-currency support is added allowing developers to have a linked up currency where a certain amount of 1 currency can auto convert into another.
- Fully-fledged requirement system has been added for items and quests. This includes specifying which races and classes can use the item or start the quest along with level or skill level requirements.
- Creation time and multiple result items have been added to crafting.
- Quests can now be started from Items, Interactive Objects and Regions.
- Task Objectives added to Quests. Quests can now ask a player to complete a task. Completing a task can be done by the player interacting with a certain object, region, or having a task combat effect run.
- Crafting recipes with ‘Must Match Layout’ un-checked will now work.
- New search system added to find your data easier.
- New Game Settings plugin added for setting properties such as bag size, whether mobs give exp etc.
- New Instance Objects Plugin which allows saving of Interactive Objects, Regions and Graveyards to your databases.
- Death respawns locations can now be added allowing more than one location for players to respawn to. The closest location will automatically be selected (to be improved later with a region system).
- NavMesh generated has changed with a new per-tile generation system. After generating the base grid you need to click each tile and click Generate NavMesh.
- Flying mounts are now properly supported. A mount can be set as a flying mount when creating or editing a Mount Effect.
Unity API Changes
- Removed all animation code and variables from MobController3D, created two new child classes, one for Mecanim Animation system and the other for Legacy Animation system. Each player or mob prefab should now use one of these child classes instead.
- EquipmentDisplay now has a new property to determine what kind of display it is (such as attached object, activated model, or texture swap).
- AtavismMobAppearance re-written to use one PropertyHandler function rather than one per displayID. Now handles the three different equipment display types listed above.
- AttachmentSockets enum renamed to AttachmentSocket.
- Added a new WorldBuilderInterface class that handles the placing of objects in the world. This will allow developers to modify how their players will place stuff in the world without messing up the UI or the message handling classes.
- Global Water height has been removed and is now set per instance in the Instances plugin.
AGIS API Changes
- Renamed the MobDatabase.loadSpawnData() functions so they both have names matching their use: loadInstanceSpawnData() and loadSpecificSpawnData(). They now both call the same function that load in and creates the SpawnData instance (to avoid code duplication).
- Changed the functionality of Point.distanceTo() to get the distance using all three axes, not just X/Z. Added a new function called Point.distanceToXZ() which measures distance only the X and Z axes. The same has been done for Point.distanceToSquared().
- Class and Race properties are now stored as id’s (integers) rather than strings.
- A lot of the Quest code has been moved to the QuestPlugin from QuestBehavior. This allows other areas of the server to start and update quest info (such as starting quests from items).
- Instance references are now stored by ID rather than name. This will prevent links breaking if an instance name is changed in the Instance Plugin.
- Race and Class settings are now stored as ints rather than strings. This will prevent existing characters and world content database links breaking if a Race or Class name was changed.
- Added the creation of TempData gameObjects to store the current item/ability data. This prevents slowdowns in Unity when the Scripts object was getting overloaded.
- Removed the content_admin_connection.ini file – moved the properties into the world.properties file.
- Combat stats are now sent down at the character selection screen allowing developers to display any stat info they wish.
- Got rest slots working for weapons. Now when not in combat the weapons will be put in the rest slot.
- DamageMod and SkillLevelMod fields for effects will now correctly update in the Atavism Editor.
- When equipping an item the replaced item will now go in the slot the newly equipped item was in. This means when your bag is full you can still swap equipment.
- Greatly increased the speed at which Resource Nodes are saved and deleted from the data-base (about 100x faster).
- Fixed a bug where a fake id was being assigned to Coord Effects in the Atavism Editor. This was causing data to be saved to the wrong row in the database if any rows had been deleted.
- The ExecuteCoordinatedEffect code no longer breaks when the prefab cannot be located (this would cause claim objects to never stop loading in if they had an invalid state).
- Mobs now continue to attack after a stun has worn off.
- Flying players are no longer attacked by mobs on the ground unless they are sufficiently close.
- Skill max setting for skills now takes effect, preventing the player from having their skill go over the maximum you set.
- Mob min and max levels now work. A mobs level will be randomly set in between the min and max level setting.
- Two-Handed weapons are now working and will use up both Main Hand and Off Hand slots.