BA installer, talkin' options
Moderator: Content Developer
BA installer, talkin' options
As a part of a push to increase BA's appeal and making it easier for newbies to get into it, I've been planning on doing a simple one-click installer for the game.
I haven't yet decided on the lobby however. Basically there are three options:
1) SpringLobby. Make a simple installer with InnoInstaller or the like that bundles SpringLobby, newest BA and a pre-tuned settings file together. Pros: Trivial to do, least dev time required. Cons: SpringLobby is hard/impossible to customize far and can be confusing to newbies. Lots of potential for breakages.
2) WebLobby. Make a simple installer with InnoInstaller or the like that bundles WebLobby and a pre-tuned settings defaults together. Pros: Relatively easy to set up. Customization is standard web stuff, a lot of people can potentially help with it. Cons: Building the native wrapper requires a Qt dev environment (but it doesn't necessarily need to be built). The UI is a bit rough around the edges, some things are not clear. Not a power user experience.
3) Chobby, the ingame lobby. Used by ZK. Basically build a BA launcher in C#/Python/whatever that updates the engine and starts Chobby with BA customization. Pros: By far the nicest looking. Good customizability. Cons: The most work. Requires that BA maintains its own launcher. Requires restarts for engine updates. Lua and potentially Spring knowledge needed for some of the customization.
These are nicely in order from least work, least beauty to most work, most beauty.
What are you guys' experiences with the various lobbies? What are your thoughts in adding future dev burden in the form of launchers and the like?
I haven't yet decided on the lobby however. Basically there are three options:
1) SpringLobby. Make a simple installer with InnoInstaller or the like that bundles SpringLobby, newest BA and a pre-tuned settings file together. Pros: Trivial to do, least dev time required. Cons: SpringLobby is hard/impossible to customize far and can be confusing to newbies. Lots of potential for breakages.
2) WebLobby. Make a simple installer with InnoInstaller or the like that bundles WebLobby and a pre-tuned settings defaults together. Pros: Relatively easy to set up. Customization is standard web stuff, a lot of people can potentially help with it. Cons: Building the native wrapper requires a Qt dev environment (but it doesn't necessarily need to be built). The UI is a bit rough around the edges, some things are not clear. Not a power user experience.
3) Chobby, the ingame lobby. Used by ZK. Basically build a BA launcher in C#/Python/whatever that updates the engine and starts Chobby with BA customization. Pros: By far the nicest looking. Good customizability. Cons: The most work. Requires that BA maintains its own launcher. Requires restarts for engine updates. Lua and potentially Spring knowledge needed for some of the customization.
These are nicely in order from least work, least beauty to most work, most beauty.
What are you guys' experiences with the various lobbies? What are your thoughts in adding future dev burden in the form of launchers and the like?
Re: BA installer, talkin' options
I was thinking that if BA comes pre-bundeled, it would be nice if it were not a SD7, but a pre-filled rapid directory. That way users will not have to download a complete BA again with the next BA-update, and if they happen to have an outdated installer, their BA will be updated very fast.
The pre-filling of the rapid directory could either happen scripted at install-time over the internet, or if possible - and much better - the files will already be inside the installer. I don't know about Windows paths, but I don't think it will be possible to pre-seed a rapid-structure for any other user than the one installing.
It should also contain the 10 most played maps. Optionally incl. 2 of each size: 1v1, 2v2, 4v4, 6v6, 8v8.
The pre-filling of the rapid directory could either happen scripted at install-time over the internet, or if possible - and much better - the files will already be inside the installer. I don't know about Windows paths, but I don't think it will be possible to pre-seed a rapid-structure for any other user than the one installing.
It should also contain the 10 most played maps. Optionally incl. 2 of each size: 1v1, 2v2, 4v4, 6v6, 8v8.
Re: BA installer, talkin' options
Let me extend on this:
Requiring a restart for using a different engine is unfortunate, but not likely to go away. This is more of a problem if Chobby is used as multi-game lobby, but for a single game, like BA, you shouldn't be using multiple engines simultaneously in the first place.
I'd say that Lua + Spring knowledge is a *good* thing, as that's the one skill all game devs should have by default.
Additionally a few pros/cons you haven't mentioned:
1) Pro: Chobby supports matchmaking, i18n and a few other things most lobbies don't.
2) Cons: Chobby's uberserver interface is incomplete despite that being its initial version.
Building a launcher shouldn't be hard, and hopefully you can convince ZK devs to create a generic launcher that can be customized. Chobby was meant to be highly customizable by inception (and ZK devs have invested good effort to separate ZK stuff from generic Chobby stuff) so this is reasonable.3) Chobby, the ingame lobby. Used by ZK. Basically build a BA launcher in C#/Python/whatever that updates the engine and starts Chobby with BA customization. Pros: By far the nicest looking. Good customizability. Cons: The most work. Requires that BA maintains its own launcher. Requires restarts for engine updates. Lua and potentially Spring knowledge needed for some of the customization.
Requiring a restart for using a different engine is unfortunate, but not likely to go away. This is more of a problem if Chobby is used as multi-game lobby, but for a single game, like BA, you shouldn't be using multiple engines simultaneously in the first place.
I'd say that Lua + Spring knowledge is a *good* thing, as that's the one skill all game devs should have by default.
Additionally a few pros/cons you haven't mentioned:
1) Pro: Chobby supports matchmaking, i18n and a few other things most lobbies don't.
2) Cons: Chobby's uberserver interface is incomplete despite that being its initial version.
Re: BA installer, talkin' options
Hmm, hadn't thought of that. I guess the specific implementation here might be a bit lobby dependant, but as long as it's as easy as shoving a prefilled rapid directory to a standard location, that shouldn't be a problem.dansan wrote:I was thinking that if BA comes pre-bundeled, it would be nice if it were not a SD7, but a pre-filled rapid directory. That way users will not have to download a complete BA again with the next BA-update, and if they happen to have an outdated installer, their BA will be updated very fast.
The pre-filling of the rapid directory could either happen scripted at install-time over the internet, or if possible - and much better - the files will already be inside the installer. I don't know about Windows paths, but I don't think it will be possible to pre-seed a rapid-structure for any other user than the one installing.
Definitely!dansan wrote:It should also contain the 10 most played maps. Optionally incl. 2 of each size: 1v1, 2v2, 4v4, 6v6, 8v8.
I don't foresee the basic launcher building to be very hard at all. A day's work to get a working launcher out. But given that BA already has its dev force spred very thin, I'm a bit scared about adding more maintenance requirements especially when they also introduce a new language (be it Python, C#, or whatever) and dev environment. For us programming generalists this might not be an issue, but experience has shown that everyone gets periods of inactivity.gajop wrote:Building a launcher shouldn't be hard, and hopefully you can convince ZK devs to create a generic launcher that can be customized. Chobby was meant to be highly customizable by inception (and ZK devs have invested good effort to separate ZK stuff from generic Chobby stuff) so this is reasonable.
How incomplete? Anything major missing that we now have with SpringLobby?gajop wrote:Additionally a few pros/cons you haven't mentioned:
1) Pro: Chobby supports matchmaking, i18n and a few other things most lobbies don't.
2) Cons: Chobby's uberserver interface is incomplete despite that being its initial version.
Re: BA installer, talkin' options
I think some basic things are missing or are incorrectly implemented. Would probably require a little bit of tinkering here.tzaeru wrote:How incomplete? Anything major missing that we now have with SpringLobby?
UI wise I think we're missing the ability to change sides and colors, since ZK didn't need it, it was probably never implemented.
It's important to note that Chobby was never really tested for uberserver. No one is using it there.
Most of these things will be done *eventually*, when I or someone else has more free time
- Forboding Angel
- Evolution RTS Developer
- Posts: 14673
- Joined: 17 Nov 2005, 02:43
Re: BA installer, talkin' options
The QT component of weblobby never has to be rebuilt. I already explained this to you at length.
- Silentwings
- Posts: 3720
- Joined: 25 Oct 2008, 00:23
Re: BA installer, talkin' options
Imo Chobby is the way to go for players, but for developers its not yet clear what the future will look like (e.g. devs frequently want multi-engine support, ability to isolate, etc). The dev burden of setting up & maintaining a Chili lobby is large.What are you guys' experiences with the various lobbies? What are your thoughts in adding future dev burden in the form of launchers and the like?
Re: BA installer, talkin' options
gajop wrote:I think some basic things are missing or are incorrectly implemented. Would probably require a little bit of tinkering here.tzaeru wrote:How incomplete? Anything major missing that we now have with SpringLobby?
UI wise I think we're missing the ability to change sides and colors, since ZK didn't need it, it was probably never implemented.
It's important to note that Chobby was never really tested for uberserver. No one is using it there.
Most of these things will be done *eventually*, when I or someone else has more free time
In the light of this, I guess Chobby is out as a choice for now. Making sure ubserver support works, adding side changing and color changing and all that would need to be done first and while I'd really love to be part of that, too, I have to limit my plate. :)Silentwings wrote:Imo Chobby is the way to go for players, but for developers its not yet clear what the future will look like (e.g. devs frequently want multi-engine support, ability to isolate, etc). The dev burden of setting up & maintaining a Chili lobby is large.What are you guys' experiences with the various lobbies? What are your thoughts in adding future dev burden in the form of launchers and the like?
It looks really great though and appears promising. Really good job there gajop and GoogleFrog and everyone else who have doing it!
And we can, of course, change in the future. No reason to get locked to a single decision for years.
Yeah, but after all these years at software dev, I've just grown very wary of these kind of things. Eventually something unexpected will break or a high demand appears for some feature we can't do in JS only and then there needs to be someone around who is willing and able to do something about it. That's just how it tends to turn out time after time. Therefore I do continue to consider Qt and C++ as potential additions to the maintenance burden in choosing Weblobby.Forboding Angel wrote:The QT component of weblobby never has to be rebuilt. I already explained this to you at length.
That said, right now, Weblobby is seeming like the most promising choice. I tried customizing it some and it seems to work just fine. Trivial to wrap inside an installer that puts up shortcuts and all that.
Re: BA installer, talkin' options
Been doing an installer based on Weblobby. It seems to work pretty fine. I bundle a few maps, 103.0 engine and BA itself with the installer and put them to right places. Most of the lobby is really just basic web frontend stuff and will be hosted remotely, so any updates we make will be immediately visible to people when we update.
There are a few shortcomings with Weblobby. There's no self-hosting for one. I was just checking Chobby out again and noticed that when you self-host, you get to choose game type (Cooperative, Team, 1v1, FFA) and all that, which would of course be absolutely fantastic for newbies. Weblobby requires to join an autohost to have a game and frankly, managing the autohosts is a confusing experience to newbies. It's however equally confusing on Springlobby, but Springlobby would have self hosting.. Ah, well.
Maybe we can add this functionality to Weblobby ourselves later on. Will remain to be seen. Overall I still find it a clearer and more understandable experience than Springlobby, even if less powerful an experience. Chobby would be the best tho.
There are a few shortcomings with Weblobby. There's no self-hosting for one. I was just checking Chobby out again and noticed that when you self-host, you get to choose game type (Cooperative, Team, 1v1, FFA) and all that, which would of course be absolutely fantastic for newbies. Weblobby requires to join an autohost to have a game and frankly, managing the autohosts is a confusing experience to newbies. It's however equally confusing on Springlobby, but Springlobby would have self hosting.. Ah, well.
Maybe we can add this functionality to Weblobby ourselves later on. Will remain to be seen. Overall I still find it a clearer and more understandable experience than Springlobby, even if less powerful an experience. Chobby would be the best tho.
Re: BA installer, talkin' options
I'm pretty sure (GoogleFrog would have to confirm) that Chobby still uses dedicated hosts when self-hosting, just that they're not displayed. All commands are sent as hidden messages to the host, and only then do changes actually happen. There's nothing wrong with dedicated hosts mind you, they're usually superior due to simplified hosting as they usually don't produce any networking issues.
Essentially if you were to use the Chobby approach, you would need to have an authosting (system) in the background, which a game like BA should probably do anyway.
Personally I think autohosts are a thing of the past, and only small games, with no infra or playerbase, should be using that.
Essentially if you were to use the Chobby approach, you would need to have an authosting (system) in the background, which a game like BA should probably do anyway.
Personally I think autohosts are a thing of the past, and only small games, with no infra or playerbase, should be using that.
Re: BA installer, talkin' options
In part I agree, but I still like the autohost concept. Players hosting permanent servers themselves is something I've usually found to be a good thing in a game. It just lets people do things their way, without game devs being the sole party to decide on things. You get stuff like per-server/host admins. Hosts can have their own themes and settings and eventually, hosts can form kind of small communities of their own inside the wider game community.gajop wrote:There's nothing wrong with dedicated hosts mind you, they're usually superior due to simplified hosting as they usually don't produce any networking issues.
Essentially if you were to use the Chobby approach, you would need to have an authosting (system) in the background, which a game like BA should probably do anyway.
Personally I think autohosts are a thing of the past, and only small games, with no infra or playerbase, should be using that.
Of course you can also self-host via an autohost system like Chobby's, but then the host is a gonner when it's emptied out. For a game the size of BA - or ZeroK - I also find it a bit problematic to split people searching for games into two groups; those creating or joining self-hosted custom games and those only using the matchmaker. This could be alleviated with a bit of a UI redesign tho. Just show custom games and watchable "official" games in the same view with the "find 1v1/team/ffa game" buttons in the top or something.
In principle, I do find the way used with Springlobby and Ubserver autohosts to be pretty good for flexibility. It's just not a very aesthetically pleasing, easy to use or newbie friendly an experience as it is right now. And it would benefit from somekinda non-intrusive matchmaking/quick join integration.
- Forboding Angel
- Evolution RTS Developer
- Posts: 14673
- Joined: 17 Nov 2005, 02:43
Re: BA installer, talkin' options
How could they be when we don't even have a good system for NAT traversal?gajop wrote: Personally I think autohosts are a thing of the past, and only small games, with no infra or playerbase, should be using that.
Re: BA installer, talkin' options
I think gajop was referring to player-owned autohosts. ZeroK spawns "autohosts" for players as required. It's a simpler system for the casual player, but I am not entirely convinced that the advantages of the player-owned autohosts weren't large enough to keep them as an option.Forboding Angel wrote:How could they be when we don't even have a good system for NAT traversal?gajop wrote: Personally I think autohosts are a thing of the past, and only small games, with no infra or playerbase, should be using that.
I'd like somekind of a combination, where player-owned autohosts mix in the same UI view with "official" spawned hosts, with the latter system being used for "quick play" functionality. It might be a bit challenging to get right UI and usability wise, but it'd be cool to have.
Re: BA installer, talkin' options
Out of curiosity, what kind of functionality would you need for BA/Chobby?
This is how it currently looks: http://i.imgur.com/gYCssGF.jpg
Do you need to:
1) Pick side (arm/core)
2) Pick color
3) Ready/unready
Anything else I'm missing?
PS: I would be personally OK if one couldn't ready/unready, and could only ready/spec, but if you can convince me that ready/unready is a important still, I'll consider adding it.
This is how it currently looks: http://i.imgur.com/gYCssGF.jpg
Do you need to:
1) Pick side (arm/core)
2) Pick color
3) Ready/unready
Anything else I'm missing?
PS: I would be personally OK if one couldn't ready/unready, and could only ready/spec, but if you can convince me that ready/unready is a important still, I'll consider adding it.
Re: BA installer, talkin' options
Coming in a bit late to reply - unfortunately my 6-week vacation ran out and I'm back in the hamster wheel. Wooyah.
Personally though I'd say that 'Ready/Spec' is enough.
Side at least is needed to be pickable, but more of a question to me as it is is how does Chobby end up interacting with SPADS and Uberserver. Far as I can tell, there's very low interest in the existing playerbase for migrating into a ZK-like automated system, where autohosts are not permanent and are created and removed as they come. Nor do I think it is realistic for BA to pursue hosting its own infra in lieu of using Uberserver.
I think with BA the problem kind of is that the existing userbase has traditionally been pretty big on various custom configurations per autohost. People unready if someone changes something that they are not OK with or stuff like that.gajop wrote:Out of curiosity, what kind of functionality would you need for BA/Chobby?
This is how it currently looks: http://i.imgur.com/gYCssGF.jpg
Do you need to:
1) Pick side (arm/core)
2) Pick color
3) Ready/unready
Anything else I'm missing?
PS: I would be personally OK if one couldn't ready/unready, and could only ready/spec, but if you can convince me that ready/unready is a important still, I'll consider adding it.
Personally though I'd say that 'Ready/Spec' is enough.
Side at least is needed to be pickable, but more of a question to me as it is is how does Chobby end up interacting with SPADS and Uberserver. Far as I can tell, there's very low interest in the existing playerbase for migrating into a ZK-like automated system, where autohosts are not permanent and are created and removed as they come. Nor do I think it is realistic for BA to pursue hosting its own infra in lieu of using Uberserver.
- Forboding Angel
- Evolution RTS Developer
- Posts: 14673
- Joined: 17 Nov 2005, 02:43
Re: BA installer, talkin' options
This is a far better system and resolves a lot of the issues that currently exist (namely, the continual overloading of a single host).tzaeru wrote:Far as I can tell, there's very low interest in the existing playerbase for migrating into a ZK-like automated system, where autohosts are not permanent and are created and removed as they come.
Re: BA installer, talkin' options
It runs on Uberserver, and you can join battlerooms. What kind of an interaction do you want to have with autohosts? I thought people are just typing the commands in chat (which is possible with Chobby).tzaeru wrote:but more of a question to me as it is is how does Chobby end up interacting with SPADS and Uberserver.
Chobby doesn't imply a change in the infrastructure. Users should be able to use autohosts normally.tzaeru wrote:Far as I can tell, there's very low interest in the existing playerbase for migrating into a ZK-like automated system, where autohosts are not permanent and are created and removed as they come. Nor do I think it is realistic for BA to pursue hosting its own infra in lieu of using Uberserver.
I might introduce matchmaking on uber (when I have the time!) but that would be available to all lobby clients that implement the Spring server protocol.
PS: What kind of manual hosting support is expected on uber? Do users ever create their own rooms, and if so, how does this work (e.g. pure self-hosting with NAT punching, dedicated hosts, new-room creation, etc.)?
- Silentwings
- Posts: 3720
- Joined: 25 Oct 2008, 00:23
Re: BA installer, talkin' options
As I understand it, an autohost is just a normal user (who happens to be a bot) that creates a battleroom and interacts with the Spring server in the normal way via the lobby protocol. The (human) users join the battleroom and give commands to the autohost in the form !xyz and the autohost reacts by telling the Spring server what to do.
In short, there isn't any special distinction in terms of the protocol between autohosts and human hosts, other than that autohosts typically have a high enough rate of server<->client traffic to require a botflag.
In short, there isn't any special distinction in terms of the protocol between autohosts and human hosts, other than that autohosts typically have a high enough rate of server<->client traffic to require a botflag.
Re: BA installer, talkin' options
Are "battlerooms" in any way special compared to simple IRC channels?
- Silentwings
- Posts: 3720
- Joined: 25 Oct 2008, 00:23
Re: BA installer, talkin' options
Yes, battlerooms transmit a larger internal state (colours, teams, options, etc) via the server than that the plain chatting channels do. And iirc the commands that specify battleroom hosts versus channel owners/founders are different, muting is also done differently.