Complete.Org: Mailing Lists: Archives: freeciv-dev: July 1999:
[Freeciv-Dev] More ideas, maybe some AI
Home

[Freeciv-Dev] More ideas, maybe some AI

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] More ideas, maybe some AI
From: "Peter 'g00bER' Kosinar" <goober@xxxxxx>
Date: Wed, 21 Jul 1999 09:16:53 +0200 (CEST)

Hi Freeciv developers !

Here's what appeared in my mind in the last days and is about Freeciv.
I'm sorry for my bad English as I'm just learning it yet.

QUESTIONS:
 - What is the reason for including structure races[] in files
   client//finddlg.c,  client//gotodlg   and  client/gtk/messagewin ?
   I haven't found any reference to this structure in these files.

IDEAS:
 + = I think I can do that with (probably) no problems.
 ? = I could do it, if someone will help me with some minor details.
 * = I could do it, but I would need more help (major details :) .
 - = I don't dare to do it (at least not now)... :)

 ?,* = I need someone to ask some questions, and I don't want to fill
       this very good mailing list with stupid questions.

 easier (for implementation) ones:
 ? Is there any reason for having city names in the server file ? I think
   no. The clients need the names to suggest the player new city's name.
   So the data from city.c should be moved into client/ and only the
   functions from city.c should remain in the common dir.
 ? the (power)graph from Retire ending of Civ1
 + comparation with some great leaders (as in Civ1) - like David Pfitzer,
   Solomon the wise, average Freeciv-developer, average Freeciv-player,
   or for each nation separately (ex, american - Lincoln, Washington,
   Roosevelt, Lee, Grant, etc.)
 harder ones:
 ? genders - to distinguish between Queen/King, Mr./Mrs. President, and
   also to make players know whom they are playing with :)
 *? my personal vision is that there will be a network (for beginning one)
   of meta-civserver(s) that will get the information about running civservers
   (and some information about them, like max. people limit, version, etc.)
   and the clients will connect to this meta-civserver, find out the civserver
   most suitable for their purposes (location, gamestyle, other people, etc.)
   and connect to it. The civservers will periodically send information
   about them (users, running games, ...) to the metaserver. The people
   connected to the same civserver will be able to start game(s), like on
   irc, when people (clients) join the channel (game) and the operator
   (someone) changes the mode for channel (start game).
   However, this is probably highly unrealistic with the code written....
   just a vision. But... if it would be possible ... I'd like to help to do it.
 * races, as they are now are hardwired in the civ executables. This makes
   enhancements to the races quite difficult. I think they should be stored
   in a ruleset kind of file, along with their descriptions (explained later)
   and maybe other stuff. The clients should have their own races defined
   in rulesets (or, to be sure, some predefined ones hardwired). At the
   time of connection to server, the client will send his (her ?:))
   list of races to the server. The server will have a list of available
   civilizations (along with their descriptions). At the time of gamestart,
   the server will send each client the complete list of races and the rest
   will continue as usual. In less words - the races will be collected from
   clients at the playtime (ie, you have races you want to have).
  My opinion what should be needed to define a race (based on players.c),
  currently written in pseudo-form:
  1) race name in singular+plural : string
  2) default leader name (maybe also with gender -> Queen Elisabeth)
  3) the final government form (important for AI)
  4) the list of cities
  5) psychic characteristics of the leader (important for AI). I have many
     more ideas than these few, but my English knowledge isn't high enough
     to find suitable names for them.
   - aggressivence:
    kill'emall = only dead enemy is good enemy = attacks with all possible
                 weaponary (incl. nukes, pollution, etc.), very weak defense
    forward-looking = attacks only when (s)he is strong enough,
                      about 2-3 times stronger than enemy
    coward = first builds a lot of defensive forces, then attack units and
             then attacks
    chicken = builds a lot of defensive forces and attacks almost never.
   - urbanisation (does this word even exist):
    distributed = many small cities
    centralist = few big cities
   - exploration:
    explorer = tries to explore the entire starting island, then the islands
               around,...
    houseman (housewoman :)) = looks only at neighbour squares
  6) maybe the list of technical goals, but I think they can be generated
     by AI on-the-fly according to his/her psychic characteristics (ie,
     aggressive one will try to invent better weapons, expansionist will
     try to find sail.

WHAT HAVE I DONE (I can post it if anoyone would be interested):
- = so simple that there probably cannot be a mistake there.
? = should be bug-free, but only 99.5%
* = will probably require some testing

- moving of the map with SHIFT+KP keys, F1-F? = advisors, top 5 cities, etc.
  as in Civ1

WHAT I PLAN TO DO OR NOT TO DO (aka ((2DO) | !(2DO))==-1)
Make a patch that would allow non-mouse Civ1 players to adopt on Freeciv
 faster (ie, all usual Civ1 keyboard controls).
If you agree with some of my IDEAS, I'll try to (help to) code them faster.
The next 10 days (starting from 22nd July to 1st August) I'll be out of
 internet-connection, thus if you reply on this message, don't expect the
 answer before August.

                                                        Peter


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