Midgame team-joining concept discusison - Page 2

Midgame team-joining concept discusison

Various things about Spring that do not fit in any of the other forums listed below, including forum rules.

Moderator: Moderators

User avatar
SinbadEV
Posts: 6475
Joined: 02 May 2005, 03:56

Re: Midgame joining concept discusison

Post by SinbadEV »

It should default to being off unless the game specifically allows it and the players at match creation choose to allow it... and do so in a way that the engine has a way of blocking players from joining at all if the match doesn't support the feature... and implementation would need to bridge to the lobby to facilitate new players knowing if they have the option of joining to begin with.
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: Midgame joining concept discusison

Post by Silentwings »

SinbadEV wrote:...
Sorry, but I think you understand ~nothing of what's happened here. Let me make it clear. A synced callout is something a game only uses in its synced code, if it wants too. There is no on/off/default/bridge/lobby/whatever involved, there is just Spring.AssignPlayerToTeam(playerID, teamID), if and only if it appears in the synced gadget code of the game being played.

This is all somewhat academic at the moment - I don't even know if my patch will be used.

There is currently no way to support a 'midgame join' without replaying all the previous progress of the game and it is very unlikely to be otherwise in the near future.
User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6240
Joined: 29 Apr 2005, 01:14

Re: Midgame joining concept discusison

Post by FLOZi »

gajop wrote:This is not a feature like Unicode. It's not something most games should just be expected to support, very few will probably. Gamers will not expect your game to have this, as it's something nearly no popular (commercial) RTS has.

However, if you look at the code presented it provides a pretty neat feature: being able to (re)assign teams to players. I can easily imagine it being quite useful for things completely unrelated to the OP, and this is just stuff for me:
1. Scenario Editor: Ability to take control of a certain team, in both edit and test mode. Pretty useful if you can switch teams around to get a better idea how things will look to players.
2. Scenarios/Missions: It's pretty easy to imagine scenarios in which you as a player would change team (instead of just changing the teamID value of a whole lot of units). Example: A mission where the "main" character gets compromised (psychologically,chemically, etc.) and changes sides.
ECONOMIC VICTORY

gajop cornered the market in being the voice of reason
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: Midgame joining concept discusison

Post by knorke »

What is currently possible:
There is command /team but it only works with /cheat enabled.
(Sometimes it is used to manually put new players into game)
It is not possible to create new teams, must join existing ones.
But one could just have lots of empty "NullAI" teams, as place holders for midgame joiners to use. That was discussed before but afaik never done. I think it would work but in practice be a bit clunky.

It might get interessting if there was some new Lua functions, like:

Code: Select all

Spring.CreateTeam (teamID)
Spring.CreateAllyTeam (allyTeamID)
Spring.MovePlayerTeam (playerID, newTeamID, newAllyTeamID)
Then on (existing) PlayerAdded(playerID) the new player would be shown some Lua'ed messagebox: "Would you like to join the game? yes/no"
And with above new functions he would be put into game.
Games that do not want this midgame join just do not include such Lua. Maybe there could be a way to get lobby-status of new midgame-joining player (was he spec, which team was he on, which color) but not strictly nessecary.
The lobbies would keep their "Start" buttons, like they always had, no need for extra button.
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

Re: Midgame joining concept discusison

Post by gajop »

knorke wrote:

Code: Select all

Spring.CreateTeam (teamID)
Spring.CreateAllyTeam (allyTeamID)
Yeah, would be great to have this. Asked for it some time ago, but I don't remember the answer.
knorke wrote:

Code: Select all

Spring.MovePlayerTeam (playerID, newTeamID, newAllyTeamID)
Silent's code does that partially (assigns a team).
It should not assign an allyteam, a different function should do that.
I wrote that ages ago: https://github.com/gajop/spring/commit/ ... 4f35a0bcf2 but I never properly tested it.

In case it's not clear why those should be different functions, well, a single team can have multiple players, even AIs controlling it, so your proposed function could have a confusing effect - it would actually indirectly change the allyteam for other players as well.
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: Midgame joining concept discusison

Post by PicassoCT »

Do you feel that- a disturbance in the force, as if a thousand non-existant nil-checks screamed in unisone, forever sylenced by the devs..
User avatar
Jools
XTA Developer
Posts: 2816
Joined: 23 Feb 2009, 16:29

Re: Midgame joining concept discusison

Post by Jools »

Beherith wrote:What if spectators could control chickens? Seems like a fun addition... Great stuff Silentwings :)
+1

Or at least place them when game starts...
User avatar
code_man
Posts: 260
Joined: 19 Jan 2014, 13:10

Re: Midgame joining concept discusison

Post by code_man »

[/quote]
SinbadEV wrote:You wouldn't need to re-balance anything if when a new player joins they would start with no units and it would be up to the other players to share units with them.
Oh youre right i missed the obvious solution, still this one depends alot on player cooperation.

Another thought, i suppose you could asign them to a already existing team to share command, might be interesting too.
gajop wrote:This is not a feature like Unicode. It's not something most games should just be expected to support, very few will probably. Gamers will not expect your game to have this, as it's something nearly no popular (commercial) RTS has.

However, if you look at the code presented it provides a pretty neat feature: being able to (re)assign teams to players. I can easily imagine it being quite useful for things completely unrelated to the OP, and this is just stuff for me:
1. Scenario Editor: Ability to take control of a certain team, in both edit and test mode. Pretty useful if you can switch teams around to get a better idea how things will look to players.
2. Scenarios/Missions: It's pretty easy to imagine scenarios in which you as a player would change team (instead of just changing the teamID value of a whole lot of units). Example: A mission where the "main" character gets compromised (psychologically,chemically, etc.) and changes sides.
Its definetly a bizzare feature unfit for most rts, but who says spring has to be limited to rts?
A mmortt game on spring is fairly realistic, such a feature would kick ass in that case.
And if the engine supports this, why not try it some time.
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: Midgame joining concept discusison

Post by smoth »

gajop wrote:
knorke wrote:

Code: Select all

Spring.CreateTeam (teamID)
Spring.CreateAllyTeam (allyTeamID)
Yeah, would be great to have this. Asked for it some time ago, but I don't remember the answer.
Image
muckl
Posts: 151
Joined: 30 Aug 2010, 07:18

Re: Midgame joining concept discusison

Post by muckl »

i like that idea of midgame join (however it will be solved incl matchreplay)

but when there is a spec who can join a team - it should be a "teamspec" so it cannot see what the other team does (otherwise its speccheating).

so there should be normal specs (no team assign, not able to join later)
and teamspecs (limited slots per team and preassigned @ gamestart)
and normal players

so teamspecs can join their team they whatched at any gamestate instantly or via replay resync later

just an idea..

cool?
100Gbps
Posts: 74
Joined: 30 Jan 2009, 13:19

Re: Midgame joining concept discusison

Post by 100Gbps »

The concept is somewhat useless, we still demand the old loading speeds. Now a spectator (like me) needs to wait way too much to replay-o-load the whole battle, and usually it ends before that.
User avatar
CarRepairer
Cursed Zero-K Developer
Posts: 3359
Joined: 07 Nov 2007, 21:48

Re: Midgame joining concept discusison

Post by CarRepairer »

This topic name is a bit misleading. We can join midgame now. It should be referred to as midgame-team-join.

I once made a small fork of ZK called ZK Chat where the players get a commander that could not build units and whenever they talked a chat bubble appeared over their heads. They would all be on the same team and they could walk around, terraform random ramps, and talk with each other about their favorite topic of the day. Without such a midgame-team-join however it required everyone be present at the game start.

I can't recall if it was before or after the concept of luasockets/lualobby but using gajop's liblobby work and a midgame-team-join, all these concepts could be combined into a 3D avatar-based chat client that could hook up to spring channels. It could even spawn units for all the users who are in a channel but haven't joined the spring "battle" that would just be like critters on the map moving around randomly but we can chat and communicate with them.
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: Midgame team-joining concept discusison

Post by Silentwings »

I've no intention of using it for midgame joining, only for replacing afk players at gamestart, but my

Code: Select all

Spring.AssignPlayerToTeam(playerID, teamID)

as described above will be in 98.0.
Post Reply

Return to “General Discussion”