ALiVE.OS · ALiVE 3 Development
The behind-the-scenes brain that decides what each ambient civilian does next
In development · ALiVE 3
ALiVE 3 is in active development. This briefing describes work in progress, and the behaviour it covers is subject to change as testing continues. Check the changelog at the foot of the page for what has moved recently.
Overview
Civilian Command has no Eden module of its own and nothing to place or configure in the mission editor. It is the background system that picks and runs the actual activity for every ambient civilian: wandering around, doing housework, sitting by a campfire, sleeping, gathering in groups, or (depending on the area's tension level) fleeing, going rogue, or turning into a suicide bomber. Mission makers do not interact with it directly, it works automatically whenever ALiVE's civilian population is running.
Every few seconds each civilian rolls the dice against a set of behaviors, weighted by time of day and by how hostile the surrounding area currently is. Calmer areas favour everyday activities like random movement, housework, and campfires. As local hostility rises, the odds shift toward turning rogue, slipping away to become a suicide bomber, and simply standing and watching. Fleeing is not part of this roll, it is a reaction to gunfire nearby, and civilians only arm for sabotage when the insurgency campaign sends them to. When a behavior finishes, or a civilian is invited into a nearby meeting or gathering, the system quietly hands them their next activity.
Capabilities
Covers the mundane behaviors: wandering the area, doing housework, sleeping indoors at night, sitting at a shared campfire, and observing surroundings. These are the default behaviors in low-tension areas.
Civilians can start or join small meetings and gatherings with other nearby civilians, giving crowds of civilians a more natural, grouped feel instead of everyone moving independently. Both drop out as an area's tension rises: meetings stop forming above low tension, and gatherings stop forming once tension is high.
In more hostile areas civilians are more likely to turn rogue and become hostile, or slip away to become a suicide bomber. How likely this is rises in steps as the tension level of the surrounding cluster of civilians moves through five bands (under 10, 10 to 39, 40 to 69, 70 to 99, and 100 or more), rather than with one fixed chance. Fleeing isn't part of that roll, it's a reaction to gunfire nearby, and civilians only arm for sabotage when the insurgency campaign sends them to.
Recent work
ALIVE_civCommandSuicideVest mission-namespace variable), so mission makers can vary or override the gear those civilians spawn with by setting it in the mission's init.Status
All of the everyday, social, and threat-response behaviors described above are implemented and run automatically as part of ambient civilian population.
Behavior odds shift automatically as local hostility rises or falls, without any mission maker setup needed.
The campfire damage issue and the rogue civilian side-flip issue are both fixed in the current version.
Testing
There is nothing to configure, so testing means watching ambient civilians in a running mission. Confirm civilians cycle naturally between activities like wandering, housework, sleeping, and campfires without dying or freezing. Raise local hostility and confirm some civilians start going rogue, and that a rogue civilian stays hostile until dealt with rather than reverting to friendly mid-chase. Fleeing is a separate reaction to nearby gunfire, and civilians only arm themselves for sabotage when the insurgency campaign sends them to, so neither confirms the hostility roll on its own. Specifically check that civilians sitting at a campfire at night survive the full duration instead of taking damage, that civilians in one area gather round a shared fire instead of each lighting their own, and that nobody is lying asleep outside or in daylight.
Spotted a problem? Please report it on the ALiVE issue tracker on GitHub, with the map, rough location and what the units were doing so it can be reproduced.
Changelog