make spring 95.0 a not enforced release? - Page 2

make spring 95.0 a not enforced release?

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6109
Joined: 29 Apr 2005, 01:14

Re: make spring 95.0 a not enforced release?

Post by FLOZi » 07 Oct 2013, 22:15

gajop wrote:
zwzsg wrote:How is a game supposed to declare the version of engine it wants?
It's not, autohost should.
Over reliance on autohosts has had negative repercussions on games and lobby clients.
0 x

User avatar
Silentwings
Moderator
Posts: 3594
Joined: 25 Oct 2008, 00:23

Re: make spring 95.0 a not enforced release?

Post by Silentwings » 07 Oct 2013, 22:16

abma wrote:thats one problem that we will have without "enforced" version. autohosts with the same game will host different engine versions... imo that would be really bad. not sure how to solve this. one game should be hosted with the same engine version, else it will be a hell to maintain for game devs.
Yes! There is no way gamedevs can be expected to maintain for multiple engine version at once. And it would make more sense for game to declare the engine it wants than for autohost to declare, since it's the game that needs it, not the host.

The dependency would have to be through lobby protocol, and not game just refusing to load with engine x, since changing the value around all the time when you want to compare smth across a few different engines would be hassle (also to make $version work).

For Thorium, Beryllium, 'bleeding edge' hosts, something would need to say "use spring latest".

Also, can anyone answer:
silentwings wrote:Is the current SL dev version able to autodownload and manage multiple engine versions? I know it has support in terms of version check, but without auto-dl it seems mad to me to not enforce the current latest stable engine.
Last edited by Silentwings on 07 Oct 2013, 22:47, edited 1 time in total.
0 x

User avatar
smoth
Posts: 22300
Joined: 13 Jan 2005, 00:46

Re: make spring 95.0 a not enforced release?

Post by smoth » 07 Oct 2013, 22:38

flozi what are your thoughts on my suggestion?
0 x

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

Re: make spring 95.0 a not enforced release?

Post by abma » 07 Oct 2013, 22:53

@smoth: what are you talking about? zero-k has multiversion support, weblobby has... whats the problem? it can be done. springlobby doesn't fully support it yet, but the needed changes should be quiet small as it recognizes the engine version used at the host and downloading is implemented as well.

atm an engine version can't be really enforced at all, that'll our problem here it seems.
0 x

User avatar
smoth
Posts: 22300
Joined: 13 Jan 2005, 00:46

Re: make spring 95.0 a not enforced release?

Post by smoth » 07 Oct 2013, 23:47

until springlobby supports it I will not consider it supported. ZKL is a ZeroK branded and project specific lobby and weblobby is not a proper lobby. Until at least springlobby supports it, what are NON-ZK projects expected to include as their lobby if you are going to move away from a multi version.

Also where does it install the engine versions for ZKL and Weblobby? does this autodownload?
0 x

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

Re: make spring 95.0 a not enforced release?

Post by abma » 08 Oct 2013, 00:06

@smooth: this goes off-topic. zero-k doesn't install spring, it extracts it to ~/.spring/engine/<version> on linux or My Documents/My Games/Spring/engine/<version> on windows.

imo its clear that springlobby has to support autodownload and engine switching before this can be made. still the problem exists that autohosts can set different versions of the engine with the same game which would be a maintain hell.

how to solve / how to enforce a specific engine version for a game? make something like official autohosts like zero-k does?
0 x

User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6109
Joined: 29 Apr 2005, 01:14

Re: make spring 95.0 a not enforced release?

Post by FLOZi » 08 Oct 2013, 00:33

string 'lastKnownGood' and bool 'allowLatestStable' in modinfo.lua
0 x

raaar
Metal Factions Developer
Posts: 818
Joined: 20 Feb 2010, 12:17

Re: make spring 95.0 a not enforced release?

Post by raaar » 08 Oct 2013, 01:44

Enforcement serves as an incentive to have players and devs using the latest stable version. From the engine dev point of view it'd probably be more troublesome to get feedback from different versions and having to deal with different versions would be annoying for players, especially new ones.

I'd put it differently : If spring 95.0 were released now and enforced, what would happen? Is there something keeping 95 from being broadly accepted by the community? If there is, fix it.
0 x

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

Re: make spring 95.0 a not enforced release?

Post by knorke » 08 Oct 2013, 02:21

short term:
imo enforce 95.0, like previous versions too.
Games have always updated to current engine version and from SVNs it looks like they mostly already have done, for 95.0 too.
zK prefering to use 91.0 was afaik only exception.

long term there is the problem of
how to solve / how to enforce a specific engine version for a game? make something like official autohosts like zero-k does?
Autohosts does not work because lobbys have "host game" buttons and those need to know version too. Also singleplayer.
Having to select engine (like in weblobby) is not good for players:
Image

imo only way is something in the modfile: either a validEngine.lua or an entry in modinfo.lua (would suggest a bit different way than Flozi's, but that is details)
0 x

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

Re: make spring 95.0 a not enforced release?

Post by abma » 08 Oct 2013, 02:27

yeah, i guess we are not ready to not "enforce" the engine for 95.0 but hopefully for the next release.

for forcing an engine version: maybe some setting in modinfo.lua which can be overriden in the start script maybe?

imo the engine should be involved here, as its the only safe way to enforce it.

an alternative would be to enforce it somehow in the lobby client, but this would bind the game to the lobby.

@raar, in short:
enforcing the version at the server leads to broken games, as most of them won't work with the new engine without change(s).
0 x

User avatar
BrainDamage
Lobby Developer
Posts: 1164
Joined: 25 Sep 2006, 13:56

Re: make spring 95.0 a not enforced release?

Post by BrainDamage » 08 Oct 2013, 03:20

abma wrote: enforcing the version at the server leads to broken games, as most of them won't work with the new engine without change(s).
that's because a single version was always enforced, imho the best of both world is have no upper bound and instead enforce a minimum version which is adjusted as necessary, the min version can lag behind months / years current release and it'd be aligned with devs' old version support policy
or it could even be unset, and any version would be allowed, i still think there should be such possibility in the protocol, even if not used in pratice
0 x

User avatar
smoth
Posts: 22300
Joined: 13 Jan 2005, 00:46

Re: make spring 95.0 a not enforced release?

Post by smoth » 08 Oct 2013, 03:30

OMG! SPRING LOBBY UPDATE TIEM!?!?!
0 x

Google_Frog
Moderator
Posts: 2442
Joined: 12 Oct 2007, 09:24

Re: make spring 95.0 a not enforced release?

Post by Google_Frog » 10 Oct 2013, 16:39

In the short run I want 95.0 enforced just by simple pragmatism.
  • Springlobby is not likely to have multi-engine support soon.
  • The server is not going to enforce anything older than 94.1
  • I am not going to use anything newer than 91.0 and older than latest dev builds for ZK.
  • I want newbies who happen to find us with Springlobby to not be frustrated.
In the long run games should be able to say which engine version they want to run under. Some hosting commands to set the engine manually would be required for multiplayer testing. The most important thing is that the new players use the correct engine without even having to think about it.

Why is enforcing some minimum bound the best of both worlds? The engine devs have no support policy for old engine versions and I am fine with that. Old games aren't going to suddenly gain bugs when they use the last engine version that was available during active development. The lobby server seems to barely care which engine version you use and lobbies are entirely capable of seamlessly downloading and switching between engines. I see no reason to remove the ability to play multiplayer games with very old engine versions.
0 x

User avatar
Silentwings
Moderator
Posts: 3594
Joined: 25 Oct 2008, 00:23

Re: make spring 95.0 a not enforced release?

Post by Silentwings » 10 Oct 2013, 18:10

Why is enforcing some minimum bound the best of both worlds?
I am in favour of having a minimum too, lagging one or two years behind the current release. It would be convenient for game devs to update at their own pace (instead of getting a choice either between 'hacky' Game.Version usage or syncing an update with engine update), but without a min version I worry that potentially productive ppl would come to Spring, see eons old engines and/or mod versions being used and could be put off.
0 x

User avatar
CarRepairer
Cursed Zero-K Developer
Posts: 3359
Joined: 07 Nov 2007, 21:48

Re: make spring 95.0 a not enforced release?

Post by CarRepairer » 10 Oct 2013, 20:17

Philosophically speaking, this isn't an engine or Spring-wide issue, it's a Springlobby issue. It's only kind of a Spring-wide issue in that Springlobby is the default distributed client, but still, maybe it makes sense to categorize this under a Springlobby discussion.
0 x

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

Re: make spring 95.0 a not enforced release?

Post by Pxtl » 10 Oct 2013, 21:04

It's not just an SL issue, it's also a Linux issue. Package Managers really don't want you to have multiple versions of the same thing. Getting the SpringRTS PPA to treat different Spring versions as fully independent packages would help there. Latest SpringLobby can list all in-use Spring versions as dependencies so that the package manager will fetch them. The only catch is that the SL version would have to be updated to list the new dep when a new Spring version comes out so that users would auto-fetch the latest engine.
0 x

Post Reply

Return to “Engine”

cron