1. Ancient Warfare 3
  2. News

Ancient Warfare 3 News

Update 0.41

This update features a lot of improvements and features related to visual scripting to make it easier to use and increase its functionality!

New Menu Scene

Thanks to Mecho we now have a new fantasy themed menu scene with orcs and some ghost units. Have a look at it in game or check out the video below to see how good it looks!
https://youtu.be/9GoQarJrZG4

Widescreen support
The game now supports 21:9 (widescreen) resolutions without black bars. There are also some changes to update the available/supported resolutions after moving the game to a different monitor on multi-monitor systems.

Other Improvements
  • When importing a model without triangulated faces, a warning is displayed to remind you to triangulate wavefront .obj models before exporting them
  • Increased the amount of sounds that can play at the same time to prevent issues with clipping audio effects


Scripting Features & Improvements

All the new features and improvements can be found below. There is a lot to go through, information about the next update are at the bottom of this post.

[h2]Improved object selection[/h2]
  • Multiple scripting objects like lights, triggers, variables, etc. can now be selected at once in the scripting view
  • This can be accomplished by holding shift/ctrl while selecting objects or by dragging a box over multiple objects
  • Scripting objects now also give visual feedback to indicate their selection status to make it easier to work with them
  • The scripting object settings (like light or wall settings) now also support multi object editing
  • Fog areas can now be selected by simply clicking on them instead of having to search the icon


[h2]Script settings[/h2]
This update contains features to split logic into different scripts. To help with that
  • Scripts can be referenced, deactivated and enabled from other scripts
  • And scripts have an execution order setting to select in which order multiple scripts run


[h2]Custom events[/h2]
The new custom event nodes can be used to define custom starting points for your script. This can be used to prevent repetition of nodes that do the same thing. You can also add parameters to your custom events. The event can then be executed from the same script with the Invoke node, or from other script with the InvokeExternNode.


[h2]Input UI[/h2]
To help with using other player's scripts or adjusting your own large scripts, most input nodes can now be given a name and a description and will then be displayed in the scripting list. This means that these settings can be edited without having to edit and try to understand the script.


[h2]Script workshop[/h2]
To make it easier to share scripts with other users, there is now Steam Workshop support for visual scripts! Script can be uploaded in the script editor or loaded when pressing the 'Add Preset' button in the script list.

[h2]Script editor improvements[/h2]
There are some nice quality of life improvements which can be toggled on/off in the toolbar in the bottom left corner of the script editor:
  • When dragging a output point in an empty area, the panel to add nodes will show up and display all compatible nodes. After selecting a node, it will be inserted and connected automatically.
  • If you like clean looking scripts, you can now enable nodes to be snapped to a grid or aligned to other nodes


[h2]Runtime event binding[/h2]
Events that depend on a reference like the OnDamage event can now be bound while the script is running instead of having to pick the reference in advance.
With scripting the reference is often only generated when a unit is spawned for instance. The Bind event nodes can then be connected and all the nodes that are connected to the event will run when the event is happening.

[h2]Improved custom UI[/h2]
Ever since the addition of the CustomInfo node, players used to create custom UI elements to replace or add more information to the vanilla HUD. To help with that, there is a new version which outputs a HUD element reference whose settings like color, text, etc. can be changed.
And a new input parameter can be used to allow the cursor to interact with these hud elements. There are new events to detect hovering and clicking and a new node (UnlockCursorInteraction) to unlock the cursor of the player to actually use these events.


[h2]Custom UI transform editor[/h2]
The new UITransform input node makes it easier to create custom info elements by allowing users to adjust and preview positions, sizes and anchor/stretching behaviours for their UI elements.


[h2]New scripting nodes[/h2]
This update features a lot of new scripting nodes:
  • RunOnce and RunOnceFrame can be used to only let the connected nodes run once while playing or once per frame
  • The Select node can be used to select one of two values depending on a bool condition. This works similar to the if node, but a value is selected to prevent having to copy conditional branches in scripts
  • The Break node can be used to stop the loop from which it was executed
  • The new version of the EndlessLoop now works like the other timed loops and can be started multiple times (this doesnt affect old scripts)
  • GetAllUnits and GetUnits can be used to retrieve a list of all units (of a team)
  • TryGetNavPos can be used to find the closest walkable position on the AI navigation surface for a position
  • IsNavPos can be used to test if a position is on the walkable AI navigation surface
  • Set/Get MovementSpeedMult can be used to adjust the movement speed of the player (0-2x multiplier)
  • OnAIAttack/OnAIAttackGlobal event nodes run when an AI attacks another unit
  • OnAIShoot/OnAIShootGlobal event nodes run when an AI shoots at another unit
  • OnAIMelee/OnAIMeleeGlobal event nodes run when an AI swings their weapon at another unit
  • OnProjectileImpact event node runs when a projectile hits any surface and outputs information like the position, hit normal and hit object
  • OnProjectileBodyImpact event node runs when a projectile hits a unit body part and outputs additional information like the hit body part and damage values
  • OnMeleeImpact event node runs when a melee weapon hits any surface and outputs information like the position, hit normal and hit object
  • OnMeleeBodyImpact event node runs when a melee weapon hits a unit body part and outputs additional information like the hit body part and damage values
  • IsHovered node can be used to test if a custom info is hovered
  • OnBeginHover/OnEndHover/OnClick can be used to detect custom info interactions
  • UnlockCursorInteraction/LockCursorInteraction can be used to unlock the cursor for custom info interactions
  • Jump node can be used to let the player jump without ground checks for mechanics like double jumps
  • PickupWeapon/PickupSupport/PickupShield can be used to set inventory items of the player
  • Added various new nodes and parameters to existing nodes to drop weapons, shields, etc and to switch weapons
  • RestrictAll node can be used as a shortcut for all the other restrict nodes
  • Raycast/Linecast nodes can be used to shoot rays and detect colliders
  • New input nodes for body parts, types, ui transform and equipment item references
  • ArrayHint node can be used to hint the type of an array after it was passed as a parameter in custom events
  • DynamicRefCast can be used to cast any reference type to another type (for instance unit to health reference)
  • DebugLine node can be used to temporarily render lines in the scene
  • SetX/Y/Z and SetR/G/B nodes can be used to quickly set one component of a vector or color
  • Added nodes to get and set all parameters of an existing custom info
  • New runtime event bind nodes for all the reference event nodes


[h2]Script warnings[/h2]
The scripting system is pretty robust in terms of error handling, but unfortunately it is difficult to detect all user errors. For instance, some players used the OnDamageGlobal event and then just added more damage to a unit, which would cause the event to run again and cause an endless loop and game crashes. With custom events it is even easier to create actual endless loops which are difficult to detect in the editor.
To fix that, the game will no longer crash when a script causes an endless loop. Instead a warning is shown while playing and the script is deactivated.
In addition to that, there is also a warning if a script runs really slow.

[h2]Other scripting improvements[/h2]
  • Node warnings are now displayed for placed nodes
  • Nodes with serious warnings related to performance now use a red background
  • Added 'Tab' as a possible key in the input event nodes and key input node
  • Comment nodes will no longer reset their size when reloading a script
  • OnPickupEquipment/OnPickupObject/OnConsume nodes will now output the reference to the used object


Bug fixes
  • Fixed that the OnPickup scripting node did not work for door keys
  • Fixed that pressing continue in the pause menu resulted in a different behaviour that pressing escape to close it
  • The mute in background option will now correctly mute sounds instead of pausing them and causing sound desync
  • Custom modular doors should work more reliable now
  • Fixed that the rect shaped terrain paint would flip to the other side when painting borders
  • Fixed that the rendered color picker would not pick colors from units in the unit editor
  • Fixed various problems with picking up shields (duplicated shields, multiple shields on the player, etc.)
  • Fixed that custom bayonets did not cause any damage
  • Fixed that resetting the scale in the script editor would not update the scale text
  • Fixed a visual bug for array nodes with many values
  • Fixed small gap in the concrete windowframe model
  • Fixed that menu music would stay quiet after changing the music volume
  • Fixed that siege units did still control their siege weapon after being zombified
  • Fixed S42 scope retricle clipping
  • Fixed floating scopes on the future grenade launcher
  • Fixed +0 bullets spam when walking over some weapons
  • Fixed that units from spawners were missing their weapon attachments and shield backpacks didnt work correctly
  • Fixed floating bayonet on B1918 weapon


Next update

The next update will include a new quickplay section with curated workshop items to increase the visiblilty of workshop items and new content.

0.40 Bug fixing patch

  • Fixed color picker result on camo clothing items
  • Fixed color picker result on terrain surfaces
  • Fixed that the surface placement direction was not applied
  • Fixed wrong description for backpack shield slot setting
  • Fixed missing footsteps on zombie units
  • Fixed that randomized object (like plants) did not save their variant

Update 0.40

As mentioned in the last blog post, this is the first update of the new monthly update schedule. It features some nice quality of life features and technical improvements.

[h2]Color Picker[/h2]
The new color picker can be accessed in the battle and unit editor to pick a color from the visible objects. This can be used to quickly select colors based on the colors of vanilla content or other colors you like in a scene.


[h2]File Browser Improvements[/h2]
With all the different kinds of custom content, the file browser has become an essential tool when saving, loading or importing stuff. This updates adds some qol features to it:
  • Bookmark paths
  • Click on folders in the navigation bar to quickly navigate back
  • Rename entries
  • Folders are now supported for custom items
  • Delete/rename buttons are only visible while hovering


[h2]Invisible Units[/h2]
With the addition of custom equipment items, ghost units were "abused" to create custom unit shapes by adding custom face equipments and armor items, but the semi transparent color of the ghost units was still visible. The new Invisible and Invisible With Blood options for the unit appearance in the unit creator can be used to create fully invisible units with or without blood effects. And zombie units can also be invisible!


[h2]Footstep sounds[/h2]
The player and units now have footstep sounds depending on the surface they are walking on.
https://youtu.be/w1pdXEpzCqU

[h2]Player/Unit Improvements[/h2]
To improve the feeling while controlling a player, there are some improvements in this update (and more are planned)
  • The head is now slightly tilted while leaning
  • Replaced the landing sound which now also depends on the surface
  • Standing still now reduces recoil by 10%
  • Crouching now reduces recoil by 25%
  • Added some arm sway while aiming a weapon to prevent it from being perfectly still
  • AI units will now rotate their heads up/down while aiming at a target at a different elevation


[h2]New Scripting Nodes[/h2]
The planning phase for more extensive changes to the scripting system has started to make it easier to use and also allow users to add custom logic without having to actually edit visual scripts. But for now, this update only includes some new scripting and adjusted nodes:
  • Added HUD/Activate node to hide the vanilla HUD elements
  • Added movable object GetPosition/GetRotation nodes to prevent having to cast them to object
  • Added Unit/Move and Movable/Move nodes to quickly move units/objects by an offset instead of having to calculate the absolute target position
  • Movable objects can now be rotated with the Rotate/RotateLocal/SetRotation nodes
  • Added Player/IsGrounded and Player/LookDIr nodes
  • Added key to string cast nodes to display key bindings as string
  • Added GetRight/Forward/Up direction vector nodes for movable objects
  • Added Math3D/LookRotation and Math3D/RotateTowards nodes to help with calculating rotations
  • Added Unit/Activate footsteps sound to activate and deactivate footsteps for individual units
  • Added Unit/GetTags node to get an array with all tags that a unit has
  • Added additional unit output to the GetPlayer node to prevent having to cast it to unit
  • Added keepTags input to ReplaceUnit/ReplaceUnitCustom nodes to keep all scripting tags that are attached to the unit


[h2]Memory Improvements[/h2]
With all the custom content from the latest update, some memory related problems were detected which caused crashes over time and overall reduced performance after a while. These issues mainly affected the load/save system when working with larger battles, so this update includes various improvements and fixes to make longer sessions with many save/load processes more enjoyable and stable,

[h2]Other Improvements[/h2]
  • Modular parts will no longer snap and jitter around while placing them in overlapping placement slots. This was especially annoying when placing roofs
  • Impact effects for bullets (sound & particles) are now more reliable and there are some new effects for materials like glass or plastic
  • All lists in the game now scroll with the same speed relative to the item size
  • Poison and flame damage is now displayed on the HUD
  • The visiblility of workshop items is now loaded into the UI before updating them
  • Custom items from the workshop now display as "[V1_W]" in lists to identify them
  • Colors can now be dragged into folders in the color management UI
  • Transparent colors are now supported in the color management UI
  • Increased sound capacity of the audio system


[h2]Bug Fixes[/h2]
Most bugs have already been fixed in the previous patch
  • Fixed a bug that caused custom objects with surface placement to be placed wrong
  • Fixed a bug that caused the custom container item setting to place the door at an invalid position

Update 0.39.1

  • Fixed some scripting node descriptions
  • Fixed incorrect weapon rotations in some menu backgrounds
  • Fixed incorrect snowman hat interaction after being dropped
  • Fixed that the head device (night vision) could not be toggled on/off
  • Custom corpses can now be referenced as movable object in scripting
  • Fixed preview of armor in equipment panel
  • Planes will now crash when their pilot died
  • Fixed custom item icon preview tool
  • Fixed a bug that caused custom items to become missing when subscribing to new units or prefabs
  • Fixed flipped normals on the improvised semi auto rifle
  • Fixed a bug that allowed invalid .obj files with NaN normal values to be imported
  • Fixed siege and animal filters in the placement list
  • Fixed that the custom particle system cone arc was limited to 90° instead of 360
  • Fixed that using units with unknown custom equipment from the quick play menu would result in them missing their equipment when playing
  • Fixed that when loading player equipment presets with unknown custom items, the items were missing on the player

Custom Objects Update

[h2]Custom object creators[/h2]
Based on the first custom creator update for custom weapon and equipment items from the beginning of June, the custom object creators are now available!

Similar to the custom equipment items, custom objects can be used anywhere, where you can also use vanilla objects. And custom objects can be uploaded and downloaded from the workshop too.
There are also various UI improvements which also apply to the equipment creators like improved contrast and look, better warning/error messages, additional information while hovering over some UI settings and some creators also show information, errors and warnings directly in the settings without having to validate the item settings.

[h2]Custom environment objects[/h2]
The environment object creator can be used to create Trees, Bushes and Rocks which can be placed in the battle editor and prefabs.


[h2]Custom Consumables[/h2]
The custom consumable creator can be used to create objects which can be consumed/used by the player. You can choose from a variety of preset consumables like Food, Drinks, Meds, Ammo and Keys or create custom functionality with scripting events. The UI notifications and interaction sounds can be modifed too.


[h2]Custom Modular Parts[/h2]
The custom modular creator allows you to create all the different modular building parts like Foundations, Walls, Floors, Doors, Windows, Roofs, etc.
The default modular size can also be exceeded to create custom parts like this fishing pier.


[h2]Custom Effects[/h2]
Custom effects are particle effect only objects which can be placed to decorate your battles and controlled with scripting.


[h2]Regular Objects[/h2]
This creator can be used to create a variety of different objects like small or large decorative objects, objects with collisions, objects where units, objects or equipment can be placed on, and objects which can be destroyed. There are also a variety of different placement settings to adjust how the object is placed in the editor. And to quickly add functionality there are a variety of features to enable and set up:
  • Ammo Crate - adds bullet to the player while in the radius of the object
  • Heal Create - heals the player while in the radius
  • Light Effect - adds a point or spot light source to the object which can be adjusted in the battle editor and with scripting
  • Particle Effect - adds a custom particle effect to the object which can be adjusted with scripting
  • Text - adds a text which can be adjusted in the battle editor and with scripting
  • Scripting Interaction - the player can interact with this object and scripting can be used to add custom functionality
  • Trap - custom or preset particles/sound can be played and damage effects set up to make the object work like a land mine for instance
  • Damage Area - while units are close to the object, regular, poison or flame damage can be applied
  • Container - A door and animation can be selected, the object can be locked with keys in the battle editor and controlled with scripting


[h2]Background Objects[/h2]
Background objects are large scale decorative objects which can be placed on or next to the terrain to create backgrounds like skylines.

[h2]Scripting Integration[/h2]
As already mentioned, objects with features like text, lights, particle, effects, etc. can be referenced and controlled with scripting, similar to how vanilla objects with these functions. In addition, objects which dont block or provide AI surfaces can be spawned and moved with scripting.


[h2]Improved Color Management[/h2]
There is a new color management tool to store colors by name and organize them into categories. Colors can also be sorted by name, color or date. This management tool can used to load and save colors for each color picker in game.


[h2]More Details[/h2]
If you want to have a more detailed look at the features above, you can play around with the update yourself, or check out the two development blogs about the consumables and environment objects
https://youtu.be/t53EmjJpfdo
and complex, modular and background objects
https://youtu.be/OjcR_R3fyVo

[h2]Next Update[/h2]
There will probably be a few small patches in the upcoming week to improve the stability of the newest update. After that there are a bunch of small gameplay improvements and quality of life changes planned that have accumulated due to the size of the last two updates. There will also be a fixed update schedule from now on. On the first monday every month, there will be a bigger update with features, improvements and maybe content. So the next regular update will be released on October 3. If you want to follow the development, make sure to join the official discord server, where I regularly post previews for upcoming updates.

[h2]Bug Fixes[/h2][h3](and small improvements)[/h3]
Below are is a list of all the bug fixes in this version:
  • Added a 'None' value to all database id input nodes to allow comparison against custom item ids
  • The high culture menu scene now spawns on low end computers
  • Renamed GetPositionDelta to GetPositionDeltaLocal and added GetPositionDeltaGlobal to avoid confusion
  • An error is now displayed when 'gas' caliber is used without flamethrower preset
  • Fixed that when placing new custom corpse units with the same gear but different poses would result in wrong poses in the editor
  • Fixed a bug that caused camera to get stuck when a tank was destroyed while the player was the gunner
  • Fixed that planes dont avoid helicopters
  • Fixed a bug that caused worse rendering performance for some unit clothing setups
  • Fixed incorrect colors of some face equipments
  • Fixed a bug that caused different instances of the same custom corpse to cause bad rendering performance
  • Fixed that duplicated ground vehicles could be placed on foundations
  • Fixed SG11 shotgun barrel opening
  • Fixed S47 gas tube opening
  • Fixed P1911 flipped normals
  • Fixed incorrect light opimization in the battle editor
  • Fixed that fog areas would block snow coverage in the editor
  • Fixed incorrect AI behaviour in fog areas
  • Fixed future and 6 inch turret's bullet accuracy on long ranges
  • Fixed that the reaper unit's weapon was missing
  • Fixed that vignette and other scripting image effects could get stuck
  • Fixed wrench model handle
  • Fixed that using the bow animation would cause miss fires that would still use ammo but dont spawn a bullet
  • Fixed that custom prefab icons were invisible on lowest graphics settings
  • Fixed that M2 flamethrower could not be used in the arsenal
  • Fixed that placing custom weapons in safes would not rotate them properly
  • Fixed that some parts of the glass door stopped being transparent after breaking
  • Fixed that scripting lights could not be referenced as movable objects
  • Fixed that falling into water from very high height would still cause fall damage when reaching the land again
  • Fixed terrain paint biome color list
  • Fixed rug object's default color setting
  • Fixed flipped normals on halloween tree 2 model
  • Fixed that default/custom feral zombie speeds didnt match
  • Fixed that spawning or selecting a weapon with smoke particle effect preset would play it for no reason
  • Fixed that custom rpg could not be validated when an external magazine was set before switching the preset
  • Fixed that when controlling a vanilla unit, the face equipment was missing
  • Fixed that using the GetPosition node on a player in update causes it to be default at first frame
  • Fixed some scripting node documentation errors
  • Fixed a bug that prevented custom units with certain items from being generated
  • Fixed that loading the same map with custom items twice would cause a loading error
  • Fixed flipped normals on AP40 iron sight
  • Fixed that setting the bullet amount for a custom placed gun would reset when loading the battle