Odamex v10.0.0 Released
Feb 15, 2022 1:01:12 GMT -5
Post by 40oz on Feb 15, 2022 1:01:12 GMT -5
Oldschool multiplayer source port Odamex got a big nice update today.
Download it from Sourceforge or Github.
Here's a list of big features pulled from Alexmax's announcement post
Horde Gamemode
A Boot IWAD Selector and IWAD Manager
Kill Feed Obituaries
A 21st century server protocol
Pistol-starting support (option in the main menu)
A baseline-based netcode
New BOOM Compatibility
ZDoom compatibility
SR50 in a can
Download it from Sourceforge or Github.
Here's a list of big features pulled from Alexmax's announcement post
Horde Gamemode
Odamex now has a horde gamemode, which will be familiar to anyone who has ever played Killing Floor, Halo's Firefight mode, or Unreal Tournament's Invasion gamemode. This gamemode is new and unique to Odamex, and is not compatible with Invasion maps from Skulltag/Zandronum.
Monsters spawn into the map in waves, and it's up to you and a few buddies to continuously thin their ranks until a big boss spawns in. Beat the boss and you win the wave, reach the wave limit and you win the level. Sounds easy, but the monsters spawn relentlessly only giving you the occasional breather, and the bosses have special boss properties that make them far more of a threat.
There are many ways to play Horde. Play it in single-player straight from "New Game" or join up with a few friends online. Play it on UV skill for the intended experience or dial the skill down a few notches if things get a little too hectic. Online servers can either use either limited or unlimited lives. There are also numerous variables that can adjust the size of the horde, the length of waves, and more.
However, perhaps the most unique thing about Odamex Horde is that the horde maps and monster wave configurations are easy to make and completely separate. If you want to make a map, you can use whatever map format you prefer and no ACS knowledge is necessary, just place a few things and you're done.
Alongside Odamex 10.0 we are releasing our Odamex Horde map pack, which is as much an exploration of many different themes and shapes of Horde map as it is a selection of hellspawn-filled tempests. This map pack also comes with a number of popular custom monsters like Arachnorbs, Stealth Aliens, and Suicide Bombers, with a few WAD-only wave defines to show them off in.
Special thanks to Scuba Steve for providing us a Supply Cache sprite. Special thanks goes to MTrop for DECOHack, which significantly eased the addition of custom monsters into Odamex Horde. For the curious, the DECOHack source file had been included in the WAD.
Monsters spawn into the map in waves, and it's up to you and a few buddies to continuously thin their ranks until a big boss spawns in. Beat the boss and you win the wave, reach the wave limit and you win the level. Sounds easy, but the monsters spawn relentlessly only giving you the occasional breather, and the bosses have special boss properties that make them far more of a threat.
There are many ways to play Horde. Play it in single-player straight from "New Game" or join up with a few friends online. Play it on UV skill for the intended experience or dial the skill down a few notches if things get a little too hectic. Online servers can either use either limited or unlimited lives. There are also numerous variables that can adjust the size of the horde, the length of waves, and more.
However, perhaps the most unique thing about Odamex Horde is that the horde maps and monster wave configurations are easy to make and completely separate. If you want to make a map, you can use whatever map format you prefer and no ACS knowledge is necessary, just place a few things and you're done.
Alongside Odamex 10.0 we are releasing our Odamex Horde map pack, which is as much an exploration of many different themes and shapes of Horde map as it is a selection of hellspawn-filled tempests. This map pack also comes with a number of popular custom monsters like Arachnorbs, Stealth Aliens, and Suicide Bombers, with a few WAD-only wave defines to show them off in.
Special thanks to Scuba Steve for providing us a Supply Cache sprite. Special thanks goes to MTrop for DECOHack, which significantly eased the addition of custom monsters into Odamex Horde. For the curious, the DECOHack source file had been included in the WAD.
A Boot IWAD Selector and IWAD Manager
Starting Odamex for the first time now gives you a selection of all IWADs the port has found. You can select and launch any one you prefer.
Is Odamex not finding your WAD files? The launcher also allows you to manage your `waddirs` setting allowing you to add, remove, or move around directories that will be searched for WAD files.
The Boot window is supported on Windows, macOS and Linux.
Is Odamex not finding your WAD files? The launcher also allows you to manage your `waddirs` setting allowing you to add, remove, or move around directories that will be searched for WAD files.
The Boot window is supported on Windows, macOS and Linux.
Kill Feed Obituaries
Odamex now has a brand-spanking new obituary feed in the top right hand corner of the screen. This feed is much like the ones you might find in modern FPS games - instead of listing a textual obituary, the means of death is representated with player names and icons instead.
By default, old text obituaries no longer show up in the message line in the top left of the screen, although they do appear in the dropdown console. If you prefer the old way, you can re-enable message line obituaries and disable the killfeed from the options menu.
All of the obituary icons are brand new art courtesy of Scuba Steve. Thank you for your contribution!
By default, old text obituaries no longer show up in the message line in the top left of the screen, although they do appear in the dropdown console. If you prefer the old way, you can re-enable message line obituaries and disable the killfeed from the options menu.
All of the obituary icons are brand new art courtesy of Scuba Steve. Thank you for your contribution!
A 21st century server protocol
All of Odamex's server-to-client messages are now contained in shiny new protocol based on Google's Protocol Buffers. We can now add new network messages and add fields to existing messages without breaking network protocol, allowing us much more flexibility to make protocol changes in minor releases.
One nice side effect of this is now that we can accurately measure how big a message is going to be before we write it, we can now fit many more messages into one packet. This means fewer opportunities for packets to be dropped or delivered out-of-order. As you might be able to tell from the below screenshot, it's also great help when debugging netdemos.
In the process of rewriting, many unused and "reserved" messages were removed. Others were consolidated or simplified. A few messages were even hoisted into the header of each packet as a fundamental part of the new protocol. Either way, we expect this new protocol to function as base to further improve the netcode in future.
One nice side effect of this is now that we can accurately measure how big a message is going to be before we write it, we can now fit many more messages into one packet. This means fewer opportunities for packets to be dropped or delivered out-of-order. As you might be able to tell from the below screenshot, it's also great help when debugging netdemos.
In the process of rewriting, many unused and "reserved" messages were removed. Others were consolidated or simplified. A few messages were even hoisted into the header of each packet as a fundamental part of the new protocol. Either way, we expect this new protocol to function as base to further improve the netcode in future.
Pistol-starting support (option in the main menu)
You can now play through the game starting from a pistol on every level-switch. There are many ways to activate this feature:
- You can activate this feature from the difficulty selection menu when starting a new game.
- g_resetinvonexit can be used as a console variable.
- The `-pistolstart` command line switch is also supported, for parity with prBoom.
- You can activate this feature from the difficulty selection menu when starting a new game.
- g_resetinvonexit can be used as a console variable.
- The `-pistolstart` command line switch is also supported, for parity with prBoom.
A baseline-based netcode
Odamex has revamped in a major its way of sending monsters and objects to the client in a way that should feel much more "solid" with fewer mispredictions. Based on an idea from Quake, we now send over a "baseline" containing an initial set of data to each client, and then for every subsequent update we only send over the fields that have changed between the baseline and the current time. On average, this new baseline approach to object persistence is not only more accurate than the old 0.9 method, but also uses less bandwidth.
New BOOM Compatibility
We are quite eager to support the new Extended-vanilla and BOOM-based standards that have been coming to fruition as of late. To that end, we have implementations of the following:
- UMAPINFO support. If your WAD has a UMAPINFO lump, Odamex should be able to parse and run it. Thanks to DeathEgg for the implementation!
- DEHEXTRA support. More frames, more sprites, more sounds, more of everything. Thanks to Ch0wW and KBlair for the contribution.
- MBF21 support, adding support for both the map extensions and extra DeHackEd codepointers, plus arguments. Again, you can thank Ch0wW and KBlair for the tag-team.
- UMAPINFO support. If your WAD has a UMAPINFO lump, Odamex should be able to parse and run it. Thanks to DeathEgg for the implementation!
- DEHEXTRA support. More frames, more sprites, more sounds, more of everything. Thanks to Ch0wW and KBlair for the contribution.
- MBF21 support, adding support for both the map extensions and extra DeHackEd codepointers, plus arguments. Again, you can thank Ch0wW and KBlair for the tag-team.
ZDoom compatibility
That said, we don't want to forget about ZDoom features either.
- MAPINFO now supports episode definitions. Thanks to DeathEgg for the implementation.
- Additionally, MAPINFO now supports boss actions, and special handling of EXM8/E4M6/MAP07 is now handled completely through this feature. Again, thanks to DeathEgg for the implementation.
- UsePlayerStartZ now works in ZDoom-flavored MAPINFO. Thanks to Ru5tk1ng for the contribution.
- Thing_Stop was added as a line special and ACS function. Thanks to Ru5tk1ng for the contribution.
- A long list of ZDoom line specials have been added, courtesy of DSDA-Doom. Thanks to KBlair for the contribution.
- MAPINFO now supports episode definitions. Thanks to DeathEgg for the implementation.
- Additionally, MAPINFO now supports boss actions, and special handling of EXM8/E4M6/MAP07 is now handled completely through this feature. Again, thanks to DeathEgg for the implementation.
- UsePlayerStartZ now works in ZDoom-flavored MAPINFO. Thanks to Ru5tk1ng for the contribution.
- Thing_Stop was added as a line special and ACS function. Thanks to Ru5tk1ng for the contribution.
- A long list of ZDoom line specials have been added, courtesy of DSDA-Doom. Thanks to KBlair for the contribution.
SR50 in a can
The widely used SR50 bind alias is now a built-in feature of the engine, available with a new setting: "in_autosr50", which is enabled by default. This does not require rebinding any keys, and simply changes `+strafe` to add the boost you get from turning left or right with strafe on automatically.
...okay whew, now we're to the bullet point features.
...okay whew, now we're to the bullet point features.