I want to thank you for your work and support. I am a big ALiVE fan. It's a huge work that you have done, and thank you for making it available for the community.
After 3 days of diving into it, I just want to say that from a modder's perspective it is not immediate to integrate with ALiVE. Please take this as constructive criticism.
The things that I wanted to do since the beginning are:
1. Have my custom spawned AI be attacked by ALiVE-controlled opposing forces. After 3 days my understanding is that this is not possible. I could profile them (still unclear on how to do so) but that would make them virtualized by ALiVE and it would conflict with my construction system that handles them already. Hence, if there are no players around my custom AI, they will never be attacked by the virtualized units (which is a little ironic given that players around these AI would be there in the first place with the purpose of defending them). I don't know if there's a way to programmatically spawn virtualized units once they get close to my custom AI, so that they get attacked. If there is, please let me know.
2. Ensure that they are persisted. My understanding is that, being spawned and not placed in the editor, they will be not. Naively I thought that the persistency system of ALiVE would take care of looping allGroups / vehicles and save them and their position, but it looks like this is not how this works. Please correct me if I'm wrong, but it looks that if I want to save my custom spawned AI and objects I'll have to deal with that on my own.
I'm missing simpler ways to integrate, even though I do understand the complexity of ALiVE and that this is nobody's daily work. :)
For instance, maybe an oversight on my part but I haven't seen any ALiVE generated events (using CBA) a developer can attach to (for instance to have a callback when a game is saved through ALiVE).
Some functions are inconsistent (for instance
ALiVE_fnc_ProfileNameSpaceLoad returns false for a non-existant variable, while
ALiVE_fnc_getData returns nil ), which makes it time consuming to go through exceptions handling. In some others, it is unclear what certain values do, for instance the priority in the "addObjective" function of
ALiVE_fnc_OPCOM: is 200 a high or a low value?
The script snippets are all great starting points, but all seem to have been added in an aftersight (many of which come from forums) rather than being a native part of ALiVE's architecture.
Again, please take this as constructive criticism from a grateful fan of your work. I really want to make my module 100% ALiVE compliant, my understanding at this point though is that I will probably have to do most things independently and try to patch them together with ALiVE logic, hoping nothing will break in the future.
Any comments / pointers are obviously welcome, in case you'd want to come back to me.
All the best,