I've heard Quin is not inspired by campaign mode, I hope this will help (cause I spend alot of time on this)
I used to mess with hammer and goldsource/ source engine.
And it has really powerful possibilities in term of scripted ai.^most of today single players games seems to use the stuff that was already in half life 1.
I tried to simplify it the most I can and guess how it could work in Red Eclipse with Cube engine
General campaign gameplay:I suppose the most simple way is to separate each campaign maps in sections delimited by checkpoints.
If a checkpoint is reached by someone, all the players will spawn there.
If a player dies, he will have to wait that someone reach the next checkpoint, or that everyone die (going to the last checkpoint). This way all players should be in the same section all the time. And keeps the player together
Reaching checkpoint teleport all players to it? More points if you are the first to reach the checkpoint?
Actors status:Active: the actor entity is created, but can be sleeping, not spawn, whatever.
Spawned: the actor is activated and alive, but can still be sleeping
Wake up, Sleeping: the actor is spawn and activated, it can be sleeping (in wait of order) or wake up (chasing player, doing scripted action, whatever)
Default actor behavior: wait in place, sleep until he see someone to shoot
Actor parameter request:Wake up on see by default (like actual behavior), but goes back to sleep (stop chasing) if all near player are dead. (Actually, awaken actor will chase you to your spawn point, until you kill him.)
Respawn: 0 keep respawn whatever happen, 1 respawn only once when activated or spawned by trigger (see acting ent, actions parameter), 2 respawn twice, etc…
Respawn delay: delay in ms between spawn (not recommended: can be scaled by server var, cause I suppose it could break some timed actions)
Size is actually not workingSpeed is actually not workingResize: Actor resize in function of his health or not
Color: change color, 0 is weapon color
Wavemin: 1rst Wave in which the actor spawn for the invasion game type (spawn in all the following waves).
Wavemax: Last wave the actor will spawn in Invasion.
Sleeping: 0 Default, actor sleeps until he sees a player or gets triggered.
1 Sleep until trigger whatever happen. If hp is 0, he die after trigger, except if acting (see acting priority). Back to default actor behavior after the trigger and acting is done
2 Sleep until trigger, but can die. Back to default actor behavior after the trigger and acting is done
3 Sleep until trigger, but wake up if hit. Back to default actor behavior after the trigger and acting is done
(Maybe wait latter:
Affinity: aggressive, passive, pacific, following pacific, following teammate, following passive. If the affinity is follow, the actor will follow you if you press E (action) near him)Trigger parameter request:Timeout: Time to wait before activate the trigger
Actors: 0 actors can’t activate them, 1 they can
Acting entity:Ability for mapper to create scripted Actions with an “acting” entity (instead of default actor behavior).
Actors can be linked to many acting entity to create a sequence, launched ‘on trigger’.
Trigger once make the acting repeat after each respawn.
Trigger link activate acting sequence every time someone walk in it for each actor respawn (have to wait actor death before allowing retriggering, or it will restart sequence every time you walk in).
If a trigger is linked to the actor, and the actor to an acting entity, the actor will do what acting entity tells him.
If the actor is not linked to any trigger, but to an acting entity, the actor will play the act once it’s spawned.
Whatever happens, an actor goes back to his default behavior after an acting sequence
Acting parameterAnimation: animation to play in case of “action = animation”
Pitch: X axis the actor looks while doing his animation/action
Yaw: Y axis the actor looks while doing his animation/action
Priority:0 Default. Actor does the acting only if he’s sleeping. (Acting is cancelled if he’s awake)
1 Do the acting to the end, whatever happen (die after the end of act it if hp=0)
2 Do the acting to the end whatever happen, except if he’s killed
3 Do the acting exept if it’s hit
Order (id?): position of the act in the queue
Action: respawn (respawn the actor, whatever is his respawn parameter), move (move to the closest waypoint to the acting entity), animate (play the animation) Awake (turn actor status to awake) other possibilities: shoot, explode, die...
Timeout: time before the next acting in queue (or back to default behavior) if timeout 0, the next acting will start once this one is finished. (Maybe particularly useful if you can’t get the length of an animation)
Actor Reset
An entity that reset all linked actors to default (kill and send back to initial spawn)
As the game is multiplayer, you may need to force back actor to initial status, because some sections can need to be replayed many times.Breakable map modelsNew parameter for the map model:
Breakable: 0 default map model
1 Explode if a projectile. hit it
2 Explode if a projectile hit it or if the linked trigger is activated
3 Explode only if the trigger if hit
Debris: Projectiles to throw when the model explode
1 metal
2 wood
3 concrete…
Projectile direction:0 all direction
1 Strong push along x axis
2 Strong push along y axis etc…
Sound: Sound to play on break
Damage:Damages done by the explosion
Explosion type: Nature of the explosion
0 none
1 grenade
2 plasma secondary
3 Fire
etc…
General featureTeleport bots if a checkpoint is reached (or create a bot teleport entity to trigger) as they don’t navigated correctly in campaign)
An entity delimiting actor activation area. If players enter the entity area, all actors in this area are activated. (Maybe linkable with trigger to activate actors a bit far away)
Or actor automatically activated if a player is near enough, or both.
Or limitation to a descent actors number for the mapper (128, 256 ?)
Linking actors to a map model make it opens only if those actors are dead
A command to kill all bots in campaign (if you come to die and bots are blocked)
Exemple of use for acting entity :1. creating enemies that comes to you when you touch a trigger
2. Creating an enemy that break a door in 3 times with breakable mapmodel and acting
3. Creating a surviving situation where enemies keep coming while you wait the doors open
4. Resident evil like, create a corridor where actors jump in threw glass when you hit the trigger.