Releases: phoenixprojectsoftware/Aura-SE
Aura SDK
Welcome to the Aura 2.3 SDK!
This document walks you through getting started with the Aura 2.3 SDK, its new technologies, and its new features. Aura 2.3 was developed for use in ZAMNHLMP 2.9, though these days, The Phoenix Project Software now has plans to use Aura in other Half-Life 1 multiplayer mods – which is what it’s always been intended for. Let’s dive in!
Notable changes
Re-organised file-structure
The first thing you’ll notice about the Aura 2.3 SDK is that the file-structure has completely changed.
- Assets – this folder contains images used in the GitHub Readme doc.
- MapFiles – the Room Map Format files for ZAMNHLMP’s multiplayer maps
- ModelSources – some model sources we’ve used in ZAMNHLMP
- SourceCode – the Aura Server-side source code.
- TextureSources – original renders & Photoshop documents for certain textures in ZAMNHLMP.
Improved shield regeneration logic
In the player source code, the shield (formerly “suit energy”) regeneration logic has been updated to become more stable. Furthermore, we emit sounds depending on the state of the player’s shield.
if (pev->armorvalue <= 0)
{
if (!isShieldEmpty && (currentTime - lastShieldSoundTime > 1.0f))
{
EMIT_SOUND(ENT(pev), CHAN_AUTO, "player/shield_empty.wav", 0.85, ATTN_NORM);
EMIT_SOUND(ENT(pev), CHAN_AUTO, "player/shield_depleted2.wav", 0.7, ATTN_NORM);
isShieldEmpty = true;
lastShieldSoundTime = currentTime;
}
}
else
{
if (isShieldEmpty)
{
STOP_SOUND(ENT(pev), CHAN_AUTO, "player/shield_empty.wav");
isShieldEmpty = false;
}
}
The above code emits a sound (with a 1 second delay between each frame to not distort the sound) when the player’s shield is zero. This alerts the player properly that their shield has depleted and makes them more aware, which didn’t happen in Aura 2.2.
New technologies
Mapcycle selector
In Aura 2.2 / ZAMNHLMP 2.8, we wanted to move our mapcycle files to a different folder in order to reduce clutter in the main game folder. However, the mapcyclefile command still wanted “mapcycles/file.txt” as its value instead of “file” due to the command being engine-side. However, this has been remedied with a rather hack-ish solution in the gamerules code.
// Sabian: Get the user input for mapcyclefile
char userInputMapCycleFile[256];
char* userInput = (char*)CVAR_GET_STRING("mapcyclefile");
// Sabian: Remove ".txt" if present in user input
size_t len = strlen(userInput);
if (len > 4 && strcmp(&userInput[len - 4], ".txt") == 0) {
userInput[len - 4] = '\0'; // Truncate the ".txt" part
}
// Sabian: Format the path as "mapcycles/%USERINPUT%.mc"
sprintf(userInputMapCycleFile, "mapcycles/%s.mc", userInput);
Aura EX: the “experimental” branch
If you’ve cloned from Git you may have noticed the new “experimental” branch which we also refer to as Aura EX. Aura EX contains work-in-progress implementations and features that we want to try but don’t feel confident with them enough for them to be in the main game just yet. If you want to use Aura EX, switch the branch to “experimental” and build. Aura EX works just fine on ZAMNHLMP 2.9.x for now.
Aura EX: initial co-op gameplay
The main feature currently of Aura EX, which is also partly implemented in Aura 2.3 is co-op gameplay. Nearly all the monster NPCs now have logic to only spawn if two conditions are met:
- The new command sv_aura_coop is set to 1.
- Their targetname in the map is “FIREFIGHT”.
Furthermore, experimentally, the monster_hgrunt entity is coded to respawn in its starting position on the map in Aura EX. This is not fully coded in and currently the monster freezes in place until resuming its AI for a few seconds after its death.
Our implementation of co-op gameplay means that map-makers can spawn as many monsters in the map as possible and it won’t interfere with standard gameplay.
If you look at the Room Map Formats for Crossfire and Subtransit you will see that these are full of nodes and monsters ready to be used in Aura EX in its co-op condition.
Aura SDK
What's Changed
- Infinite Ammo by @BlueNightHawk in #20
- CVAR for trigger_cdaudio by @BlueNightHawk in #21
- Suit Energy Regeneration by @BlueNightHawk in #22
- Remove damage when player has armor + Suit regen sound tweak by @BlueNightHawk in #23
New Contributors
- @BlueNightHawk made their first contribution in #20
Full Changelog: 2.0...2.2
Aura SDK
2.0 Update to SDK 2.0
Aura SDK
1.1 Fix a minor build error
Aura SDK
1.0 Add Credits