github ProjectReclaimer/project-reclaimer-releases v0.9.23

3 hours ago

Changes

  • Big dedicated servers keep their frame rate better. A dedicated server now sends the game's packets to players from a separate thread, so the game's own thread no longer waits on each one. Servers with many players spend less of each frame on sending and hold their tick rate closer to 60 a second. Players take turns on that thread, so a burst of packets to one player, such as a joiner catching up, does not delay the others, and a server that falls behind shares the shortfall evenly between its players.

  • Big games spend less time on each player. Every game tick, the game worked out each player's character, armor colors and helmet fire again, and copied the host's whole game setup, maps and scripts included, whenever voice, chat or players' traits needed one hosting setting. That work grew with every player. A player's look is now worked out again only when something about it changes, and hosting settings are read without the copy, so games with many players lag less.

  • Smaller game packets over the internet. Each game packet sent over the internet now carries a 2-byte header instead of 43 bytes of addressing the connection already knows. Players use less upload and download for the same game, which helps most on slow or busy connections. Servers and players must both run this version to play together.

  • Less sound work every frame. Every frame the game re-sent each sound's volume, pitch and speaker mix to the audio system, almost always unchanged. Unchanged settings are no longer sent, which saves the game's main thread a lot of small, locked calls.

  • Unchanged graphics data is no longer sent again. Each frame, Halo 3 sent the graphics driver the values its shaders draw with, and more than half of these uploads repeated exactly what the driver already had. Repeats are no longer sent; the picture stays the same.

    If something looks wrong since this change, such as flickering or parts of the picture drawn with the wrong colors or in the wrong place, set the environment variable RECLAIMER_SEND_ALL_UPLOADS=1 to send everything as before (on Linux, RECLAIMER_SEND_ALL_UPLOADS=1 %command% in Steam's launch options), and let us know.

  • Recorded games no longer stutter every 10 seconds. While a game is recorded for the Theater (Record my games, on unless you turned it off under Settings → Game options → Theater), the game stores a keyframe every 10 seconds for the Theater to skip back to. Each keyframe waited for the frame on screen to finish drawing and held drawing until it was done, so the next frame came a few milliseconds late, more with many objects on the map or a slower graphics card. Keyframes no longer wait for drawing.

  • Everyone in a game needs 0.9.23. Servers admit only players on exactly their own version, so players and servers on 0.9.23 can't play with those on 0.9.22 or older. The server browser's Version column shows a server on another version in red. Update dedicated servers and players together.

Bug fixes

  • Big servers keep their players after a game. 0.9.22 did not fix this for every server: a dedicated server could still send all its players away about 37 seconds after a game ended, most often with 90 or more players, and then let nobody back in. When the server's end-of-game stats took longer than the game allows, the game made the server leave its own session, which ends it for every player. The server now stays and goes on to the next game. Games hosted from Host Game keep their players the same way.
  • Servers that lose every player at once restart within seconds. When every player on a dedicated server dropped at the same moment and the server then let nobody back in, it could stay that way for many minutes: it only restarted once a player had waited a whole minute to get in, and players' games give up after about 17 seconds. It now restarts as soon as a player who tried to join gives up after waiting 12 seconds or more, about 20 seconds after the first try; a working server lets players in within a second or two. A server that is simply empty, or that a player backs out of joining, still stays up.
  • Fix a server crash when a player fires at a target that just left. A server could crash while relaying a shot from a weapon that tracks its target, when that target had just disappeared (for example a player who left). Busy servers with many players joining and leaving hit this most.
  • Character mods downloaded while joining a server show up at once. A character mod downloaded from a server as you joined it could stay missing from Customize and Settings > Mods until the game was restarted, and as that first game began, players playing its characters could show without the armor and colors they chose. The mod now shows as soon as its download finishes, and its characters wear what their players chose from the start.
  • Server logs no longer fill with "Cluster references" lines. Once a dedicated server had loaded a map, its log took eight lines like Cluster references: the loaded state holds no array at … every frame, about 20 MB an hour, and the log rotated away everything else within minutes. Games were never affected, and the lines are gone.
  • Dedicated servers host character mods they have only as character packs. A dedicated server set to host a character mod it had only as character packs, in content/Mods/Downloaded/packs/characters, refused to start: the check before the start looked for packs in another folder and said no customization mod of that name was installed, though the server's games read their packs from there. The check now looks where the games do, and when a name matches no mod it names the folder it looked in.
  • Exit Game closes the game completely. After Exit Game in the game menu, the window closed but the game kept running in the background with no window, using a full processor core, until it was ended by hand; in some setups the next start then did nothing. The game now closes completely. Stopping a server ends it the same way.
  • Custom games open again after leaving a server. After playing on a server, hosting a custom game could stop at "The host is still preparing its map's assets. Try joining again in a moment." and never open the lobby, however often you tried, until the game was restarted. This happened most often when the custom game was on the map the server had been playing. The lobby now opens at once and gets the map ready there, as it does when you pick a map in the lobby, and Start is available once the map is ready.
  • Flipping through maps in a custom game lobby no longer runs out of memory. Picking one big map after another in a custom game lobby, most of all with customization mods, prepared every map you picked at once and kept preparing the ones you had moved on from, which could run the game out of memory. The lobby now prepares only the map picked last, stops preparing a map once you pick another, and says when it is still stopping one. Start and joins use the lobby's preparation of the map rather than starting another.
  • Mods' own passenger animations for the transport Warthog and Scorpion. Mod maps that give players their own animations for the transport Warthog's rear seats and the Scorpion's side seats, such as The Battlefront Pack's, played the Hornet's passenger animations there instead since passenger seats opened to players. Those maps now keep their own animations, and players can still ride those seats. Customization characters without those animations ride them with the Hornet's, as players do on Halo 3's maps and on mods without their own animations for these seats.
  • Films of games with customization packs play back. In the Theater, a film of a game whose players played as characters from customization packs stopped right away with The film's playback went out of step with its recording: its playback made the players Halo 3's own Spartans and Elites, and a campaign film's mission left the packs' characters out. Films now keep every player's character, armor and colors through the game, and where each character came from, and play back with the same characters from the same packs or mods, even after you turn a mod's characters down. Films recorded before this fix don't say what each player played as, so those of games with customization packs still stop.

Install

The game client requires Halo: The Master Chief Collection with Halo 3 installed; no game files are included.

Double-click project-reclaimer-client-v0.9.23.exe to start the game. It finds Halo 3 in any Steam library and opens without a console window; its log is Documents\My Games\Project Reclaimer\Logs\client.log.

For remote server administration, double-click reclaimer-rcon-v0.9.23.exe, enter the host, RCON port and password, and connect. The RCON client needs no game installation. See the attached RCON.md for setup and commands.

To make a customization mod, double-click reclaimer-customization-editor-v0.9.23.exe, open the mod's folder and pick each player character's armor, colors and camera bones. It writes the mod's customization.json.

Don't miss a new project-reclaimer-releases release

NewReleases is sending notifications on new releases.