Can a game determine whether a player is online?

Game development with Board Game Arena Studio
Post Reply
User avatar
Dislexsick
Posts: 14
Joined: 30 March 2020, 08:09

Can a game determine whether a player is online?

Post by Dislexsick »

Hi,

Wondering if this is possible, as I'm making a suggestion for Oh Hell to have auto-play when a player has no choices to make (e.g. a singular card they could play) -- Except the game automatically submitting a move for a player that's offline would expose information to other players.

This could happen if someone was looking at the table after they made their own move and saw a move for an offline player.
In extreme cases one might see a move made X minutes ago and check the player profile, if their "Last seen" value is greater than X we know that they didn't make that move themself.

This got me thinking: If the game could detect when a player was online vs. offline and pause the auto-play while the player is offline that would greatly reduce the information leakage to be almost imperceivable.

I'm currently on a bunch of Arena turn-based Oh Hell! games, and often I'm entering a table to simply click the singular highlighted card that I'm allowed to play. To me it'd be handy if when I login all of these tables auto-played and happened at once; and there'd not be a feasible way for opponents to know that this was an automated move as if they looked at me they'd see I'm online.
User avatar
robinzig
Posts: 459
Joined: 11 February 2021, 18:23

Re: Can a game determine whether a player is online?

Post by robinzig »

I'm not sure I see the point. The main advantage of auto-play for me is to avoid the other players having to wait for a player to be online when they don't actually have a decision to make (which mainly applies to turn-based games). As you acknowledge, this exposes information unless it's already known to *all* players that that player doesn't actually have a decision (example: in a worker placement game where the player has no workers left) - otherwise information is given away.

So what you're asking for is a feature that I think could still be potentially open to abuse (if opponents see that you moved in 3 games all at the same time, within 1 second of logging on, they can probably guess these were "auto plays"), and only saves the other players a few seconds of waiting. (Or saves the returning player a miniscule amount of effort.) I might be missing something but this really doesn't sound like a great idea to me.

Having said that, I don't know the answer to your technical question (I'm still very new to BGA framework myself) - it might be possible. I'm just saying I don't think using it for the purpose you describe is a particularly good idea.
User avatar
Tisaac
Posts: 2736
Joined: 26 August 2014, 21:28

Re: Can a game determine whether a player is online?

Post by Tisaac »

robinzig wrote: 23 May 2021, 10:00 I'm not sure I see the point. The main advantage of auto-play for me is to avoid the other players having to wait for a player to be online when they don't actually have a decision to make (which mainly applies to turn-based games). As you acknowledge, this exposes information unless it's already known to *all* players that that player doesn't actually have a decision (example: in a worker placement game where the player has no workers left) - otherwise information is given away.

So what you're asking for is a feature that I think could still be potentially open to abuse (if opponents see that you moved in 3 games all at the same time, within 1 second of logging on, they can probably guess these were "auto plays"), and only saves the other players a few seconds of waiting. (Or saves the returning player a miniscule amount of effort.) I might be missing something but this really doesn't sound like a great idea to me.

Having said that, I don't know the answer to your technical question (I'm still very new to BGA framework myself) - it might be possible. I'm just saying I don't think using it for the purpose you describe is a particularly good idea.
It's definitively doable, since the the "online" status is available on game ui, so you could send that info to server if you want. But i agree that it does not sound like a good idea
User avatar
Dislexsick
Posts: 14
Joined: 30 March 2020, 08:09

Re: Can a game determine whether a player is online?

Post by Dislexsick »

robinzig wrote: 23 May 2021, 10:00 only saves the other players a few seconds of waiting. (Or saves the returning player a miniscule amount of effort.)
I'm not sure I can agree on either of these fronts about it. You have correctly noted my question was a technical one, I'm not originally here to spruik the merits, or lack of them as it might be, for my idea - now you;ve got me thinking about the ideal implementation of such a system, and how you'd seal off as many information leaks as possible.

I am on ~60 tables at the moment; in the morning on my commute to work I might only clear 30-40 of them in the 20 minutes I have. I daresay 5-10 of them tend to be the moves I'm talking about; for me there is a gain of HOURS for my opponent as all I need to do is pop online and a table I may never have arrived at, in the time I had to take care of a few tables, may have been taken care of.

As the returning player I would argue in the grand scheme of things it could indeed be described as miniscule amounts of effort, but it's still repeated, low-value, annoying busy-work to do -- individually it's not much effort; but 5-10 tables everytime you haven't been on for ~6-8 hours adds up..

Also, it's not just coming online, but being online -- For instance as I wrote this post my tables could have had useless turns dispatched.
robinzig wrote: 23 May 2021, 10:00 if opponents see that you moved in 3 games all at the same time, within 1 second of logging on
While I will note this is technically feasible this particular case is so mitigated I don't believe it to be a feasible vector to get that info.

I don't see how the opponent would see this reliably
The timestamps that are shown in game logs are rounded to a minute
The opponent would need to be actively watching both the player (to see a change in their online state) and also all X tables/have checked all X tables before the player could have feasibly made a move at those tables.
For sufficiently high values of X the confidence this was automated goes up -- e.g. For X = 3: I could easily do a move each on three or four different tables in one minute*; and the logs to this would look the same as an automated move -- An observer coming in just after this couldn't feasibly deduce if this was a person or automated.
If X was 10 though, perhaps not... but then again the observer has to cross-reference moves made on 10 tables to come up with that conclusion.

I see that as in the "Sure, it exists as a vector, but it's so niche it would never be a problem" bucket tbeh.

This is also defeated trivially by a slight random delay on this occurring and/or natural de-sync of the events on tables (The events happening on one table do not share a global timer/sync to them) and/or the system that detects the player is online mightn't actually be real time, but only checking at an interval.


* Why could I do this much faster than the speed I noted earlier in my post? First example is on mobile, in a distracted environment, and is talking about all my tables, including ones where I have to actually make decisions -- At the upper end some of those tables may take a minute or two for a move. Second example assumes I'm on my PC, and the problem tables appear back to back -- making it Next Table > Click the highlighted card > Repeat.
User avatar
Tisaac
Posts: 2736
Joined: 26 August 2014, 21:28

Re: Can a game determine whether a player is online?

Post by Tisaac »

Hum not sure to follow the whole thing : it would be doable only if someone else is making an action so they would watch the game and see if you are online at that moment easily. It's not some kind of cron task that would run once you got connected so I agree with robinzig on that one, it's not worth the dev time (which does not means you should not take time to developp it if you really want to)
Post Reply

Return to “Developers”