0 A.D. Alpha 23: Ken Wood
Go to the changelog overview, if you are looking for a different release.
Check the history overview to only read updates of this site.
Table of Contents
Development started by Wildfire Games on July 29th 2017 (r19923).
Feature Freeze 1: March 12th 2018 (r21530)
String Freeze: April 23th 2018 (r21761)
Translation Freeze: April 29th 2018 (r21803)
Commit Freeze: May 8th 2018 (r21818)
Release: May 17th 2018 (r21818)
Re-release:December 23rd 2018 (r21946)
Re-release Announcement: https://play0ad.com/re-release-of-0-a-d-alpha-23-ken-wood/
Release Announcement: https://play0ad.com/new-release-0-a-d-alpha-23-ken-wood/
Tickets: https://trac.wildfiregames.com/query?status=closed&group=resolution&milestone=Alpha+23
An overview of all tickets handled is found at the respective milestone on trac.
To download and install the developmental release of 0 A.D., have a look at the build instructions.
The following list presents all changes noticeable to the end user up to r21946, more important ones first.
Many small bugfixes, typo fixes and code cleanups are not mentioned here.
AI
r20025 Actually make the AI aware of aura and tech modifications of templates
r20031 Stop Sandbox difficulty Petra from expanding
r20039 Improve support for more than 3 phases.
r20052 Support more obstruction shapes (eg arches).
r20063 Fix building of first CC (which is also used if all CCs were destroyed when rebuilding).
r20065 Let Petra build wonders to increase the pop-cap, even if not in Wonder victory mode.
r20072 Improve the behavior of currently capturing units when these are attacked
r20084 Remove the obsolete tutorial AI
r20107 Some protection against missing templates
r20108 Look for naval treasures
r20162 Template loading from the AI (#4611)
r20175 Account for diminishing returns of fields
r20209 Stop trying to defend some structures in unconnected territory where there is no chance to defend them.
r20253 Try to make a better usage of ranged siege units.
r20260 Rework the management of siege units in attacks, to remove some civ hardcodings + some cleanup
r20269 Tune the proportion of support worker
r20291 Tune requirements when building defenses
r20319 Allow gatherers to switch to a nearer resource when slots become available
r20320 Unify trade gain computation between simulation and ai
r20389 Allows stables and siege workshops to build orders for all civs.
r20399 Allow elephant stables for all civs.
r20409 Revisit the management of constructions for better performances and cleaner implementation.
r20455 Look for initial treasures at start game, sometimes needed on nomad maps to build the first cc.
r20479 A few tunings and add protection in tradeRoute serialization in case a market was destroyed in the last few turns between AI running and serialization.
r20480 Allow the ai to run without loading all templates at startup.
r20509 AIManager: loads only the used templates when starting (or deserializing) a game.
r20510 Decrease the number of trained siege units in easier difficulty levels.
r20511 Improve the way to detect that an ally is attacked.
r20521 Units should only be able to build structures from their owner's civ, and not from their identity civ.
r20577 Allow fast-forwarding of matches with only AI players.
r20603 Add a {native} civ replacement in buildable and trainable template names.
r20658 Check not only the generic resource type but also the specific one when assigning a gatherer (useful for some mods)
r20671 Choose AI behavior in gamesetup
r20837 Improve petra behavior in death-match: allow more builders when plenty of resources and replace tests on the current population by tests on current + in-training-queue population (that allows faster phasing up).
r21048 Make the ai aware of invulnerable entities.
r21138 petra update for kush.
r21213 petra adaptation to changes in dock positioning in random maps.
r21424 fasten late game by not waiting to have a huge army before attacking nearly defeated enemies.
r21461 make the ai able to build docks in islands in which it has no cc, and use them for trade.
r21514 take docks into account when positioning storehouses.
r21515 destroy unprotected docks about to be captured.
r21614 use standground stance for packable units as default.
r21751 allow the ai to use ranges for mod who support them, and add Archery class to ranges to allow differentiating them from barracks.
r21753 improve mod support by allowing civs to build corrals when they can't build fields, even if the field template exists.
r21757 support upgrade from one garrisonable structure to one non-garrisonable.
r21758 make some use of mobile dropsites.
Art
Kush civilization
r21128 Add Kush civilization.
r21510 New nuba camp kush building set is now complete.
Improvements
r19948 Give Spartan elite spearmen heads. (#4686)
r19964 Give Scythian archers capture animations (#4711)
r20020 Fix 6x6 and 8x8 foundation actors.
r20273 Spartan buildings part 1
r20298 Spartan buildings part 2
r20312, r20313, r20315 Spartan buildings part 3 + Iberian archery range
r20325 Persian range and Iberian stables.
r20339 Iberian workshop, siege workshop, stables; Persian elephant stables, workshop, ballista tower; Seulicid archery range, stables, workshop
r20342 Seleucid elephant stable and Carthaginian regular stable.
r20374 New unit selection textures for the healer and mods/future usage.
r20414 New Brittonic stable.
r20418 New Brittonic range.
r20425 New Brittonic storehouse.
r20427 Carthaginian range, workshop, elephant stable, Mauryan stable, Babylonian defense tower.
r20443 New Brittonic workshop. Add new textures for Pureon's onager
r20446 New ram for Mauryans.
r20458 New bows and arrows for every civ.
r20482 Add new textures for onager.
r20483 New siege fire animations for units.
r20488 New tools.
r20489 Remove files which would break copyright. Add the links and the license to the other files and name the authors.
r20492 Mauryan range and workshop.
r20508 New Gaul stable.
r20569 Allow models using alpha-blending (transparent models) to be silhouette casters.
r20615 Adds the basic actor/material validator.
r20631 Support the female citizen idle-carry animation.
r20651 Add Alexandermb's crocodile swim animation. (Unused for now) It will be used when implementing amphibious units.
r20663 New Zebu animations and armature.
r20666 New rabbit.
r20676 Let the template define the actor used for the projectile.Also let projectiles have an impact animation (such as an explosion).
This will enable us in the future to have technologies that change projectiles. (#1909)
r20689 New boeotian helmet for gastaphretes.
r20690 Add gastaphretes.
r20710 New seleucid chariot, using the new horses.
r20715 Add new horses and update the actors accordingly.
r20724 Add two dogs as fauna, in case people want to use them for scenarios.
r20727 Update the rnc file and compile it with trang to allow variant inheritance. This already worked, without the game even complaining, but the validator.pl would complained (as it should have).
r20728 New pilos helmet and textures.
r20741 New chalcidean helmet and textures.
r20743 Change the frequency of the variant files to allow a more uniform distribution of helmets.
r20744 Improved texture for hele archers.
r20747 New illyrian helmet and textures.
r20754 New variant for the kausia cap.
r20764 New Seleucus Nikator (Victor) helmet.
r20765 New highcrest version for chalcidean helmet.
r20767 New Phrygian cap and mask.
r20768 New Agema helmet.
r20769 New hoplites helmets.
r20770 New officer helmets, update the current ones.
r20812 New bubble icons.
r20817 Add a variant file for death and run variants of horses.
r20833 Move winter versions of civil centre and market.
r20840 New Muskox texture.
r20841 Ptolemies stable,range,workshop,e-stable & Roman stable.
r20849 New peytral textures for horses.
r20916 - r20927 New cavalry icons for Romans, Macedonians, Mauryans, Persians, Ptolemies, Seleucids, Spartans, Britons, Gauls, Carthaginians, Iberians.
r20930 New pouch for Macedonians slingers.
r20941 New peytrals textures.
r20944 Add missing icons, and update boudica's.
r20947 Make the zebu trainable in the mauryan corral.
r21012 Some new icons for fauna.
r21013 Some new icons for the dogs.
r21035 New spears.
r21038 New Chamfrons for seleucid elite horses.
r21059 New celt hero icon.
r21065 Use the icon for the 300 version of Leonidas.
r21099 New mushrooms for maps.
r21145 Fix Kushites blood display, move the blood to the variant, and add the variant to the units missing it.
r21147 Idle carry animations for athenians infantry.
r21154 Add rubble to stoas.
r21159 New range icon.
r21208 Add new textures.
r21209 Add a new hero (harsiotef father of nastasen) that should replace nastasen eventually.
r21219 Add running animations for carrying units so that they do not glide.
r21244 Seleucid main menu foreground update.
r21258 New animation for fishermen.
r21260 New Kushites Statues.
r21275 New Blemmye camp for Kushites.
r21326 New camels models, animations and textures.
r21352 Add snow particles for mapmakers.
r21393 New pers quiver.
r21516 New saddles, peytrals, and horse armors.
r21532 New textures, towers, and cushions for carthaginians elephants.
r21543 Add the new tower to ptol elephants as well.
r21553 Improved Ptol textures.
r21575 New Kushite icons.
r21590 New icon for Leonidas using the new background scheme.
r21629 Final barrack split assets for Rome, Greece, and Gaul.
r21648 New textures for the zebu.
r21653 New horse animations.
r21731 New greek quiver.
Minimap
r20345 Display fruit tree as fruit and not as wood on the minimap. Rework a bit inheritance of fruit tree and of wood bushes. The noticeable change is that fruit tree block movement as other trees.
r20471 This fixes the defeat when only promoted/upgrades/regi-hero units remain. Add foundations to the conquest lists and make them visible on the minimap.
Auras
r20299 Ranged auras not enabled (because of a tech requirement for example) should not be visualized
r20300 No need to create aura's rangequery when the aura is not applied
r20461 Workshop repair aura
r20462 Allow loot to be modified by technologies and auras
Atlas
r20021 Help menu pointing to the manual and helping with reporting bugs
r20058 Add scrollbars to all tabs. Should make Atlas more usable on small resolutions.
r20327 Cleanup horizontal alignment flags being ignored, fix warnings on a start. (#3824)
r21223 Atlas should only list map JSON files as maps.
r21274 Add Nomad checkbox for Atlas.
r21338 Use a macro for creating checkboxes in the Atlas map panel (other panels code checkboxes in a different way).
r21540 Adds maps paths and a tutorial maps tab in Atlas.
r21658 Disable some session buttons while in Atlas rather than spamming JS error stacks onTick.
r21675 Properly handle map resizes in Atlas.
Audio
r20236, r20211 Projectile impact sounds even if the firing unit died meanwhile. New siege impact sounds. (#4779)
r20367 Allow attack and attack_impact sounds for multiple attacks
Add "melee", "ranged" etc. to the template tag name, Allow and use specific sounds for slaughter, Rearrange the templates a bit, and so add missing sounds.
r20751 Add 8-bit easteregg music track.
r21039 New completion sounds for archery range.
r21240 New music The Governor.
r21245 Added old and new versions of the same music.
Balancing
r19956 Change CtR default to 2
r19967 Unsuccessfully bribed people get to keep your money (#4623)
r20210 Healers, fishing boats, and merchant ships are no longer conquest critical
r20248 Domesticated animals are no longer visible in FoW
r20314 Revert a naked fanatic armor nerf done in r19697. It has now the same armor as other champions but doesn't have the armor bonus of spearmen.
r20334 Tweak a bit Scipio's aura radius.
r20363 Tweak a bit citizen cavalry costs. Follow the same infantry vs cavalry policy as for champs and heroes. Motivations are: infantry vs cavalry consistency (from the abstract unit role point of view), preventing some unbalances, enforcing a more realistic infantry vs cavalry ratio in the game.
r21268 Only apply Roman team bonus to citizen-soldiers.
r21269 Hero aura adjustments.
r21271 Increased loot for promoted units.
r21280 Adjust some structure stats.
r21281 Adjust some unit stats.
r21282 Nerf skirmishers.
r21284 Give spear cavalry an anti-cav bonus.
r21285 Increase cavalry train time and decrease champion train time.
r21321 increase vision range of fishing boats from 24 to 30.
r21348 Decrease a bit the clearance of fishing ships (from 4 to 3).
r21467 Adjust melee and slaughter max range to better match animations.
r21473 Remove war dog slaughter attack.
r21477 Kushite tweaks and balancing.
r21790 Increase min range of catapults and bolt shooters.[[BR]
Game Mechanics
r19950 Damage upon death/destruction (#1910)
r19969 Linear splash damage now uses the correct vector
r20007 Calculate spread from the aimed at a position instead of the current target position
r20015 Make civ and classes bonuses work for splash damage
r20079 Allow BuildRestrictions Min and Max distance to be modified by techs and auras (see TechModifications)
r20122 Allow different victory durations for CtR and Wonder victory modes.
r20156 You can only win once
r20193 Mark exhausted resources as not available, improves gatherer behavior in cases where a resource is depleted
r20204 Delayed damage (currently used by the fire raiser (#1911)
r20223 Less random walks for animals.
r20497 Let units face away from the building they were trained or ungarrisoned from.
r20498 Allow walls to have rally-points.
r20542 Wild domestic animals should stay visible in FOW.
r20551 Allow civ specific techs with {civ}.
r20620 Make houses conquestcritical, since the can train female.
r20686 Allows Healers to be ejectedOnDestroy from ships.
r20687 Add support for diplomacy changes for wonder victory.
r20750 Use phase techs to determine phase order in structure tree.
r21074 Remove the alert status on units.
r21144 Spawn units in rally point direction.
r21272 Adjust spread multiplier in technologies.
r21343 Town bell - use matching classes, add a market alert.
r21378 Allow units to be positioned with freehand placement.
r21429 Adds axes to the CChart and the summary screen.
r21471 Sound and Target Marker for freehand positioning of units.
r21474 Implement combine victory conditions.
r21497 Wheel-adjustable batch size.
Hotkeys
r20441 Introduce a new hotkey to order only one unit from the current selection. (Alt + Right Click)
r20578 Idle unit hotkey. (BackSlash)
r20594 Add a move modifier hotkey. ()
r20608 Attack Range Visualization. (#3915)(Alt+C)
r20642 Hotkey to select wounded units. (O)
r20725 Add a hotkey to toggle tutorial panel. (Ctrl+P)
r20736 Non-military unit selection filter. (Alt+Y)
r20959 Use Tab and Shift+Tab as the default hotkey to switch tabs.
r21173 Add a hotkey to toggle diplomacy colors.
r21681 Change key shortcut for Structure Tree.
Formations
r20877 Stop formation when ordered to stop.
r21006 Fix formation auras.
r21042 Disable attack as formation.
r21468 Disable speed bonus for formations.
r21686 Disable ship formations.
r21700 Formation debug update.
r21701 Remove formation minimum range and stop formation when in member state.
GUI
r19955 Victory and defeat reasons (#4382)
r19957 Rally point lines now in player color (#4618)
r19965 Update the color of the selection ring, rallypoints and territory outline when the playercolor is changed in Atlas (#4643)
r19966 Build time tooltip now with more correct values
r19970 Resource total now on the left in the summary screen
r19980 Allow users to interact with the GUI while cinematics are playing
r19987 Fix the attack cursor for entities in the FoW
r20005 Support XMPP MotD
r20006 Make the sorting arrows in tables point in the correct direction
r20050 Display all relics and heroes for observers (where all means less than 19 in total)
r20070 Display old chat messages in the lobby when returning from a game
r20071 Visual move order indicator (#4732)
r20073 Display the move order indicator to observers when following a player
r20075 Implement readonly Input GUI objects, allows users to copy paths in the replay menu
r20081 Focus on deleted entities in observer mode if following a player
r20097 Display the move order indicator in the SoD
r20101 Use tabs for the options page
r20195 Make the text in the mod selection screen readable.
r20224 Align session dialogs
r20250 Fix the repair hotkey
r20254 Equal siege status bar sizes
r20271 Add spies to the summary screen (#4498)
r20289 Only close the diplomacy window on successful bribe
r20305 Enlarge default sidebar size, so everything is visible by default
r20333 Make the biome setting visible for mp clients.
r20524 Enlarge dropdown size for the ingame gamespeed dropdown, so the scrollbar is hidden for replays.
r20529 Gamesetup panel should indicate the AI level without having to open the AI-config panel.
r20535 Include entire directories in GUI pages instead of a subset of the files contained, where possible. This allows mods to add new JS files without introducing a hardly maintainable copy of the XML file.
r20543 Count Trained Cattle as a resource and not as a unit. Also only count the net amount of gathered/used food for cattle.
r20550 Enable and disable mods more comfortably using the doubleclick event, filter mods while typing.(#3574)
r20566 Add AI difficulty in options(#4876)
r20584 Option to disable fog effects. (#4626)
r20585 Add gui tag color setter function so that we don't have to read and ensure the color syntax each time.
r20599 Add buttons to visit the website of the selected mod. (#4890)
r20644 Implement hotkeys and mousescroll to change tabs in tabbed pages (credits, summary and options).
Save the latest page and graph in the summary screen Implement a hotkey to open and close the summary screen for the replaymenu and ingame.
r20646 AI behavior gamesetup setting.
r20697 Add helper function to apply arbitrary GUI tags (such as font and color).
r20705 Display AI behavior, difficulty and name in the tooltip in the diplomacy and summary screen.
r20782 Display the summary screen as a dialog if it was opened during a running game or replay.
r20872 Allow the JS GUI to find out if the lobby client is currently disconnected.
r20945 New UI for gamesetup settings.
r21071 Make the resource/pop tooltips sortable.
r21072 Use a countdown rather than a tooltip for displaying construction progress.
r21076 Show rank icon above status bars.
r21107 Add a button to toggle between normal and "diplomacy" colors.
r21121 Add a repair time tooltip.
r21184 Create an In-Game tab in the options menu, add periods in all option tooltips.
r21307 Add a countdown timer to the research progress panel.
r21310 Implement an in-game Template Details Viewer.
r21319 Add a diplomacy colors button to the diplomacy window.
r21339 Add buttons for changing between, and hotkeys for opening, the civinfo and structree.
r21365 Donate button.
r21509 Add a loading screen tip featuring the freehand positioning feature.
r21521 Display all gamesetup setting is gamedescription.
r21527 Implement basic color editing in the options page and use it for the diplomacy colors.
r21721 Make modmod looking nicer.
r21725 Implement a "modern" style progressbar.
GUI scalability
r19928 Take gui.scale into account when repositioning tooltips.
r21379 Make sure dropdowns fit in the screen by allowing the list to be above when there is not enough space.
Cheats
r20733 Allow cheats to pass negative numeric arguments and default parameters for cheat arguments that are strings.
r20734 Add cheat code to play arbitrary music playlists, by default the 8-bit retro easteregg track from rP19890.(#4677)
r21591 Update the salad bowl cheat.
Maps
Triger Scripts
r20760 Allows trigger script with different difficulty levels.
r20790 Fix trigger difficulty level for translation.
Random Maps
r19974 Danubius: More gates for the fortress
r19972 Danubius: Stop spawning attackers on wiped outsides (#4715)
r20123 Polar Sea: Speed up target finding for Gaia wolves
r19935 Latium: More than two metal mines
r20264 River Archipelago, Corinthian Isthmus: Remove unneeded waterheight init loop (with awkward 1 tile sized bump) that is redundant with the SmoothElevationPainter?
r20290 Cycladic Archipelago, Lion's Den: Fix collisions of random forests and mines with starting resources(#4600)
r20316 Corinthian Isthmus: Fix collisions of random resources and starting base resources(#4600)
r20362 Delete _kali's Alpha 21 maps since it is not certain that they are not derived works(#4226, #4816)
r20391 Adapt trade gain normalization to map size (increased on small maps and decreased on large maps) and slow down the increase of the gain at very large distances.
r20626 Update random maps that use rmgen wall-placement.
r20659 Provide a TriggerHelper? function to spawn garrisoned entities.
r20788 Refactor Alpine Valley mountainrange code.
r20802 Fix a resource collision in rP17903 in the Lions Den and in rP12747/rP12654/rP12545 in the Unknown maps.
r20858 Fix unreachable trees on Oasis.
r20864 Fix collisions of mines with trees and berries on Schwarzwald.
r20866 Nomad mode on all random map scripts (except Survival of the Fittest).
r20906 Fix pigs and chicken inside the CC and mines on Deep Forest by not using the terrain-painting based approach of placing entities which is free of any collision checks.
r20910 Randomize map orientation on most river maps, Gulf Of Bothnia and Migration to remove hardcoded magic numbers and add more variation for the player.
r20979 Add Scythian Rivulet random map script.
r21090 On Persian Highlands, allow players to chose the summer or spring variant in the gamesetup.
r21113 Allow random map scripts to load heightmap image files.
r21131 Implement random map script backend to read terrain PMP files created with Atlas.
r21133 Implement JS random map library.
r21135 Red Sea random map replica.
r21157 Mediterranean random map replica.
r21161 Ratumacos / Rouen replica.
r21162 Marmara replica.
r21163 Bahrain random map, replica.
r21164 Pompeii random map script.
r21165 Ngorongoro replica.
r21175 Implement SmoothingPainter? for random maps.
r21228 Hellas random map script.
r21248 Dodecanese random map.
r21264 Stop the random map generation upon quit request (Alt+F4).
r21330 Elephantine random map script.
r21377 Lower Nubia random map.
r21402 Aethiopia random map.
r21488 Jebel Barkal random map.
r21555 Implement an EntitiesObstructionPlacer? that allows random maps to avoid exactly the obstruction area of given entities (rather than avoiding a guesstimated disk area).
Skirmish maps
r20883 Add Via Augusta.
r21420 Egypt skirmish map.
Scenario maps
r21139 make kush demo map consistent with others.
r21364 Napata demo map.
Biome library
r20115, r20117, r20118 Allow selecting biomes for random maps
r20127 Move the random biome code to a new library
r20129 Move biome definitions to JS and JSON files to allow mods to add new ones easily
r20131 Remove hardcodings to allow mods to remove biomes.
r20139 Biome descriptions
r20889 Move map specific biome constants to the scope setting that biome in that map.
Only Gulf of Bothnia didn't have it grouped yet.
r21010 Extend random biome system to support map specific biomes.
r21155 Add small metal mines to biome files.
r21504 Add a second biome (rainy season) to the Aethiopia map.
r21512 Allow biome JSON files to contain null values.
r21523 Display map biome specific preview in the replay menu and loading screen too.
Map Generation Library
r19929 !Fix SimpleGroup and RandomGroup placement retries (#4294)
r20265 Deepfreeze the map settings object (created from g_GameAttributes.settings by the gamesetup extending the map JSON data) to prevent random map scripts from unintentionally modifying that.(#4257)
r20268 Add a TerritoryDecayManager? component to update territoryMap with the blinking state when territories are recomputed.
r20272 Add non-static clone functions for vectors
r20276 Cache a list of TerritoryDecay? components in the TerritoryDecayManager?
r20283 Fix rmgen2 SimpleObject? and RandomObject? ignoring the 3 invalid map border tiles.
Let validT take the responsibility to account for the actually valid region of map tiles instead of each caller.(#4814)
r20328 Add Math.square to compute the square of a number without the need to repeat the term, without using the slower Math.pow.
Start unifying the euclidian distance functions instead of adding yet another helper function to the random map script library after this diff.
r20331 Remove rmgen euclidian distance helper function, Use Math.square(x) instead of Math.pow(x, 2) in places that don't multiply it with Math.PI.
r20332 Add diskArea rmgen helper function and use it instead of Math.PI * Math.pow(radius, 2).
Use getMapArea instead of mapSize*mapSize.
r20360 Rename placer.js to placer_centered.js and pathplacer.js to placer_noncentered.js(#4804, #4831)
r20368 Remove min/max mapsize constants from the rmgen library.(#4034)
r20370 Construct the final object containing the random map data in ExportMap? passed to the engine in place instead of scattering that in multiple functions of multiple files.
Remove camera centering in that function because it contradicts the modifiability of the camera global (besides being broken and only coming into play if there are no player entities).
r20383 Extend the cubicInterpolation function to consume a tension argument allowing to modulate the smoothness of the interpolation.(#892, #4218)
r20396 Use only one coordinate system for locations in the rmgen system.(#4034)
r20525 Rename RMS to Engine.
r20789 Remove rmgen Math.ceil proxy and unused lerp function.
r20815 Implement random map script playerbase function.
r20857 Simplify island generation on Islands.
r20862 Add rmgen HeightConstraint? to allow placing entities in a given height range.
r20874 Add randomAngle helper function.
r20894 Implement MapBoundsPlacer? that returns all points on the tilemap.
r21069 rmgen random placement and Entity instantiation refactoring.
r21073 Implement rmgen JS logger that measures the time for each procedure.
r21080 Implement getBoundingBox and getPointsInBoundingBox rmgen helper.
r21085 Implement rmgen SlopeConstraint? which is met if the elevation difference is within the given range.
r21182 Implement ElevationBlendingPainter? which interpolates the height of the given area with the desired height.
r21224 Area getClosestPointTo helper function that allows dock placement on random maps without preknowledge about the water location.
r21225 Implement a DiskPlacer? to enable random map scripts chosing all points inside a circle without using a special case of the other placers.
r21289 Separate object-oriented random map generation core library "rmgen" from miscellaneous helper procedures which are moved to a new library "rmgen-common".
r21485 CityPainter? for random map scripts that fills the given area randomly with the given templates.
Tutorial Maps
r20084, r20085, r20086 Convert the Introductory Tutorial to a tutorial map
r19998 Fix tuturial being stuck (#4696, #4697)
r20778 Replace the hardcoded keynames of the Introductory Tutorial strings with the sprintf solution from.
Remove hardcoded default batch training size and GUI row count hint (which could have become invalidated too easily).
Renderer
r20001 Shadow map quality option (#4351, #743)
r20378 Adds a wireframe mode to the water rendering.
r20583 Reload water shaders too when changing shader settings.
r20622 Render the range visualization of auras, heal and attack component in a separate RangeOverlayRenderer? component instead of abusing Selectable for that.
This also allows non-selectable entities like building previews to cast range visualizations.
r21291 Added multiples UVs to animated model.
Preparation for Isometric view
r20377 Adds a perspective matrix, refracts a matrix projection setup to prepare for an isometric view.
Lobby
r20776 Support both DateTime? formats of XEP-0082 in the lobby.
r20868 Don't crash while in the lobby when receiving an error IQ stanza without an error payload.
r20886 Enable players to open the lobby as a dialog in the gamesetup, running games and the summary screen.
r20958 Implement an auto-scroll setting for GUI lists.This allows the replay menu and lobby to focus the selected element if, but only if it is expected by the user.
r20960 Only initially focus the chat input in multiplayer gamesetup, so that the Tab hotkeys new in are immediately available in singleplayer.
Also, focus the chat after having clicked the Send button.
r20967 Add civ settings in lobby for the selected game.
r21003 Unify Gamesetup/Lobby? Chat Design.
r21263 Add the lobby button to the summary screen.
r21301 Check lobby games for incompatible mods.
r21311 Adds remember password checkbox.
r21718 Lobby Bot Optimizations and Upgrade to recent SleekXMPP/ejabberd versions.
r21719 Send rating related requests directly to EcheLOn.
r21720 Update mod_ipstamp for current ejabberd versions and update lobby setup instructions.
r21742 Allow lobby players to watch the replay of the game just played without disconnecting them from the lobby,
because they can open the lobby as a dialog while replaying the game in this release.
r21761 Ask the lobby player to open the mod selection page if the mods don't match the ones from the lobby host.
Network
r20321 Add id for IQ stanzas
r20341 The server should choose the guid
r20557 Don't display a timestamp when an invalid command is sent
r21023 Don't trigger a NetServerTurnManager? debug breakpoint if a modified or unmodified client sends a non-sequential turnnumber.
Disconnect that client.
r21520 Secure lobby authentication - prevent joins as a different player.
Engine/Modding
r19951 (and a few more later) Allow the AI to load custom templates (follow-up to #2951)
r19952 Allow using {civ} in builder lists when some civs don't have those templates without errors
r20035 Fix an assertion failure when closing the game in the map loading screen (#4154)
r20067 Add a window icon (#4363)
r20120 Allow specifying the gravity affecting projectiles
This allows for different flight paths (eg mortars, magical projectiles).
To keep the same behavior as previous iterations of the game add
<Gravity>9.81</Gravity>
to the<Attack>
tags of your templates.
r20141 Add -unique-logs parameter to make debugging of OOS issues locally easier
r20181 Move placeable templates out of special/.
Specifically
special/territory_pull
is nowother/territory_pull
, andspecial/trigger_point_[A-K]
aretrigger/trigger_point_[A-K]
, update your map xml files and trigger scripts accordingly.
This is part of a change from a placeable filter approach (where one has to explicitly list all folders/templates that can be placed in the atlas) to an unplaceable filter approach. This should make it easier for modders to use a different folder structure than the public mod, and have it work without any changes. We assume that adding unplaceable templates happens less often and that modders will notice if they can suddenly place something they added that shouldn't be placeable.
r20196 Add FloatDepth property to Position.
This allows to have amphibious units that swim at a certain depth.
To keep the current behavior add
<FloatDepth>0.0</FloatDepth>
to all<Position>
tags of your templates (probably as high up in the inheritance hierarchy as possible).
r20203 Move damage types definition to a helper similar to how resources are handled.
This should make it somewhat easier to add new damage types. (See #4801 for more improvements.)
r20204 Delayed damage. Can be used for grenades or similar. (#1911)
To keep the current behaviour for ranged attacks add
<Delay>0</Delay>
to the<Ranged>
tag of your<Attack>
tags.
r20215 Remove special_units/
by using inheritance.
r20241 Move formation templates from formations/
to special/formations
.
Part of the placeable/unplaceable restructuring.
Make the same moves for your mods, also update all templates specifying formations (
<Formations>
tag within<Identity>
tags).
Update your civ.json files. Prefix
special/
for all entries in the"Formations"
property array.
r20242 Move special_filter/
templates to special/filter/
.
Move any filters you have in your mod to the new folder.
r20244, r20252 Make rubble non-decaying by default.
If your mod specifies rubble in
<SpawnEntityOnDeath>
(within<Health>
), or elsewhere you should prefix those occurrences withdecay|
. Specify different decay settings in the individual rubble templates, thedecay|
filter just activates the decay.
See the commit for a *nix one-liner to make this change for you. (As always check the end result, and use a version control system.)
r20246 Switch back to an unplaceable filter for templates.
This makes
rubble/
placeable.
The only unplaceable templates from now on start with
template_
orspecial/
. All other templates now show up in Atlas, and in code queries for all templates.
Allows using different template organization schemes (subfolders, different folders, etc).
r20249 Command line options can now start with -
or --
.
r20589 Amend wallpiece lengths. (#2944)
r20575 Deprecate type property of mods.
Such a property should be well defined, but currently, it contains arbitrary text and is redundant with the description. (#4890)
r20614 Support translation of mod labels and description.
r20625 Remove civ-specific hardcoding in rmgen wall-placement script. (#2944)
r20729 Delete Savegame format version, refs rP10454.
It is unneeded because we won't add backward compatibility for previous formats and
because the engine version check from rP16906 is sufficient and more accurate in testing the compatibility of savegames of different releases.
The simpler code allows unifying the savegame version check with the check used by the replay menu (to be used in multiplayer gamesetups).
r20899 add a protection for mods without the expected metadata.
r20939 Garrisoned units are lost after an upgrade towards a non-garrison holder.
r20952 Move domestic animal Cost to the trainable templates.
r21093 Move ruins templates to a new gaia/ruins/ subfolder.
r21094 Move ruins templates from other/ to gaia/ruins/.
r21095 Move gaia/special_treasure_* to gaia/treasure/.
r21239 Check for and save mod version for savegames and replays.
r21723 Define and associate .pyromod filetype with pyrogenesis on Linux and Windows.
r21726 pyrogenesis can now take a zip file (rename it to .pyromod for direct file association following r21723) and install it. It then starts the mod selector.
r21759 mod.io support.
mod.io is a new platform for sharing mods, that 0 A.D. can make use of in order to download mods and install them.
Performance Optimizations
r20256 Fix lag from moving to the edge of the map
r20438 Fix lag from sinking ships (#4713)
r19936 Stop copying the territory grid when recomputing the texture.
r20311 Some performance optimizations.
r20438 Use the rangeManager's subdivisions in the obstruction manager shape tests
Completes an existing TODO. This is a large speedup in some cases for those test functions, particularly the "sunken ship lag" issue.(#4713)
r20571 Change gathering rally points to use gather instead of gather-near-position when possible.
r20630 Improve Hierarchical Pathfinder Update, somewhat substantially on larger map sizes
r20634 Long range pathfinder cleanup Remove ACCEPT_DIAGONAL_GAPS as it was unused and will not be used in the future. Use PASSABLE macro everywhere. Simplify considerable OnTheWay? as MakeGoalReachable? returns a point goal.
This doubles as a very slight optimisation, on the order of microseconds per call.
r20876 Gather near dropsite rather than current position after finishing construction.
r20878 Consider that the point could be inside the goal area in some PathGoal? functions.
r20950 Use correct distance for determining nearest dropsite
Use the distance to the nearest point on the dropsite's obstruction rather than the center of the dropsite.
r21019 The gui shouldn't load again needed templates on each turn.
r21088 Accelerate Danubius map generation performance, from 90 seconds to 15 seconds.
r21092 Performance improvement on Kerala.
r21418 Performance improvement for the StaticConstraint? by not initializing the cache upon construction but filling it just-in-time.
r21425 Improve random map script performance by using squared distance where possible.
Libraries Updates
r20340 Update the bundled gloox wrapper for Windows.
r20407 Update Boost to 1.65.1 and provide static libs (built with XP toolset) for upcoming VS 2015 support.(#3004)
r21501 Update libcurl for OSX, in order to fix the build. Use the opportunity to update libxml2 which had vulnerabilities.
r21583 Update some OS X libraries with security fixes and hopefully low regression risks.
r21674 Use libsodium for cryptography.
r21683 Update libcurl to 7.59.0 on Windows and enable SSL support on Windows and macOS.
Profiling
r21602 Simulation replay profiling graph overhaul.
r21694 Ease comparison of two replay profile graphs by typing the filename in the browser instead of renaming the data.json files.
Building scripts and linting
r20364 Linting with Coala.
This new script and the associated configuration files lint our source code (JS and C++). This will be extended in the future.(#4833 )
r20365 Add our script for building patches with Jenkins to version control.(#4419)
r20366 Alpha 12 version of Premake 5, including prebuilt binary for Windows .(#3729)
r20381 Migrate to premake5, Make pyrogenesis and tests depend on Collada, This commit includes custom modules for CxxTest? and pkg-config support that can be improved upon in the future. It also includes all necessary changes to the build scripts, but the new premake5 features are not fully exploited yet. With this change, premake5 becomes the default, but CI scripts on Unix will continue using premake4 for a while, in order to avoid regressions.(#3729, #404 )
r20561 Use default Unicode encoding in source code on Windows.
r20562 Support Visual Studio 2015 (MSVC 14.0), VS 2013 stays the default Windows compiler, but support for it will be dropped as soon as possible.(#3439)
r20563 Go back to the legacy syntax for detecting premake actions.
r21389 Enable multi-processor compilation on Windows with premake5.
r21480 Fix compiler warnings on VS 2015.
Re-release
Lobby
r21822 Fix hosting games in the lobby.
r21823 Alpha 23 "lobby lag" release fix.
r21827 Prevent the lobby gamelist from breaking entirely if a gamestanza contains an empty or invalid mod version JSON string.
r21844 Don't print lobby buddies to mainlog.html.
r21875 Lobby to optionally require TLS certificate and certificate verification.
r21877 Always require lobby authentication for lobby matches.
r21901 Display lobby TLS certificate verification errors from gloox.
r21909 Increase minimum password length on the lobby from 1 to 8.
r21924 Support connecting the lobby bots without TLS errors if the server does not deliver a valid, non-self-signed certificate.
r21925 Complete the lobby server readme and provide a sample ejabberd configuration file. Describe Wildfire Games undocumented, but relevant or even required configuration settings.
r21932 Allow users to disable TLS encryption entirely in the GUI to ease use of the lobby if gloox/GnuTLS crashes upon TLS handshake.
r21943 Update client\'s default.cfg for the new muc room arena23b.
Network
r21832 Report network timeouts and lag warnings to clients that finished the loading screen but are waiting for other clients to finish it.
r21840 Support parsing config values as u32.
r21842 Prevent players from disconnecting during the loading screen by increasing the timeout tolerance to 60 seconds for that period.
r21854 Prevent hosts that didn't modify C++ code from starting the game without all assigned online players being ready (launchGame(); cheat).
r21918 Use a banmask for multiplayer matches that have lobby-authentication enabled.
r21944 New mod signing key for A23b.
Performance Optimizations
r21838 Disable AIInterface earlier to remove unnecessary lag on gamestart.
r21900 Don't delay the pyrogenesis shutdown for 5 minutes but at most 10 seconds if the server is not responding.
Terms, Policy and Licensing
r21847 Rewrite the prelobby pages and add the Terms of Service, Terms of Use and the agreement checkbox to the login page.
r21850 Persist the lobby Terms Of Use and Terms Of Service checkbox if the logged in user and the accepted versions of the pages didn't change since last login.
r21867 Hide userreporter ID from mods and logfiles, since it shall be used as an authentication token for GDPR personal data requests.
r21887 Refactor lobby terms and conditions UI from rP21847 / D1568 to a new terms dialog UI and reuse that for mod.io and the UserReporter?.
r21890 Inform users that they are subject to the mod.io Terms and Conditions and Privacy Policy and provide links.
r21894 Language selection dropdown in the terms dialog.
r21896 Mod.io Disclaimer.
r21898 New UserReporter? Terms and Conditions, hopefully GDPR compliant.
r21903 Update Lobby Terms Of Use.
r21904 Add COPPA compliance note to UserReporter? and mod.io terms.
r21906 Add liability and third party software exclusion to the Lobby and UserReporter? terms.
r21908 Lobby Privacy Policy.
r21919 Allow the user to print and save the text of the terms and conditions before the conclusion of the contract and use the word "Clickwrap agreement".
r21922 Some terms rephrasing and IP policy update.
Building scripts and linting
r21865 Use pkg-config instead of sdl2-config Resolves build issue on Arch Linux (and Arch-derivatives) (Also forms part of a fix for Slackware-current builds).
r21913 Update macOS libcurl --without-libidn flag to --without-libidn2 following.
r21914 Use static linking for macOS libsodium build.
r21931 Small changes to the macOS build scripts.
r21939 Minor change to the libcurl macOS compilation. nghttp2 can sometimes be detected on the system by configure, whereas we do not provide nor use it.
r21940 Build gloox with GnuTLS on macOS.
r21942 Target 10.9 as minimal OSX version in all scripts, in order to match the libraries build script.
r21945 Correctly choose DarwinSSL TLS backend on macOS for libcurl.