DZAI Adaptation for ArmA 3 Epoch (News, Updates, Information)

Buttface

OpenDayZ Rockstar!
I will be posting all news and information on the anticipated DZAI adaptation for ArmA 3 Epoch (tentatively named "A3EAI".

Where are we as it stands right now:

Development hasn't started for A3EAI. I've only set up a test server for A3 Epoch this past week and I'm doing some playtesting of the vanilla mod to get a "feel" of things before I begin the design and planning phase. Actual coding will begin sometime in 2015 and the first Alpha release is estimated to arrive in late Q1 2015. This is only a wild guess off the top of my head, actual release may be earlier or later depending on problems encountered along the way. Remember that Epoch code is subject to change so nothing is certain.

Reason for the Q1 2015 estimate release date:

3 months seems like a large amount of time for the first Alpha release, but the reason is simple: I have a lot to learn about how scripting has changed in Arma 3 and I require time to become familiar with Epoch code. A lot of features will have to be scrapped or redesigned. A great deal of DZAI code is specific to Arma 2 and DayZ and this needs to be converted for Arma 3 and A3 Epoch.

What will happen to DZAI (for Arma 2 DayZ):

Development for DZAI is planned to be on indefinite hold (possibly permanent) while A3EAI is being developed (I can't do 2 things at once). A3EAI will use DZAI 2.2.1 code as a foundation and develop further from there.

More news and info will be posted here as it comes up.
 
General roadmap for A3EAI development:

Stage 1: Research and Learning (Complete)

  • Generally playing vanilla A3 Epoch to understand the gameplay style
  • Playtesting A3 Epoch with stripped-down version of DZAI to understand what changes will need to be made
  • Primary focus is learning and information-gathering as opposed to code-writing
Stage 2: Adapting DZAI for ArmA 3 (Complete)

  • Generalized adaptation from Arma2 code to Arma3 code.
  • Continue stripping out leftover DayZ-specific code
  • Overhauling the loadout handling due to new item types introduced (headgear, vests, weapon attachments, etc)
  • Primary focus is bug-fixing and A2-to-A3 code conversion. Extreme code modifications expected at this stage.
  • Many existing features are expected to be removed or stripped down at this stage. Removal may be temporary or permanent.
Stage 3: Adapting DZAI for A3 Epoch (DZAI-to-A3EAI transition) (We are here)

  • Actual development of A3EAI begins here
  • Earliest possible start time for Stage 3 begins after Epoch devs de-obfuscate their code
    • I'm doing some of the de-obfuscating myself, so some progress is still being made.
  • Adding code that takes Epoch features into account (ie: Krypto currency, traders, etc)
  • Primary goal is to establish a stable code foundation to build from, as opposed to building fancy features
  • Primary focus is bug-fixing and laying down foundations for future features.
  • First Alpha version release will happen during this stage
Stage 4 and beyond: Adding features for player enjoyment

  • Custom spawns and other customizable settings (the "fancy features")
  • Focus on code improvements and optimization
  • Primary goal is to establish a level of quality that meets or exceeds DZAI 2.2.1 for Arma2 DayZ

At this point in time, it looks like A3EAI is the formal name for DZAI's A3 Epoch adaptation.
 
Testing a stripped-down DZAI 2.2.1 with A3 Epoch:

Static AI:


Dynamic AI:


All AI are currently handled server-side presently and so far not noticing the no-damage AI problems reported in the Epoch forums.

Edit: Disregard the above line. It appears the allowDamage command is run serverside on the player object during character creation, which makes the player immune to damage from server sources.

Edit #2: The invincible player issue is fixed by invoking allowDamage true again serverside.
 
A surprise encounter with vehicle AI:


I had engaged another vehicle patrol moments earlier but wasn't able to open Bandicam in time (what a coincidence since I only enabled 2 vehicle patrols). I played much more cautiously this time since I had fixed the immune player bug. The video audio, which I accidentally recorded from Soma's Twitch stream, is awesomely hilarious.
 
Update:

Due to the lack of a built-in 3D editor for Arma 3 - you may remember this as the Alt+E editor in Arma 2 - A3EAI is not currently planned to be released with built-in static spawn configs until I'm able to write a tool that can be used in the editor preview to easily create spawns.

I'm still deciding on whether or not to go ahead with adding built-in static spawns since the goal of the automatic static spawn generator is to make it unnecessary. This feature is already in DZAI and automatically runs when an unsupported map is used. Because these auto-generated spawns don't tend to cover very much area or the areas that players are most likely to be, I've allowed dynamic and random spawns to spawn inside cities and towns to allow all 3 spawn systems to work together. The end result is very interesting - the spawning feels much more natural and unpredictable. Just because you're in a city or town now means you can still be suddenly ambushed by an extra dynamic AI spawn. Dynamic and random spawns can now happen in static spawn locations, but dynamic and random spawns won't spawn in each others' areas.

There is still much to do, and one of these things is to upgrade the auto spawn generator to allow it to "adapt" to each location depending on the surrounding environment. Since loot in Epoch is no longer localized to certain areas (ie: "military" areas), spawns and AI difficulty will need to become adaptive rather than simply randomized.

One annoying issue I've found that seems unsolvable is that AI with sufficiently powerful weapons (ie: rocket launchers or miniguns) will tend to attack some buildings because the Civilian side in A3 Epoch is the player side, which also happens to be the side for neutral buildings. Unless the Epoch devs switch the player side to something else like West or East, this problem will continue.

Some good news - an alpha release may arrive sooner than expected, possibly early to mid Feb. 2015. Development is moving slowly but steadily, and there is still much feature adding and overhauling to do.
 
Update:

The dynamic weapon list is another feature slated to receive a significant upgrade. Because A3EAI will be specific to Epoch features, it will be much easier for me to develop features just for Epoch. The plan is to allow users to configure chances of setting weapon type probabilities for each AI difficulty level. For example, lowest level AI could carry pistols and rifles only, while highest level AI would be equipped with machineguns and sniper rifles only.

Unfortunately there is no way to distinguish between "low quality" and "high quality" weaponry because Epoch categorizes its weapons based on type as opposed to rarity. So this is a case where there is both positive and negative progress made.

Edit: The feature has been completed. The new dynamic weapon list script executes 100x-200x faster than the DZAI version.
 
The dynamic classname feature has been expanded to allow for the following item types to be dynamically generated using Epoch loot tables:

  1. Skins
  2. Weapons (Pistols, Rifles, Machineguns, Sniper rifles)
  3. Backpacks
  4. Vests
  5. Headgear
  6. Generic loot
  7. Food items
 
Update:

Development continues to go forward strongly and smoothly, much thanks to Arma 3's built-in editor tools, config viewer, and ability to start a server session without using a client, which makes testing scripts and scenarios stupidly easy. Testing that used to take a day or more on A2 now takes minutes on A3.

At this time I'm optimistic for an Alpha (or straight to Beta) release somewhere in February. I'm pushing ahead with development without waiting for Epoch devs to de-obfuscate their code.
 
Update:

The dynamic spawn manager will be getting another overhaul from V2 to V3. V3 will be mostly a simplification of V2, such as fixed (but configurable) spawn probabilities, configurable minimum amount of time between spawns for each player. The simplification is necessary to make future development easier.
 
Update:

The custom spawn system has not yet been tested, but I'm currently working on a "tool" that can be used in the A3 Editor to easily create custom spawns. Spawn info will be generated using the editor Debug Console and saved to the clipboard, so you will be able to simply paste the custom spawn info into the spawn definitions file after fiddling with the editor. This will take some time because client-sided scripting is very new to me.

I'm also working on simplifying down the A3EAI file structure. The static spawn config files will be removed and made available as a separate optional package since A3EAI will be working towards a totally configuration file-less static spawn system.

A3EAI will be available as an installable PBO file. The config files and other user-editable files will be located outside of the pbo so users will never need to unpack or repack anything.

So far, A3EAI has only been tested on Altis but should theoretically work with any map you can throw at it. Again, I stress theoretically.
 
Update:

Due to the lack of a built-in 3D editor for Arma 3 -

Maybe this will help you :

Download http://forums.bistudio.com/showthre...ox-3-Dynamic-mission-creating-tool-for-ArmA-3 and install it like every other mod.

- Launch ArmA3, open the editor, load your map and place a player unit.
- Start mission preview. Once ingame, launch Zeus via Y/Z-Key (depending on your Keyboard settings).
- Welcome to the 3d-Editor. In general it works like the ArmA2 3D-Editor and is mostly self-explaining.
- Place whatever you want to place

After finishing your work, hit the Y/Z-Key to return to your char.

- Open the MCC-menu via Mouse-Wheel and hit Login.
- After the MCC-menu is open click Save/Load in the low right corner
- In the Save/Load menu hit the button in the lower left corner (forgot the label ... something like save all to sqm)
- Switch to desktop
- Open a new textfile, paste the clipboard entry in your textfile, save it as mission.sqm

- Switch back to ArmA3
- Close everything
- Create a new mission, name it and save it.

- Switch to Desktop and move your new mission.sqm to your newly created mission-folder
- Overwrite the existing mission.sqm

- Switch back to ArmA3 and reload your mission

Finally you have to clean up the mission a little bit :
- Remove everything in the low left corner of your map
- Remove the placed unit (your player unit during the Zeus session)
- Relatively close to your player unit there are placed some "wind", "leaves" and "insects" objects. Remove them also.

- Save your mission again

E voila.... your done.

Sounds very complicated the first time but if you have done it a few times and your are familiar with the whole process its quite comfortable and things getting done within minutes.

Finally two notes :

- Some objects can not be placed on top of other objects. You have to do this via script (setpos) and the 2d-editor.
- Be aware.... always (!) save your stuff before leaving the mission preview otherwise all placed objects will be lost !!! (You can work yourself into MCC ... there are options to save placed stuff into template slots and load them in a later session. But thats a different topic and too much for now). Its easier and saver to follow the process described above.

Have fun and hopefully this will help you.

Btw. a question from me.... will you release DZAI as kind of a standalone ? For those who are not playing Epoch ?
 
I'm going to be sticking with Arma 3's built-in Editor since it's a zero-step process to set up. The goal of A3EAI is to do away with preconfigured static spawns so it's not a high priority to find a 3D editor replacement.

DZAI is already a standalone (not sure what you meant by that). It's just not going to be developed past version 2.2.1 except for occasional bugfixes.
 
Update:

Added a method of verifying all A3EAI settings to ensure error-free operation. The method of verifying was borrowed from Epoch server files so this is not a completely original concept, however it is planned to be further expanded for better verification. This will ensure that bungling up your settings won't always cause A3EAI to error out and stop loading, but of course it won't prevent script-level errors such as stray or missing "] ; )" etc.

There have been a bunch of other updates. Individually, they are too tiny to name, but together, they are awesome.
 
This is brilliant!

I've used DZAI for ages on our Arma 2 EPOCH server, and have thrown some roaming AI and AI missions together server-side for our Arma 3 EPOCH server (mainly just random spawns from an array of markers and some eventhandlers to make the AI not quite so dumb and react properly when someone shoots them, lol), but NOTHING as complex, or brilliant as you're likely to come up with !

Can't wait to see this!

If you need someone to test, I'm happy to throw this up on our A3 EPOCH Altis test server, or a A3E Chernarus server running AiA anytime you need!
 
@MikeTheMike : I'm just as excited as you for A3EAI's release date. A great deal has already been done, but there is still much to do and prepare until that date.

And a general update:

I will be taking some time to re-examine the random spawn system to make it more relevant and useful. At the moment in DZAI, random spawns are placed just about anywhere on the map, making it unlikely for users to activate them entirely by chance. A3EAI aims to change this by first trying to place them near a city/town/named location to make player encounters more likely, then resorting to place them anywhere possible.
 
Update:

Dynamic and Random spawns are being reworked to become "location aware", meaning AI group sizes, skill levels, and loadouts will depend on the category of the location closest to the spawn position just like static AI. This means you won't have max-level AI roaming around a small village, for example.

Villages: Lowest level AI
Cities: Medium level AI
Capital Cities: Medium level AI (larger group size)
Remote areas*: High level AI
* Remote areas can be recognized by the light-gray font of the location name on the map, such as "military" or "factory"

Note: Static spawns have a chance to be temporarily "promoted" to one category higher, but dynamic and random spawns don't currently have this.
 
Update:

Dynamic (non-hunting type) and random spawns have been slightly modified so that the AI group's first waypoint is always redirected to the target player's position at the time the spawn is activated. What this means is increased chance of actually encountering the AI spawned, but easily avoidable if players don't remain completely stationary for a long time.

Because an AI group's first waypoint is actually the position that they are spawned at, this change will also act as a fix for those situations where dynamic/random AI seem to head off to the middle of nowhere - they're just going back to where they spawned.

This change may be back-ported to DZAI when I have time.
 
Update:

A bit of a late update since I made this change way back. The AI loot system has been reworked in an attempt to simulate "looting" activity to generate loot items in AI inventories. AI spawn with no loot, but loot items are gradually added to AI inventories as time goes on. What this means is that AI that are quickly killed after spawning will yield little to no loot besides their initial loadouts (basically what you see on their characters), but AI that manage to live for longer lengths of time will have more varied loot items. Loot quantity is also determined by AI unit levels. This is different from how looting works in DZAI where AI units generate all of their loot items on death, and potentially generate the same amount of loot no matter how long they've lived.

Dynamic and random AI will generate loot items at double the rate of normal static AI since they will have some player-seeking ability and therefore shorter expected lifetimes. Vehicle AI will generate loot at normal rates but since they have great roaming ranges, they will most likely have generated their entire loot list by the time they're killed by players.
 
Update:

Line-of-sight checks will be added to static (non-custom), dynamic, and random spawns to avoid possible cases of in-your-face AI spawning. The line of sight checks will be short ranged (less than ~200m) to prevent performance issues but anything beyond this range is what I would consider fair game.
 
Back
Top