patchFreeciv - Patches: patch #4739, Make civ2civ3 ruleset the default

 
 
Show feedback again

patch #4739: Make civ2civ3 ruleset the default

Submitted by:  Marko Lindqvist <cazfi>
Submitted on:  Thu 29 May 2014 07:30:47 PM UTC  
 
Category: generalPriority: 5 - Normal
Status: Ready For TestPrivacy: Public
Assigned to: NoneOpen/Closed: Open
Planned Release: 3.0.0

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Thu 18 Sep 2014 11:15:11 PM UTC, comment #14:

- Updated against svn

(file #22277)

Marko Lindqvist <cazfi>
Project Administrator
Fri 20 Jun 2014 01:38:45 PM UTC, comment #13:

Actually, if this alternative ruleset is hosted here it will be much more easier for me, and for everyone interested to submit patches.

I just think that keeping it continually updated will be an extra work for you developers, so what you prefer is good to me.

David Fernandez <bardo>
Fri 20 Jun 2014 01:18:12 PM UTC, comment #12:

While I don't mean to mandate your development style, I'd be very happy if earth_civ2civ3 were in freeciv SVN, to reduce my worry that I made a change that required a ruleset change that was not included somewhere.

Emmet Hikory <persia>
Project Member
Fri 20 Jun 2014 11:57:23 AM UTC, comment #11:

>I've been keeping a couple of rulesets synchronized with freeciv TRUNK. I also have updated some rulesets from freeciv release to freeciv release. I can tell that latter is much easier. Though the step is bigger, it's just one step and you can copy stuff from other rulesets quite liberally.

I agree. And now that civ2civ3 is hosted here, being updated each time the ruleset format changes, it is much more easier this step to update other rulesets based on it.

I think we can continue working as we did until now. I can keep working on an alternative modpack named "expciv2civ3" or similar, instead of the old "civ2-3", where I can introduce the changes that could affect the gameplay most, in order to test them. And I can send to cazfi a new version everytime that it is released a new version of freeciv, as we used to do.
I could keep a public repository of it, if someone interested, but since it will be a fork of civ2civ3, other people will be able to submit patches here for civ2civ3, that will not be hard to apply to this "expciv2civ3".

A name that I'm liking for this alternative ruleset is "earth_civ2civ3", since it was designed to be played with earth maps, and I like to keep an earth scenario linked to it.

David Fernandez <bardo>
Thu 19 Jun 2014 04:15:45 AM UTC, comment #10:

Getting further off-topic, but I suspect that we can avoid a lot of the pain involved with freeciv-ruledit if we are careful to make ruleset format changes backwards-compatible (so freeciv-ruledit can read the old format, and write the new one). Also, if we can convince freeciv-ruledit to format things nicely and write all the comments, the cost of having used it should be significantly reduced.

To me, the former is mostly about using RS_DEFAULT_foo more; removing all the magic numbers; providing warnings, rather than errors, on missing information; and striving for programmatic means to generate more complex metastructures (e.g. conversion from explicit singular dependency to reqs, use of extras structures).

The latter is just a matter of tweaking rulesave: I'm unsure whether this should be done by injecting the comments into the code, or using a template: perhaps a combination of the two.

Emmet Hikory <persia>
Project Member
Wed 18 Jun 2014 09:55:43 PM UTC, comment #9:

> If not, I worry maintaining synchronisation may be a burden.


I've been keeping a couple of rulesets synchronized with freeciv TRUNK. I also have updated some rulesets from freeciv release to freeciv release. I can tell that latter is much easier. Though the step is bigger, it's just one step and you can copy stuff (such as documentation comments) from other rulesets quite liberally. Keeping up with trunk can require huge amounts of work, sometimes really frustratingly requiring readjusting in two weeks things you just spent a lot of time changing. (After I've gone through all my rulesets for nreqs -> present=FALSE, I really am not looking forward any further adjustments to this in 2.6)

As for the "expciv2civ3", I would start it as fork of "civ2civ3" after freeciv branch has gone to datafile format freeze. Then you don't need to worry about format changes when maintaining it. Do not even try to update "expciv2civ3" from one freeciv version to another, but fork it a new from civ2civ3 of each freeciv branch.

One thing about format changes after freeciv-2.6 (or 3.0, depending where freeciv-ruledit makes its deput) is that once freeciv-ruledit has been in end-user use, we can't continue changing the ruleset format as freely as before. We have to provide way to update old rulesets automatically. Otherwise freeciv-ruledit is just our way to tell that "here's a gui tool to create rulesets for freeciv, but anything you create will work with one version of freeciv only, and then be lost." If someone uses freeciv-ruledit for the reason they don't/can't do manual editing of the ruleset, update requiring manual editing would be just complete failure of the tool to provide what it exist for. Also, manually updating anything saved from freeciv-ruledit would be even harder than updating manually maintained rulesets, where at least the formatting is sane and there's documentation comments.

Marko Lindqvist <cazfi>
Project Administrator
Wed 18 Jun 2014 02:35:40 PM UTC, comment #8:

On the notification: not every change to the civ2civ3 ruleset is going to be ruleset-specific, so one needs a broader catch (e.g. patch #4819 includes a change to the civ2civ3 ruleset (to preserve current behaviour)).

On a separate SVN: does subversion have a sane way to synchronise repositories? If not, I worry maintaining synchronisation may be a burden.

Emmet Hikory <persia>
Project Member
Wed 18 Jun 2014 01:21:06 PM UTC, comment #7:

>While setting this system up, one thing to consider is savegame compatibility...

From now on, I'll try to take into acount these compatibility issues. I'll also use as guide for new patches the idea that a game started with a freeciv version should be playable with newer versions.

I agree it might be good to use a different name for this alternative "experimental civ2civ3". I'm not good making up new names, let me know if someone have an idea.

>We already have separate classic ruleset available for those who want those rules, so I wouldn't give much weight to request to make it "more like the rules we're used to" unless accompanied with other more serious reasons.


I tend to agree, but at same time, as you said, classic rules have proved to be a good set of rules that many people like, so, when I'm in doubt if a change introduced to civ2civ3 is a good idea or not, then reverting to classic rules use to be a good alternative.

Also, the parts of the game that have not changed compared to classic rules will keep a similar balance, and any improvement to classic rules (for example new mods, or multiplayer packs) could be easely exported to civ2civ3.

David Fernandez <bardo>
Wed 18 Jun 2014 12:48:33 PM UTC, comment #6:

I'm liking the way civ2civ3 is being managed here by cazfi.
When I send a new patch, I feel safer because I know that someone who knows the code, and the compatibility rules, is going to check the patch. If cazfi agree to continue this way, I'm comfortable working this way.

Until now, I keep my own svn repository with the files of the ruleset, and one branch for each version of freeciv. When I'm going to work on a new patch, I always compare the version in gna repository with my own version, and I import all the changes made since my previous check, so I should not miss anything changed while I was unactive.

I'd appreciate if I have some kind of "editor" rights for changes related to this ruleset, at least for now. But I'd also like to see other developers creating patches and trying to improve the ruleset.
I'm afraid I can not be continually active as some of you are. However, if I'm actively working on the ruleset, I will see the patch and I'll give my opinion. If I'm not active, and I do not answer after a week or so, feel free to commit the patch, and I'll notice the changes next time that I check the gna repository. Then, I'll take it into account for my future changes, or I can make my own patch if I feel it needs some adjustment.

By the way, is it possible that every patch sent with the word "civ2civ3" in the header triggers a notification to my email, so I do not miss any related ticket.

About the versions included in modpack tool, I'm up (and I'd be glad) to maintain an "experimental" version of the ruleset there, where I can backport the changes from the trunk, and where we can introduce and test more controversial modifications.
I agree it is a good idea that other devs can send patches for these versions too, and I'm up to use another repository for them, or whatever system is better for the dev who will make the packs available at modpack.freeciv.org.
Until now I used to send an email with the modpacks to cazfi, I guess any alternative would be better.

David Fernandez <bardo>
Tue 17 Jun 2014 11:12:35 PM UTC, comment #5:

> While working on a new version of civ2civ3, I liked to keep the
> previous versions updated as much as possible in order to
> receive some feedback about the latest changes.


While setting this system up, one thing to consider is savegame compatibility. The official "civ2civ3" ruleset should always be backward compatible in a way that game saved with previous major freeciv version can be continued with the new one. Within release series (branch) rules are even stricter. There also the older version has to be able to load game saved with the newer one, which means that usually any new "objects" (techs, units, buildings...) cannot be added to the ruleset as their instances couldn't be loaded to game using older version of the ruleset.
The "experimental civ2civ3" would not necessarily have similar rules, and certainly one cannot continue "experimental civ2civ3" game with newer "civ2civ3" even if they have more similar rules than old "civ2civ3" and new "civ2civ3". That would be made impossible by the different name of the ruleset already. I definitely don't want experimental ruleset to have same name (even if different version number) than official one, as that would cause both technical conflicts and human confusion. (whether one even sees that experimental ruleset as different variant of civ2civ3 at all, or independent ruleset forked from it - like civ2civ3 was originally based on classic ruleset - might be just matter of taste in the end)

> make it more similar to classic rules

We already have separate classic ruleset available for those who want those rules, so I wouldn't give much weight to request to make it "more like the rules we're used to" unless accompanied with other more serious reasons.

> it could force to freeze the development of the rules, because
> I guess people do not like as default a set of rules that are
> continually changing, as we see with classic rules that have
> not changed for years.


You're right that classic ruleset got stagnated because it got so well established, and any change would have broken it for someone, even when fixing for others. That's actually the main reason I'd like to switch to civ2civ3 as default ruleset - if we can't evolve classic ruleset, let's get completely fresh start.
But even if civ2civ3 suffers same fate, that's not an issue compared to having it as not-default ruleset. You can always fork new ruleset from it to develop as not-default one.

Marko Lindqvist <cazfi>
Project Administrator
Tue 17 Jun 2014 09:52:00 PM UTC, comment #4:

On civ2civ3: I agree that having a single 'editor' for the ruleset who's thinking as deeply about balance and AI issues as you are is very valuable. Personally (not speaking for anyone else) I'd like you to retain some sort of editorial control for as long as you're up for it.

Really, I would civ2civ3 to be under version control with you as the authority accepting patches. I think that would enable more people to suggest and contribute changes without having to worry about forking / conflicts.
Whenever I tweak the svn version, I'm afraid I'm going to clash with whatever you're working on privately, so I'd rather be able to propose patches that you can decide on and reconcile with your own development. This way I could also propose patches to versions not shipped with Freeciv, such as the 2.4 modpack version.

Not sure if that version control should be in Freeciv svn or elsewhere with Freeciv pulling from it, given the existence of versions other than what we're shipping.

I think it could use a version naming system, too, so that if some change is particularly controversial there's a good way to refer to the old version and a ready-made name for a fork, and so the "since previous version" bit of the README has something clear to refer to. Not sure if we should tie that naming system to Freeciv versions or not; if its future lies with Freeciv it's probably better not to invent a new _v3, _v4 etc version scheme.
(Patch #4734 should help.)

>> I'm afraid that it could force to freeze the development of
>> the rules
> I was thinking that we could use the modpack tool for that. I
> mean, once v2.5 is released, the ruleset civ2civ3 could be kept
> as stable as possible (only bugfixes and important unbalances),
> while we could keep another civ2civ3 version available in
> modpack tool where we backport the changes included in trunk
> that needs to be tested (and are compatible with previous
> v2.5).

Oh, yes, I like this idea, if you're up for it.
I like seeing civ2civ3 develop, but I have been caught out by the 2.4 version on modpack.freeciv.org changing substantially in the middle of a game.
We'd have a "civ2civ3_26" (or _2_6 or _v3 or _dev) modpack for each stable branch which may be unsuitable to upgrade mid-game (old savegames may not work, your strategy may be invalidated etc); unlike the shipped civ2civ3, you get to choose when to upgrade a modpack independently of Freeciv.
And then the next major version of Freeciv would ship with a 'stable' civ2civ3 including whichever major changes looked like a good idea (freezing before beta1).

> Also, as you may have noticed... I'm not native english
> speaker, and every text that I wrote for the ruleset should be
> revised.

I do plan to have a go at this before string freeze.

Jacob Nevins <jtn>
Project Administrator
Mon 16 Jun 2014 11:07:45 AM UTC, comment #3:

My opinion about experimetal ruleset is that it is very useful for ruleset authors when developers of new engine features include an example in this experimental ruleset, so we can see how the new features are supposed to be used.
I find important such ruleset where developers can introduce new rules without worrying about breaking the game balance.

>This process could be improved with ruleset feature development in trunk, balance adjustments and cleanup in pre-release branches, and bugfixes in released branches.

This is the way I was expecting it to work. We (ruleset developers) could keep sending patches against trunk to try to introduce new features that we have tested by ourselves. Then, all developers decide which ones to include. And after that, we use the branches to try to balance the rules without changing them too much.

>Given the small number of folk who play against trunk, this means that most new engine features haven't had much playtesting. It may make sense to maintain a playtesting experimental modpack that is playable on the prior release (e.g. freeciv-2.5 default rules, playable on freeciv-2.4 engine), which could be used to collect useful feedback on what should be included in the default ruleset for the next release.

I also think this could be useful.
While working on a new version of civ2civ3, I liked to keep the previous versions updated as much as possible in order to receive some feedback about the latest changes.
I was thinking that we could use the modpack tool for that. I mean, once v2.5 is released, the ruleset civ2civ3 could be kept as stable as possible (only bugfixes and important unbalances), while we could keep another civ2civ3 version available in modpack tool where we backport the changes included in trunk that needs to be tested (and are compatible with previous v2.5).

I'd also like to say, that I have been the only developer of civ2civ3 rules until now, and I understand that I made changes that people may not like. Until other developers start working on it, I'm up to try to revert any controversial change and make it more similar to classic rules, just tell me.
Also, as you may have noticed... I'm not native english speaker, and every text that I wrote for the ruleset should be revised. I could collaborate on the spanish traduction, though.

David Fernandez <bardo>
Mon 16 Jun 2014 06:31:53 AM UTC, comment #2:

In my opinion, the default ruleset benefits wonderfully from an active maintainer, and it makes sense to have continuous development: if we're not introducing new engine features, the game appears stagnant (for all that it is under active development). With an active ruleset developer, this would mean that each major release could include new and different gameplay features (as happens with the commercial "Civilization" series), perhaps maintaining compatible rulesets emulating prior releases for those who prefer the old rules), rather than just enabling them for the mod community.

My understanding of the current development model is that new features are put in the experimental ruleset for the branch in which they are enabled in the engine (although only some features seem to make it: some get skipped because nobody is sure if they match the style), and during release preparation, features are migrated from the experimental ruleset to the default (now classic) ruleset on an ad-hoc basis. This process could be improved with ruleset feature development in trunk, balance adjustments and cleanup in pre-release branches, and bugfixes in released branches.

Note that as engine features are developed, these may necessitate changes in all the rulesets in an affected branch (possibly to enable a new feature, but often just to keep the rulesets from failing to load, even with the feature disabled). Given the small number of folk who play against trunk, this means that most new engine features haven't had much playtesting. It may make sense to maintain a playtesting experimental modpack that is playable on the prior release (e.g. freeciv-2.5 default rules, playable on freeciv-2.4 engine), which could be used to collect useful feedback on what should be included in the default ruleset for the next release.

The fate of the "experimental" ruleset is also worth discussion: should the current state be preserved (some players may like it)? Should it be adjusted to be a patchwork ruleset enabling every possible engine feature (even if not particularly playable)? Should it continue to be a place to introduce new features, some of which might end up in "classic"? Should it be replaced with a new ruleset based on "civ2civ3" but exposing engine features which might imbalance gameplay, used for playtesting new features?

Emmet Hikory <persia>
Project Member
Sun 15 Jun 2014 02:39:46 PM UTC, comment #1:

I'm glad to see the ruleset being considered as default ruleset, but at same time I'm afraid that it could force to freeze the development of the rules, because I guess people do not like as default a set of rules that are continually changing, as we see with classic rules that have not changed for years.

Anyway, I'd like to know the opinion of the developers about the future development of this civ2civ3 ruleset.
Should we try to keep introducing new features and readjusting the game balance with the feedback from players?
Or do we try to keep the rules as stable as possible so players do not need to re-learn them everytime they play?

David Fernandez <bardo>
Thu 29 May 2014 07:30:47 PM UTC, original submission:

in freeciv-3.0

Marko Lindqvist <cazfi>
Project Administrator

 

(Note: upload size limit is set to 1024 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #20849:  Civ2civ3Default.patch added by cazfi (843B - text/x-diff)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by jtn (Posted a comment)
  • -unavailable- added by persia (Posted a comment)
  • -unavailable- added by bardo (Posted a comment)
  • -unavailable- added by cazfi (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 18 Sep 2014 11:15:11 PM UTCcazfiAttached File-=>Added 0003-Make-civ2civ3-ruleset-the-default.patch, #22277
    Thu 29 May 2014 07:30:47 PM UTCcazfiAttached File-=>Added Civ2civ3Default.patch, #20849
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup