patchFreeciv - Patches: patch #5034, User ranking rules

Show feedback again

patch #5034: User ranking rules

Submitted by:  pepeto <pepeto>
Submitted on:  Wed Aug 13 11:52:18 2014  
Category: generalPriority: 3 - Low
Status: Need InfoPrivacy: Public
Assigned to: NoneOpen/Closed: Open
Planned Release: Contains string changes: None

Add a New Comment (Rich MarkupRich Markup):

You are not logged in

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


Sat Oct 11 14:13:22 2014, comment #2:

(I should say, I don't play multiplayer, so I defer to others on subjective criteria for ranking.)

Jacob Nevins <jtn>
Project Administrator
Sat Oct 11 14:12:55 2014, comment #1:

Unless "rank a user that has played the most with a player" means consecutive play, we'd have to store an unbounded list of usernames and turns played in the savefile. I assume pepeto intended consecutive control of a player.

To implement pepeto's proposal we'd need to store:

  • Per-player last_username and longest_username (replacing ranked_username)
  • For each of those, the total number of turns we've counted towards them (so we can overwrite longest_username when last_username accrues more turns); replaces user_turns
  • The last turn number we saw last_username, so we don't count them twice on detach/attach.
    • (Can also implement the "two turns consecutively" rule for incrementing the above counts; but do we need this, or is simply counting cumulative turns possibly interspersed with AI control sufficient?)
  • Per-player creation and death turns, or simply a counter that increments every turn a player is alive -- this would also allow implementation of a "Player" range for the new "Age" requirement.

On attach or turn change with user connected to player:

  • if last_turn_number is not the current turn, increment last_username_count
    • (if we want the two-consecutive-turn rule, only do this if last_turn_number is the last turn; but do we increment by 2 in this case?)
  • if last_username_count > longest_username_count, overwrite longest_username* with last_username*
  • set last_turn_number to current turn (unconditionally)

For delegation, I think a turn where the delegate turns up should count towards the delegator's record, and the delegate gets no credit.

Ranking on game end:

  • Only consider longest_username
  • Discard longest_username_count less than 10 or less than half player alive time (player has no ranked user in this case)
  • Otherwise, longest_username is the ranked user

This has the following properties:

  • (good) Longturn-style users get rankings
    • Without the two-consecutive-turn rule, a user who turned up only every other turn would get ranked. Is that good or bad?
  • (?) I don't think this has the property Davide wanted in patch #3526 -- I think he wanted the last user who controlled a player to get credit, maybe? (Can't find original discussion on
  • (ok) A player whose control is swapped between two users repeatedly gets no rank. (I'd argue that the users should probably have a delegation relationship in that case.)

(This does still allow someone to just turn up occasionally and let the AI do all the work and get the credit, but if other full-time players score worse than that then they probably deserve to be ranked less :)

The change of what's in the savefile means this is a 2.6 feature at the earliest.

Jacob Nevins <jtn>
Project Administrator
Wed Aug 13 11:52:18 2014, original submission:

Following discussion for bug #22458, the user ranking rules need to be changed for actual usage of Freeciv.

Notably, it should consider game styles like longturn where users may disconnect and reconnect every turn (currently, it is impossible for those users to be ranked, they only can be ranked if they don't reconnect!).

It should also take in account the delegation feature.

I would propose to rank a user that has played the most with a player, at least 10 turns, and at least the half of the life time of the player (considering death and player spawnning). A user will record a turn if he was connected as the player two turns consecutively (connected at turn change, and re-attaching to the player).

What do you suggest else?

pepeto <pepeto>
Project Member


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

Attach File(s):

No files currently attached


   patch dependencies.

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by jtn (Posted a comment)
  • -unavailable- added by pepeto (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.


    Error: not logged in



    Follows 1 latest change.

    Date Changed By Updated Field Previous Value => Replaced By
    Sun Oct 19 00:35:52 2014jtnDependencies-=>Depends on patch #5380
    Show feedback again

    Back to the top

    Powered by Savane 3.1-cleanup