XCONQ RELEASE NOTES *** 7.4.1 The Windows port has not been built, and probably won't build without some work, because of networking changes in shared Windows/Unix code. Made cconq build again. *** 7.4.0 Hans Ronne contributed a new Tolkien-inspired game "Lord of the Rings" (lord-rings.g), and its supporting modules 3rd-age.g and t-midearth.g. Keir Novik's "Carrier Battles" (tailhook.g), a detailed game of WWII naval combat, and "Coral Sea", a Coral Sea scenario for it, are now part of the game library. Erik Sigra and Michael Burschik contributed better random name generators, for Swedish and German place names respectively. Standard flags now include 16-pixel-wide versions, and the 8-pixel version use more colors. The program tracks views of units using individual objects, which enables more accurate display of multiple enemy units stacked at a single location. Networked games can be started from a mix of interactive and command-line invocations. The game module will not be downloaded through the network connection, which makes startup faster. Some unused and un-useful GDL constructs are gone, such as extension properties, program-version, and image palettes. The program supplies more feedback on why actions and tasks fail. There is a "new" AI type named oplayer, which is just the previous version of the AI. This is mainly for testing that the AI is actually getting smarter rather than dumber. There is now more control available for the behavior of independent units, for instance, you can set whether they will research and build other units. Sides now get colors instead of numbers if they have no emblems. Games can use unit images that fill an entire hex, where previously they were limited to a smaller bounding box within the hex. This is controlled by a new GDL variable "bigicons". The tcl/tk interface now has a working isometric display mode. The tcl/tk interface now lists only finished games by default, and includes a button to list all games. The Mac interface has many display improvements, from terrain transitions to more floating windows. The old Xt/Xaw interface has been removed, since it was no longer being maintained. There have been a host of minor improvements throughout the programs and game libraries. *** 7.3.3 Fix pathnames to tcl/tk libraries. Fix Mac bugs: 1-bit images, loading of emblems from saved games, large map handling, removed variants. Add better solid colors in advterr.g. *** 7.3.2 Fix crash with no-indepside games on Unix. Add terrain images for advances.g. *** 7.3.1 In Unix/Windows player setup, make separate buttons to add/remove indepside AI and to configure indepside behavior. Add --enable-alternate-scoresdir configure option. Update config.guess and config.sub. *** 7.3.0 This release accumulates over two years of changes throughout the program. In general, the emphasis has been on improving the program's usability, making the AI smarter, improving existing games, and extending to Civ-type games, rather than adding random new games to the library. The Unix user interface has been rewritten to use tcl/tk. It includes a full set of menus, resizeable panes in the map windows, buttons for common operations, a mouseover display, and many additional map display options. There is also a full set of dialogs for setting up a game, plus a chat window to facilitate setting up networked games. There is now a port to Windows, using the tcl/tk-based interface, which means no more requirement to run an X server. The Windows port still has bugs though. The Mac interface now has floating windows for most auxiliary windows, city and research dialogs, and more display controls, including player controls over most colors and imagery used. Selected units can now blink rather than being surrounded with a box. Unix networking support now allows for more than two players in a game, and the game setup dialogs are synchronized, so for instance clicking on a variant checkbox causes all players' checkboxes to change. Hans Ronne added the game "Ancient Near East" (anc-near-east.g), similar to Civilization but with more detail, such as different kinds of wheat to discover. The included map of the Near East is spectacularly large and detailed. A Civilization II emulation (civ2.g) has been added. The game works, but happiness is not implemented, most of the city improvements have no effect, nor do the Wonders. Linn Stanton added an extended version of the standard game (lhs.g) that includes radar, artillery, aaa, engineers, mines, and minefields. Many new graphic images are available, particularly for terrain. Xconq can load images directly from image files in standard formats (although only GIF is available at present). Players in the standard game get towns with names appropriate to their chosen nationalities. It is now possible to play independent units as if they were a regular side, and (more usefully), it's possible to have an AI run the independent units. Watch out for the marauding barbarians! A second AI type, the "iplayer", is available. It is a minimal AI that does basic tactical planning for individual units, but does not attempt to coordinate them. A set of commands, agreement-draft etc, are available for setting up agreements. (Agreement support is still incomplete though.) New commands: "c-rate" sets conversion rates for materials (division of trade into science/shields/luxuries in Civ, for instance). "collect" sets up a task to collect materials from terrain. "research" sets per-side research into advances. There is a new GDL type "advance", to represent scientific or technological advances. Game designers can lay out a whole technology tree, and either units or whole sides may do research to achieve advances. To allow "research" to apply to advances, the existing research activity to develop tech levels has been renamed to "development". Its characteristics remain the same however. The "extract" action is available for units to get materials directly from terrain. A game design can include "advanced" units that are like Civ cities; they are variable-sized, and can collect materials from the surrounding terrain. GDL includes many more variables, type properties, and tables. Some of the more notable additions include: global "combat-model", to choose algorithm for combat resolution global "indepside-has-ai", to control indepside use of AI. global "country-border-color" etc, to control colors used by interfaces side property "treasury", tables "gives-to-treasury" and "takes-from-treasury", to accumulate materials for the side as a whole table "advance-needed-to-build", to define how the technology tree enables the construction of unit types table "terrain-density", to add random variation to synthesized terrain tables "unit-consumption-to-grow", "size-limit-without-advance", and "side-limit-without-occupant", to regulate the growth of advanced units (cities) table "cellwide-protection-for", that controls protection for all units in a cell unit type properties "attack" and "defend", to define generic attack/defense strengths unit type property "advanced", to define advanced units unit type properties "advanced-auto-construct" and "advanced-auto-research", to automate the activities of advanced units unit type property "ai-tactical-range", to control the area of awareness for a unit's tactical decisions Sami Perttu contributed a supply system model; see doc/README.supply for more detail on how to use in game designs. The tcl/tk port includes experimental support for isometric display, but this needs more work, and so is turned off by default. (See the top of tcltk/tkconq.tcl to see how to enable.) The Unix port uses autoconf for configuration. Xconq now conforms better to FHS; library files reside in /usr/local/share/xconq, while score files live in /var/lib/xconq/scores. Many many bug fixes and smaller cleanups. *** 7.2.1 All image scaling and default image generation now happens in generic code, which gives X11 interface the ability to draw unit images that are shrunken or magnified to fit properly. If a game design does not specify a side library, Xconq will assign side names A, B, C, etc, in order, instead of choosing random letters. (While technically this is a GDL change, this does not affect compatibility with base 7.2.) Now builds under cygwin32! See INSTALL for instructions. Bug fixes for crashing commands, Mac edge cases, name reporting, Solaris builds, and networked game reliability, among others. *** 7.2 Standard commands now include "doctrine" to set unit doctrine, 'I' ("idle") to sleep only for a limited time specified by the prefix argument, '^P' ("repair") to do repair actions, "submit" and "release" to change side control. Xconq now includes basic support for networked games. Use the "Connect" button on the Mac startup screen, and the -host/-join options in Unix (use host:port syntax, -host thera.com:1234 for the first player, -join thera.com:1234 to join in). Unix Xconq has updated configury for new versions of Unix, and it now installs as a setuid program so that the scorefile may be shared by multiple users. Saved games go into the directory ~/.xconq . The Mac interface to Xconq now includes offscreen drawing for smoother and faster scrolling, more player control over color usage, more preference settings, and other goodies, all thanks to Hans Ronne. New games added to the library: "metz-1944", the siege of Metz during WWII "gazala", a North African battle in 1942 "ww2-pac-41", the Pacific theater in WWII using advanced WWII units "ww2s-pac-41", the Pacific theater using standard units "africa-1850", exploration of Africa in the 19th century "space", exploration and conquest of outer space The large maps "earth-1deg" and "earth-50km", and associated unit lists, "u-e1-1998" and "u-e50-1998", are more accurate and up-to-date, as is the list of nationalities "nat-names.g" Many images now have full-color versions. Most library games have been enhanced to use new features, or have had serious bugs fixed. Due to copyright issues, the tolkien and starwars games are no longer part of the distributed library. The manual's chapters on game design have been split into a separate manual. Maze generation now guarantees a completely connected maze. Image colors are now handled as 1x1 tiles. Games may now include a per-cell control layer that is like the people layer, but is for temporary control that reverts if people revolt. Predefined sides may specify preferred units, and predefined units may specify preferred sides. Scorekeepers may now allow a group of allied sides to win, by using the last-alliance-wins test. New GDL variables include action-movies, action-narratives, action-notices, event-movies, event-narratives, and event-notices, for customization of text output; create-units-from-specs, for use in controlling unit creation when including modules in each other. The variable random-events is no longer defined, while temperature-year-cycle is now a property of areas. The material type property "description-format" is gone. The terrain type properties "color" and "description-format" are gone. New unit type properties include acp-morale-effect, courage-min, courage-max (currently unused), cp-attrition, fire-angle-max, generic-char, hp-to-recover, lost-revolt-chance, lost-vanish-chance, lost-wreck-chance, morale-max, morale-recovery, opinion-min, opinion-max, revolt-at-opinion-min, see-terrain-if-captured. New GDL tables include body-height, capacity-negation, consumption-per-add-terrain, consumption-per-fire, control-range, keep-control-range, looks-like, lose-track-chance, lose-surrender-chance, material-per-remove-terrain, material-to-add-terrain, material-to-attack, material-to-fire, material-to-remove-terrain, material-to-research, morale-hit, morale-hit-by, morale-on-creation, morale-terrain-effect, mp-to-enter-own, productivity-adjacent, see-material-always, see-mistake-chance, see-others-if-captured, speed-occupant-effect, spy-track-chance, tp-damage, track-chance, weapon-height. Innumerable bug fixes. *** 7.1 "Long-name" commands (those entered via 'o') may now accept arguments. Standing orders are now available, and are more general than those in 5.x. The long-name command has the form "if ", so for instance to move all infantry at a given location to Berlin, use the command "if infantry at 32,25 move-to Berlin". The X11 interface includes a dialog to set up standing orders; the long-name command "orders" gets to it. View coverage changes are now calculated and displayed incrementally. This means that for games such as "panzer" with both line-of-sight and varying elevations, displayed coverage will update correctly as units move around. New players may be added to a game while it is in progress. Nearly all of the defined commands have been implemented for each interface. The new command "disembark" (^E) causes occupants to leave the transport but remain in the same cell. Scores are now recorded and read back from a scorefile. The X11 interface includes commands "side" and "unit" that display closeups of sides and units, respectively, the command line allows multiple -L locations to look for modules The Mac interface now displays elevations using contour lines, the command dialog is longer modal, and closeup info about the selected unit appears at the top of each map window. The mplayer AI is smarter in various ways. The library now includes "time", a game of technological development a la Civilization; and "omaha", the Omaha Beach landings in Normandy, using the ww2-bn module. In the standard game, aircraft now have no stacking limits, all unit types get 1 free movement point, damaged ships move more slowly, towns near roads get their own spur roads connecting. Many of the library games have been improved. GDL now includes the following new constructs (see the manual for details of how they work): Tables: counterattack, countercapture, fire-hit-chance, fire-damage, fire-attack-terrain-effect, fire-defend-terrain-effect Global variables: edge-road-density, initial-date-max, initial-date-min. Unit type properties: road-to-edge-change, spur-chance, spur-range. Side properties: material-view, temperature-view, etc. Image/image family properties: notes. GDL's "print" form works in all interfaces now. Many many bug fixes and minor enhancements. *** 7.0.1 The Mac interface now includes a preference for whether to dump the game statistics into a file. Keyboard direction commands for the Mac and X11 interfaces now work for attack as well as for movement. The library now include Chris Christensen's "insects" game. It's kind of silly, and still needs some design work to use more version 7 features, but is worth trying out. The "starwars" game now has various improvements and fixes, including the ability of Death Stars to detonate planets, and its associated "planets" module is larger, with many small planets. Several bugs noted in 7.0.0 have been fixed. *** 7.0 Xconq 7.0 is a comprehensive rewrite and expansion of Xconq 5.5. Nearly every part of the program and its game library has been changed in some way. Xconq now includes a Mac interface. This is a full-featured interface that works on nearly any Mac, both b/w and color, large screen and small. The X11 interface now uses Xaw/Xt to provide more interface functionality, such as buttons for common operations, popups for view controls, designing, and printing, and a panner to get to a particular part of the world more quickly. Each player may now have multiple map windows. Maps zoom in and out, from 1x1 to 128x128 pixels per hex. The interface can display color images for terrain, units, and sides. The curses interface now includes status lines and adjustable panes. There is now support for printing maps using PostScript(tm). The numbers of unit, terrain, and material (used to be "resource") types may now range up to 126. The number of sides may be up to 30. Terrain may now be "borders" (such as rivers), "connections" (such as roads), and "coatings" (such as snow). The world may now be a hexagon as well as a cylinder. It may include elevations, temperatures, wind, clouds, named geographical features, people, and materials for each hex (now called "cell"). Units may now get combat experience, they can be incomplete (meaning that construction may start on a unit, halt, then resume later where it left off), they can have an altitude, they have tooling (affects startup time for construction), and they can be of varying size. Multiple units may stack in a single cell. Unit abilities are now defined by the "actions" that they can perform. Previously, the actions were to move, build, disband, and attack; 7.0 also includes adding and removing terrain, research, change of unit type, material production and transfer, detaching and merging multi-part units, ranged fire, and detonation as actions. The combat model is more sophisticated, now including the possibility for stack and occupants to protect a defender, for retreat, and for variable damage from a single hit. Units now have plans that include multiple goals and a task agenda. Tasks track successes and failures of actions, choosing actions as needed to complete successfully. Sides may have a "tech level" that governs usage and construction of unit types, they may be in "classes" that restrict which types of units they can own, may control other sides, and have an emblem to be used for display. Games may include a day/night cycle and associated effects. Games may include a seasonal cycle and associated effects. Random game synthesis methods now include maze generation, country expansion, river and road generation, and grammar-based unit and feature name synthesis. Games may now have variants that are chosen at game setup time. The AI machinery now supports any number of different types of AIs. The generic AI "mplayer" has been rewritten; it now uses an explicit strategy based on division of the world into theaters, and relies on the new plan and task mechanisms to improve individual unit behavior. The game library now has many new games, including a tactical-level panzer game, detailed battalion-, division-, and strategic-level WWII games, Tolkien-inspired fantasy games, a Russian Revolution game, a Roman Empire game, and an Age of Discovery game with a Magellan scenario. The period/map/scenario file structure is gone, replaced by a Game Design Language (GDL). GDL looks like Lisp, but is still a declarative language oriented towards for defining the types, tables, and other objects in a game. Lisp syntax supplies power, flexibility, and a degree of standardization, while the declarative nature of the language means that the game designer can still concentrate on defining properties rather than writing code. Also, since all files are in the same language and modules can include each other, game designers can build designs by including an existing game and modifying it, rather than by defining a totally new game. There are now over 160 tables available to the game designer, over 100 unit type properties and over 60 global variables as well. The designer now has control over nearly every detail of a game. Memory allocation is almost entirely on an as-needed basis, so Xconq's memory usage starts at around 100K and goes up only with the size and complexity of the game. The source code is more portable, both to Unix and non-Unix systems. It is also fully prototyped and ANSI-compatible.