1. Ancient Warfare 3
  2. News

Ancient Warfare 3 News

Community Event

[h3]For the next 2 weeks, we have a new in game event made by Earthy.[/h3]
Participate in this futuristic cyberpunk themed event by pressing on it in the main menu.
By completing the map, your score will be submitted to a leaderboard and you can play the map as often as you want!

[h3]In game reward[/h3]
The top 3 can choose an in game content addition or small feature.
Only reasonable stuff that fits in the game and is technically possible will be added. (also no copyrighted stuff)
The complexity of the stuff you can choose depends on your place on the leaderboard after two weeks.
The winner can choose something which takes up to 5 hours to develop, second place chooses 2 hours and third place 1 hour.

[h3]Steam key reward[/h3]
In addition to the content addition, the winner will receive 3 steam keys for AW3 to give away to their friends. 2nd to 5th place will each receive one steam key for AW3.

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