RoomCode

RoomCode

250 Downloads

mods did NOT trigger from the lounge even though the screen was present

jimconner opened this issue ยท 2 comments

commented

User feedback from @solacd...

All the adverstised ruleset changes appeared to work properly (AOE, card changes) but I note that the mods did NOT trigger from the lounge even though the screen was present. I had to exit, restart and run directly from Demeo to get the mods to work.

Apparently mods do not trigger when selected from within the hobby shop. We should investiagte.

commented

This could add weight to my earlier (and hopefully incorrect) speculation that the host of a Hangouts game comes down to a race condition on who can reserve a room first.

Explored this a bit tonight, but more investigation needed.

commented

Results from further exploration, and update on fix:

In addition to reports starting coming in about HR not working when starting a game from Hangouts, others were saying HR was self-activating when they joined a game in Hangouts where they weren't the host.

After some investigation, we found that the culprit is how Hangout games select the host. When players start a game from within Hangouts, the person who starts the table isn't automatically the host. Instead, the host+clients race out of hangouts and into the not-yet-created game room. First one to successfully create the room becomes host, and all others become regular clients.

Thus, sometimes an HR-modded player starts a modded game inadvertently, and other times they want to host a game but their host seat gets taken.


There's no mechanism I could find by which to ensure clients don't steal the host's seat. Delaying the local player so as to guarantee they don't take host if they don't mean to is the easy half of it.


The process for exiting hangouts, reloading the lobby scene, and finally attempting to create a game is a long one. On my PC, it takes about 5.5 seconds from the moment I send the start signal to other players to get a new room registered. And about +1 second if it's the first time I've created a game that session.

What I've resorted to is creating a more optimal path from Hangouts to room creation when a HR-player wants to host a game. E.g.,:

  • I frontload as much of the computation before sending out the signal to players that they should race to the room. Unmodded clients will do all this as part of the race, while the HR modded player has it already completed.
  • I collapsed what is usually a dozen or so stackframes to less than half.
  • I forego any visual exit/entrance fading effects, and skip corresponding audio effects.

I've been able to shave off about 1 second from my time. Down from 5.5 seconds to 4.5. Though, I'm not sure this would be enough for everyone. But we'll see.


We've also considered taking back host once the game begins, but controlling pre-game sequences is pretty important for enabling a lot of features.