Most of the information here is for Warzone 3.1 and above.
Situation Reporting (SitRep)
- Aubergine
Â
What is SitRep?
In Warzone, games can get pretty hectic. A player can't watch the whole map at the same time, especially when they're micromanaging units or sorting out their research labs, etc.
That's where "Situation Reporting" (SitRep) comes in – the game needs to give the player some audio and visual cues to make them aware of what's happening around the map.
Done properly, SitRep can add a lot to the game play by making it more engaging.
What sort of things should be reported?
It should provide realtime, or near-realtime, reporting of events taking place on the map, such as:
- Detection of enemy bases and units
- Incoming enemy attacks
- Units and structures being attacked or destroyed
- Power issues such as needing more oil or more power gens
- Completion of production, construction and research tasks
- Any other important event that the user needs to know about
Where is SitRep implemented?
Because each human player has an associated rules.js running on their local machine, it's the logical and ideal place to code SitRep.
How are reports sent to the user?
There are three primary ways to report situations to the user:
- Audio – this is the most engaging and effective mechanism
- Beacons – flashing beacons on the map and mini map to indicate where an event took place
- Messages – sending messages to the console with additional information
In Campaign missions, two additional forms of SitRep are common:
- Videos– provide more detailed narrative on the unfolding story
- Intelligence Reports– provide detailed information about new technologies and story events
See the Developer Links to the right for a list of related documentation.
Don't spam the user!
You should avoid spamming the user with SitRep - you need to implement throttling code to prevent the user being overloaded with information.
A basic throttling mechanism is to ensure that only a certain number of messages are sent per minute, or that common messages are individually throttled so they're not playing every few seconds.
An example of basic throttling code can be found in audioAlert(filename,pos,despam).
Source of the reports
Another factor to consider with SitRep is: Where is the report coming from? Who sent it?
For example, if you're playing audio messages you can use different voices to represent different factions or even different types of unit.
If you want an AI player to send a report to the human player, rules.js could message the AI player using chat() and the AI player could then relay that message on to the user, giving the user the impression that it was the AI who messaged them.
Where can I see an example?
The best example of SitRep can be found in the Enhanced SitRep Mod (that link explains how it works in quite some detail).
For campaign SitRep, there don't appear to be any obvious examples at the moment, sorry!
Contents
Assimilate:
Developer Links
Audio:
- Audio (Sound) – modding guides
- Audio Directory – all audio bundled with the game
- playSound() – play an audio file
- audioAlert(filename,pos,despam) – throttled version of playSound()
Beacons:
- playSound() – allows beacon to appear on map while audio is playing
- addBeacon() – place a beacon on the map
- eventBeacon() – triggered when a beacon is placed
- eventBeaconRemoved() – triggered when a beacon is removed
Messages:
- console() – send a message to the console
- chat() – send a message to other players
- eventChat() – receive a message from another player
- Player Scope – who a message is or was sent to
Videos:
- Video (Cinematics) – modding guides
- Video Directory – all videos bundled with the game
- ??? – need a function to play vids!
- eventVideoDone() – triggered when a video finishes playing
Intel Reports:
- Currently no information on this, sorry!
Â