[freeciv-data] Re: documentation update - last call
Raimar Falke <rf13-r/[email protected]> Fri, 31 May 2002 22:12:32 +0200
| Newsgroups | gmane.games.freeciv.data |
|---|---|
| Message-ID | <[email protected]> |
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-r/[email protected] "Premature optimization is the root of all evil." -- D. E. Knuth in "Structured Programming with go to Statements"