Lobby protocol - move player from battle to battle

Lobby protocol - move player from battle to battle

For the discussion of infrastructure improvements and changes.

Moderator: Moderators

User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Lobby protocol - move player from battle to battle

Post by Licho » 04 Jul 2011, 22:59

To implement more advanced features - quickmatching, automatic game split, automatic game setup based on personal preferences - ZK team would like ability to move players from one battle to another.

Requested feature:
- allow host or bot with mod/admin persmissions to move user into a battle
0 x

User avatar
aegis
Posts: 2456
Joined: 11 Jul 2007, 17:47

Re: Lobby protocol - move player from battle to battle

Post by aegis » 04 Jul 2011, 23:10

imo zero everyday protocol features should require admin privileges, and nothing but keeping order should require mod privileges.

for the command itself, implementation can be done with an assumed voluntary system via an INVITE command and lobby implementation like "[ ] always accept battle invites from ZKBot"

or through a set of "service" permission levels, which could be segmented further into something like, "battle" service, "channel" service, "player" service, etc...
0 x

User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: Lobby protocol - move player from battle to battle

Post by Licho » 05 Jul 2011, 01:29

For the feature to make any sense, it must not be voluntary - it cannot ask user! User "enables" the system by joining specific autohost - like "ranked 1v1 battles" or "FFA battles".

Asking user would defeat purpose of the system - which is to assign user into battle without his interaction (he should be able to AFK while quickmatching shuffles him around several candidate battles).
Last edited by Licho on 05 Jul 2011, 01:34, edited 1 time in total.
0 x

User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7015
Joined: 16 Nov 2004, 13:08

Re: Lobby protocol - move player from battle to battle

Post by zwzsg » 05 Jul 2011, 01:33

aegis wrote: and lobby implementation like "[ ] always accept battle invites from ZKBot"
aegis meant: Make lobby tickbox to auto accept invites!
0 x

User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: Lobby protocol - move player from battle to battle

Post by Licho » 05 Jul 2011, 01:35

I understand it, but if there is checkbox thats default off (and setting too obscure for general nub), why to even go through hassle to support other lobbies than ZKL?
0 x

User avatar
aegis
Posts: 2456
Joined: 11 Jul 2007, 17:47

Re: Lobby protocol - move player from battle to battle

Post by aegis » 05 Jul 2011, 03:35

a "make this permanent" checkbox on the "you've been invited to join a battle" prompt wouldn't exactly be an obscure setting for nubs

if you want to appeal to nubs, nothing wrong with making them use ZK as well...

also, invite wasn't the only alternative I gave
0 x

User avatar
Beherith
Moderator
Posts: 4934
Joined: 26 Oct 2007, 16:21

Re: Lobby protocol - move player from battle to battle

Post by Beherith » 05 Jul 2011, 06:58

Ah Licho you crafty :twisted:
Main spam will no longer be needed if you can just look at the ingame time of anyone joining, and instantly push them into a battle...
0 x

User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: Lobby protocol - move player from battle to battle

Post by Licho » 05 Jul 2011, 10:56

Yeah checkbox on dialog would work fine.

And ability to force to channel would also be nice- for planetwars clan channels.
0 x

User avatar
Pxtl
Posts: 6112
Joined: 23 Oct 2004, 01:43

Re: Lobby protocol - move player from battle to battle

Post by Pxtl » 05 Jul 2011, 16:04

I could see invite spam being annoying. I'd prefer some kind of pure opt-in approach, although obviously you'd need the opt-in system to be highly visible to encourage players to opt-in - messaging a bot in a chat-room isn't good enough.

Ideally (and this is would be too much work to implement, so it's not a realistic suggestion, but this is how I'd want it to work) there would be a special class of rooms that function as a halfway-ground between battle-rooms and chat-rooms. Call them metabattleroomes.

Membership in metabattlerooms are exclusive (like a battleroom, you can't be in multiple metabattlerooms at a time) and they appear in the "battles" list instead of the "chat rooms", but otherwise they behave like chat rooms - any map/mod/game settings metadata is purely optional and just for organization purposes.

Membership in a metabattleroom allows the metabattleroom's owner to assign you into battlerooms. You cannot join a battleroom while in a metabattleroom, but if the metabattleroom bot *assigns* you into a battleroom you will remain in the metabattleroom so you can still chat in there. Battles created by a metabattleroom can be visible to the public, visible only to members, or completely hidden from the public.

For non-exclusive access to a metabattleroom you can join as a spectator - in this mode, you can be in many metabattlerooms at the same time and spectate the "visible-only-to-members" battles, but you can't play and won't be invited to a battle.

So a player can join the PlanetWars metabattleroom and do their planet wars stuff.

Or they can join a mod-specific matching service metabattleroom. Or a general, multi-mod matching-service battleroom, although that one won't have the nice mod metadata listed in the main game list.
0 x

User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: Lobby protocol - move player from battle to battle

Post by Licho » 05 Jul 2011, 16:32

Its not an invite.. its low level service for bot only - for one specific bot meant to handle specific task of quickmatching..

Ordinary user wont be able to send invite!

And yes I plan to create "metabattleroom" - thats needed for backwards compatibility with SL.
0 x

Satirik
Lobby Developer
Posts: 1688
Joined: 16 Mar 2007, 18:27

Re: Lobby protocol - move player from battle to battle

Post by Satirik » 05 Jul 2011, 19:18

it's an invite, you can't just move the user on the server and not on the client, you have to tell the client to move to another battle, and it doesn't have to move ... so it's just an invite command that could be automatically accepted if it comes from admin bot and that's a good idea, could auto accept invite from friends and ignore all other etc
0 x

User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7015
Joined: 16 Nov 2004, 13:08

Re: Lobby protocol - move player from battle to battle

Post by zwzsg » 05 Jul 2011, 19:42

Meta battleroom and opt-in autoinvite sounds way too much complicated and confusing for players.

I'd say just ignore battleroom protocol and do your own ZK thing.
0 x

User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: Lobby protocol - move player from battle to battle

Post by Licho » 05 Jul 2011, 20:27

Satirik technically you can move client now from the server alone - using forged messages - but thats a hacky way.

Zwsg its not so complicated - "meta" battle room is just ordinarry battleroom that never starts a game .. instead people are auto moved from ther eto final battle or back. Thats all there is..
0 x

User avatar
Pxtl
Posts: 6112
Joined: 23 Oct 2004, 01:43

Re: Lobby protocol - move player from battle to battle

Post by Pxtl » 05 Jul 2011, 21:00

zwzsg wrote:Meta battleroom and opt-in autoinvite sounds way too much complicated and confusing for players.

I'd say just ignore battleroom protocol and do your own ZK thing.
I mean that you can choose to opt-in by joining the room.

Basically, I want to play Planetwars. So I join the Planetwars metabattleroom (which looks like joining any other battleroom except that it never starts a game and has no player cap). By joining this metabattleroom, I agree to be redirected to an *actual* battleroom by the Planetwars bot.

See? The idea is to make redirection as seamless and intuitive as possible for the user. This way the user is just joining a battle like any other, and where they kick around until they're assigned into a game.

It sounds like Licho has something similar in mind, which, obviously, I like.

You can use this for any similar metagaming - for tournaments, ladders, matchmaking, etc. You join the tourney metaroom and the bot handles the details from there.
0 x

tragic
Posts: 4
Joined: 08 May 2011, 12:00

Re: Lobby protocol - move player from battle to battle

Post by tragic » 05 Jul 2011, 22:26

It would make the most sense to build this into the server, so it becomes a standard, lobby supportable feature.

Add lobbyprotocol commands such as FINDBATTLE with settable filters and let the lobbys show a better ui than joining a "metabattleroom".

Add SPLITBATTLE command for battleroom host to initiate.
0 x

User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: Lobby protocol - move player from battle to battle

Post by Licho » 06 Jul 2011, 00:47

Its not about "finding" its about assigning people in best possible combination.
For this you need central agent who knows it all - in this case bot who knows preferences set by each player - for example on website - or indicated by joining some "meta" room.

Central agent then has to shuffle people around possibly multiple times..

We already had simpler quickmatching implement - evne such that knew intentio nof other people but it was never as good as it could be with proper coordinator.
0 x

abma
Spring Developer
Posts: 3548
Joined: 01 Jun 2009, 00:08

Re: Lobby protocol - move player from battle to battle

Post by abma » 06 Jul 2011, 03:05

why to create a new battle/move players arround? why not directly start game if there are enough players ready? (this would be really quick! :)

this could work like this: the agent asks the user a few questions and start the game, when enough users are found.

imo moving players arround has some problems:
* what if one of the players disconnects? move the already moved players back?
* imo joining / leaving a battle automaticly is very confusing: "where are the other guys?" "why am i alone here?" "why doesn't the other respont" ...? if users stay in one room/battle, things would be much more clearer.


+++1 for quickmatching!
0 x

User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: Lobby protocol - move player from battle to battle

Post by knorke » 06 Jul 2011, 03:31

why not directly start game if there are enough players ready? (this would be really quick! :)
because players are stupid. Why do people join a running game to wait for it to finish until there are as many waiting specs as players? Instead of just starting a new game.

I dont understand the talk about "accepting invite"?
If INVITE is to be some protocoll command send by the server then the client has no yes/no choice. It would merely be a notification to the client that something happend server side, similiar to the message a client gets on being muted or kicked.
I think that is what Licho wants?
It would make the most sense to build this into the server, so it becomes a standard, lobby supportable feature.
Wouldnt that mean that every time the quickmatching system is fine tuned, the server would have to be restarted? It seems easier to give bots some new powers (like this INVITE thing) and then let the bot makers implent the actual matchfinding logic.
0 x

abma
Spring Developer
Posts: 3548
Joined: 01 Jun 2009, 00:08

Re: Lobby protocol - move player from battle to battle

Post by abma » 06 Jul 2011, 03:52

@knorke:

looks like my explaination was bad: i thought about that:

an authost (or maybe just a channel with a bot?) that waits for players who selected the game settings they want (like 1v1), and if there are enough players, a dedicated host will be started and only those two players get the game-started + connect-to command. all others will stay there.
0 x

User avatar
aegis
Posts: 2456
Joined: 11 Jul 2007, 17:47

Re: Lobby protocol - move player from battle to battle

Post by aegis » 06 Jul 2011, 04:30

metabattle sounds doable:

give bots the ability to open a metabattle i.e. "2v2 quickmatch". the server could even allow a single bot to open more than one of these (potentially simplifying infrastructure)

once a player joins a metabattle, the metabattle host is able to move them into any battle until any of the following happens:
  • the player leaves their current battle (whether this is the metabattle or a battle they were moved into)
  • the player's current battle is closed
  • the player leaves the server
if a battle finishes or empties, the metabattle host can move the player back into the metabattle for chat/idling or w/e

on the clientside, this would just require implementation of a "move me into target battle" command (which can be handled in any way, including an option to be prompted before switching battles for control freaks)

on the serverside, this would maybe just require a third battle type (currently we have normal and replay) mapping client <--> metabattle, and an incoming and outgoing command for GETINTOTHATBATTLEOVERTHEREGOODSIR

on the botside, it should theoretically be able to host multiple of them, and would just need to track when clients entered their metabattle or exited any battle or the server to know when to shuffle

with a third battle type lobbies can even separate metabattles from normal in some way
0 x

Post Reply

Return to “Infrastructure Development”