Complete.Org: Mailing Lists: Archives: freeciv-dev: July 2002:
[Freeciv-Dev] Re: rfc on allowconnect
Home

[Freeciv-Dev] Re: rfc on allowconnect

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Per I Mathisen <per@xxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx, martijn@xxxxxxxxxx
Subject: [Freeciv-Dev] Re: rfc on allowconnect
From: Raimar Falke <rf13@xxxxxxxxxxxxxxxxx>
Date: Tue, 9 Jul 2002 10:07:53 +0200

On Mon, Jul 08, 2002 at 11:50:45PM +0200, Per I Mathisen wrote:
> On Mon, 8 Jul 2002, Raimar Falke wrote:
> > What about a pre-state? A user logs in (under any name) and can
> > chat. A current player allows this user to be a controller or
> > observer. You can't do this without this pre-state because the access
> > control should be done in terms of connections. But you can't grant a
> > non-existing connection the control of your nation.
> >
> > Can you understand this?
> 
> Yes.
> 
> I wanted to just make a simple cleanup patch... but as usually things
> ain't that simple... Raimar's Law of patch bloat strikes again ;)
> 
> First, this is going to take a while to implement properly. So as a
> stopgap measure, I suggest we remove the ability to close pregame to new
> clients from /allowconnect.
> 
> So. We have users, connections, players, nations and finally I want to add
> teams. Connections are currently just IP-adresses, but eventually we would
> want to add user authentication for connections (since multiple
> connections can be one player). We also have to think about cmdlevel
> access, and setting up this stuff in both server and client. A fine mess.
> 
> What is the perfect setup? We rename
> 
> FROM                  TO      WHY
> player                ->      nation  remove player/nation duality
> connection    ->      player  intuitive name for (authenticated) user

I would leave the connection. It is a low level thing. But I would add
a "user". A user has:
 - exactly one connection (at runtime)
 - belongs to one nation (at runtime)
 - has some stats for ranking
 - has a password

So for civserver.freeciv.org we need a persistent store of the users
data.

Just to make sure that I understood this correctly:

> coop control  ->      team    term used in starcraft

A team is a nonempty set of users which control a nation.

> team          ->      clan    term used everywhere

A clan is a nonempty set of nations which form a entity. They have
default diplomatic clauses of type CLAUSE_PEACE or CLAUSE_ALLIANCE.

> We need to simplify a bit to have this sum up, so I suggest we remove
> cmdlevel from the equation: The first player to join will get ctrl command
> and nobody else. If that player quits while in pregame, the server
> restarts (the starcraft way). Instead of requiring everyone to be ctrl, we
> allow everyone to set options that concern only themselves (like setting
> yourself to ai or not, and setting a password on your connection).

This seems like a non-small restriction. Why do we need this?

> Players join the game assigned to a nation without a name yet (in
> oldspeak: connections join the game assigned to a player without a name).
> The username field in the connection dialog is not needed anymore. We
> create a new pregame dialog where all players can choose a nation while
> waiting for other players. The ctrl superplayer can move players in/out of
> nations and nations in/out of clans. The GUI would be something like a
> tree widget
> 
>       <clan name>
>        +
>         -- <nation name>
>             +
>              -- <player name>
> 
> where the superplayer can move entities around (and create new clans).
> 
> Since the above will break ranking (no usernames), we should also add
> authentication to civserver.freeciv.org by using the username field in the
> connection dialog, adding a password dialog, and have the server
> authenticate the user/pass combo against civserver.freeciv.org. This
> should of course be optional. Users that don't authenticate won't have a
> username and won't be ranked on civserver.freeciv.org.
> 
> And yes, the above will be a real nightmare to implement. I think the
> first step would be the simplification of cmdlevel. And then the rest must
> be done in one giant patch. I can do it but probably not for 1.14.0 and I
> will need help on the pregame dialog from some GUI people.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "Make it idiot-proof and someone will make a better idiot."


[Prev in Thread] Current Thread [Next in Thread]