[Freeciv-Dev] Re: documentation update - last call
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Fri, May 31, 2002 at 03:36:04PM +0200, Per I Mathisen wrote:
> --- doc/BUGS 2002/04/11 10:32:14 1.1
> +++ doc/BUGS 2002/05/31 13:32:44
> @@ -2,7 +2,7 @@
> BUGS
> ====
>
> -Freeciv 1.12.0 is a "stable" release and is considered bug-free enough
> +Freeciv 1.13.0 is a "stable" release and is considered bug-free enough
> for everyday use. However if you do find a bug, we would really like to
> know, so that we can fix it. This file lists known bugs in this release,
> and gives information about reporting new bugs.
> @@ -31,8 +31,6 @@
> - Sometimes there may be too many advances in the "goal" menu of
> the science report, such that the menu goes off the bottom of the
> screen and you cannot select some items.
> -
> - - The server truncates the display of very long hostnames.
This isn't mentioned in the news.
> 1) Due to the inclusion of new features, different client and server
> - versions are often incompatible. Not all incompatibilities
> - can be caught and reported properly. One example is a 1.8.0 (or
> - later) client connecting to a 1.7.2 server: the client appears
> - to connect, but it never gets any messages from the server.
> + versions are often incompatible.
It should be noted that the we have a similar situation now.
> +LONG-TERM AI DEVELOPMENT GOALS
> +==============================
> +
> +The long-term goals for Freeciv AI development are
> + -> to create a challenging and fun AI for players to defeat
s/players/human players/
> + -> to create modular AI code that can easily be assembled into new AI
> + clients
Maybe we should add "make a client AI" first.
> + -> to have multiple different AI clients compete against each other
> +
> +In order to get to this point, the current AI code will be moved from the
> +server and to the client. This requires that the AI code is separated
> +completely from the server, and that clients get the (optional)
> +possibility of an omniscience cheat.
> +
> +An important step is to move the goto code into the client. Also, the
> +current CMA agent will split out its core calculations for use in
> +client-side AI that do not use agents.
> +
> +The final directory structure should look like this:
> +
> + client/agents - this is agent territory
> + client/ai - this is where AI implementations go
> + client/ai/common - this is where common AI code should go
> + client/ai/original - the original (now server-side) AI
Should this really be named original? You know that original isn't a
very descriptive name. Same way for the term "new". It is very
relative.
> + client/ai/XYZ - AI implementation named XYZ
> +
> + server/ - no AI code allowed
> + ai/ - removed
> +
> +While code is being moved and integrated, we will link the AI in the
> +server with client/ai/common/libaicommon.a and
> +client/ai/original/libxyz.a, making a gradual progress of files and
> +features possible.
> +
> +
> WANT CALCULATIONS
> =================
>
> @@ -284,6 +320,32 @@
> * AI autoattack is never activated (probably a good thing too) (PR#1340)
> * AI sometimes believes that wasting a horde of weak military units to
> kill one enemy is profitable (PR#1340)
> +* Stop building ships and shore defense in landlocked cities with a
> +pond adjacent.
> +* Replace the use of the value 255 in relation to the warmap with the
> +MAXCOST constant.
> +* Make the server warmap use short instead of char, and raise MAXCOST
> +from 255 to the maxvalue of a signed short. (also see prev. item)
Just a side note:
$ grep -Ir 255 server/ ai/
server/civserver.c: Str255 the_string;
server/gotohand.c:#define MAXCOST 255
server/mapgen.c:#define MAP_NCONT 255
server/ruleset.c: /* upper limit is really about 255 for 8-bit id values, but
Looks like the AI people don't know their code ;)
> +* Make the AI building evaluation code use the new buildings.ruleset.
> +* Create a function that gives a statistically exact value for a units
> +chance of winning a battle. [Now done. What about expected number
> +of hit points remaing, or the variance? Can we come up with clever
> +ways for the ai to use this information?]
> +* Make a function that can generate a warmap for airplanes.
Should be obsolete with the new interface.
> +* Convert the ai_manage_diplomat() function to use the warmap.
> +* Make the AI respect FoW. (They don't get much bigger than this...)
Moving to client will solve this automatically.
> +* Move goto code to common code
> +* Teach the AI to Fortify units in non-city strategic positions. Also, it
> +needs to not idle all it's units every turn, breaking 2 turn fortify.
> +* Teach the AI to leave units alone in a turn to regain hit points. (it
> +seems to have no concept of this at all!)
> +* Stop the AI from trying to buy capitalization...
> +* Fix the AI valuation of supermarket. (It currently never builds it).
> +See farmland_food() and ai_eval_buildings() in advdomestic.c
> +* Teach the AI to coordinate the units in an attack (ok, this one is a bit
> +big...)
> +* Teach the AI to use ferryboats to transport explorers to unexplored land.
> +See ai_manage_explorer() and ai_manage_ferryboat().
> +- The cities section of the nations ruleset files deserves some
> + explanation. At first glance, it simply contains a comma-
> + separated list of quoted city names. However, this list can
> + also be used to label cities by their preferred terrain type.
> + Cities can be labeled as matching or not matching a particular
> + type of terrain, which will make them more (or less) likely to
> + show up as the "default" name. The exact format of the list
> + entry is
> +
> + "<cityname> (<label>, <label>, ...)"
> +
> + where the cityname is just the name for the city (not that it
> + may not contain quotes or parenthesis), and each "label" matches
> + (case-insensitive) a terrain type for the city (or "river"), with a
> + preceeding !, -, or ~ to negate it. The terrain list is optional, of
> + course, so the entry can just contain the cityname if desired. A city
> + name labeled as matching a terrain type will match a particular map
> + location if that map location is on or adjacent to a tile of the named
> + terrain type; in the case of the "river" label (which is a special
> + case) only the map location itself is considered. A complex example:
> +
> + "Wilmington (ocean, river, swamp, forest, !hills, !mountains, !desert)"
> +
> + will cause the city of Wilmington to match ocean, river, swamp, and
> + forest tiles while rejecting hills, mountains, and deserts. Although
> + this degree of detail is probably unnecessary to achieve the desired
> + effect, the system is designed to degrade smoothly so it should work
> + just fine.
> +
> + (A note on scale: it might be tempting to label London as !ocean, i.e.
> + not adjacent to an ocean. However, on a reasonably-sized FreeCiv world
> + map, London will be adjacent to the ocean; labeling it !ocean will tend
> + to give bad results. This is a limitation of the system, and should be
> + taken into account when labelling cities.)
We should add somthing like "if a city is earlier in the list it has a
higher chance to be choosen".
> to indicate which tags refer to which sound files. A change of spec
> file, given as an option at startup, will change sounds. For example,
>
> - civclient --Sound civ2sounds.spec
> + civclient --Sound aliensounds.spec
>
> -will use your (legally obtained) sound files from Civ2 instead of
> -those included with Freeciv. You need to copy or link those sounds
> -into your data/civ2sounds/ directory first, or edit the
> -civ2sounds.spec file.
> +will read sound files from "aliensounds.spec". You will need to download
> +or copy or link those sounds into whichever directory is mentioned in this
> +file first, or edit it to refer to the right files. All references are by
> +default relative to the data/ directory. Soundpacks can be downloaded from
> +the Freeciv website in the tar format. You will either need to unpack them
> +with eg "tar -xzvf stdsoundsX.tar.gz" or use WinZip (for Windows), and
> +put the files in the data directory mentioned above.
Whan is this aliensound? Can we just use stdsounds as the example?
> -- Extend governments ruleset to allow Fundamentalism, and fix up AI
> - handling of variant governments.
Is the latter really fixed?
Raimar
--
email: rf13@xxxxxxxxxxxxxxxxx
"Premature optimization is the root of all evil."
-- D. E. Knuth in "Structured Programming with go to Statements"
|
|