Skip to content

v0.2.1

Choose a tag to compare

@k3sra k3sra released this 07 Aug 11:16
· 35 commits to main since this release
0f3e47e

Restart the game after this installs.

This release is about one thing: nothing should take longer than a few seconds, and nothing should be able to hang.

Why everything was slow

The loading screen in v0.2.0 hid the lobby behind it. The lobby was also carrying the mechanism the whole mod uses to run work on the game's thread, and a hidden widget stops feeding it. So the mod's own loop lost seconds at a time.

That single fault caused three of the things you saw: a five second countdown taking over a minute, the bar crawling between steps, and CANCEL doing nothing. The cancel button was drawn and was enabled; the loop that reads button presses was the thing that had stopped running.

Why joining could hang forever

  • Joining a lobby had no time limit at all. Every other step had one. If Steam never confirmed the entry, the session sat there until the game was closed. It now gives up after fifteen seconds and says why.
  • The greeting to the host was sent once. If it or the reply went missing, you waited out the full timeout and then failed, while the host's screen showed you as having arrived. It is repeated every two seconds now.
  • Appearing on the host's roster now counts as being let in. The acceptance and the roster travel separately and either can go missing. If you can see yourself in the lobby, you are in it.
  • Picking a server after backing out of another one could wait on the lobby you had just left. Entry is now matched against the lobby you actually asked for.

Why the steps were slow

Entering a lobby and every connection change were being waited for rather than asked about. The mod now asks Steam directly every tick instead of waiting to be told.

Also in this release

  • The countdown is timed against the clock, so nothing can stretch it
  • A hundred loading lines instead of a sentence describing what the title already says
  • A server nobody has named is advertised under its host's name instead of reading "PLAYER"
  • Ping shows as unmeasured rather than as 0ms. A Steam lobby search does not return a round trip, so every server was showing the best possible number. Real ping estimation is the next piece of work

Install

Copy version.dll, MultiplayerEvolved.dll and the MultiplayerEvolved folder into Halo Campaign Evolved\Meteorite\Binaries\Win64\. Everyone you play with needs the same version.