0 A.D. Alpha 27: ———
Go to the changelog overview, if you are looking for a different release.
Check the history overview?action=history to only read updates of this site.
Development started by Wildfire Games on 04/10/2022 (r27104).
Feature Freeze: TBD.
String Freeze: TBD.
Translation Freeze: TBD.
Commit Freeze: TBD.
Release: TBD.
Release Announcement: TBA.
Tickets: link
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 r28184. Many small bugfixes, typo fixes and code cleanups are not mentioned here.
See also Port A26 to A27
Gameplay
r27142 Only entities capable of capturing contribute to the regen-rate of structures (Phab:D4679).
r27244 Garrison Domestic Animals into the Corral to get a ResourceTrickle of Food (Phab:D4380).
r27391 Add area damage to elephants (Phab:D4173).
r27399 Change default action from capture to attack (Phab:D4697).
r27400 Add Roman Centurions (Phab:D4872).
r27406 Han fixes (Phab:D4873):
- Adjust the cost of poison arrows and poison blades.
- Reduce the obstruction area of rice paddies so that they are easier to place.
r27455 Allow to garrison the Han minister in the corral.
r27455 Use different default hotkey ("C") for capturing (Phab:D4908).
r27527 Double wall turret placements for stone walls (Phab:D4914).
r27586 Allow ships to turn while in motion for more natural movement.
r27775 Differentiate Sparta (Phab:D4736): - Syssition and Champions available in phase 1.
- Champions may promote to "Olympic Champions".
- Unique technologies for champion hoplites, melee units, and skirmishers.
- Unlock for Neodamodes spearmen, a cheap spearman that cannot gather.
r27779 Differentiate Athens (Phab:D3727): - Adds Hippocrates as a unique phase 2 hero.
- Elite Hoplites can promote to champion spearmen.
- 3 Unique technologies
- Use a range aura of 2 armor for Iphicrates.
r27794 Fix Liu Bang's Cavalry Aura (Phab:D5080).
r27827 Give Agis a metal discount aura, increase health.
r27828 Differentiate Macedonians (Phab:D5096): - Move Siege workshop to town phase.
- Access Bolt Shooters in town phase.
r27829 Train women from houses without researching fertility festival (Phab:5112).
r27831 Add a small splash attack to catapults (Phab:D5053).
r27834 Differentiate Chariots: Costlier, faster, more health, but slow acceleration (Phab:D5119).
r27836 Briton/Gaul druid aura: "Deas Celtica" (Phab:D5116).
r27852 Carthage apartments accessed in village phase, houses can upgrade to apartments (Phab:5117).
r27858 Return Carthage Sacred Band cavalry to the temple (Phab:D5126).
r27864 Add a "Cataphract" mixin: +1 armor of all types, but +10% metal cost and -5% speed (Phab:5141).
r27865 Reduce bolt and catapult prepare time to reduce clunkiness (Phab:D5131).
r27871 Add a longsword mixin that adds a splash attack (Phab:D5145) r27890 Add Dog Kennel special building for britons (Phab:D5153).
r27898 Add a "Hero" temple for the Ptolemies (Phab:D5169).
r27900 Add the Marian Reforms unique technology (Phab:D5109): - Unlock training Centurions, Onagers, Legionary Swordsmen and Legionary Skirmishers.
- Lose access to Extraordinarii infantry, spear cavalry.
- Allied cavalry are re-skinned to Auxiliary cavalry.
r27901 Add the Onager to complete reforms technology (Phab:D5114).
r27902 Let marines train from the gymnaium, use iphicratean reforms to unlock "dock" variants of marines and archers (Phab:D5168).
r27910 Enlarge chickens so they can't hide in grasses (Phab:D5177).
r27915 "Nile Delta" bonus for Ptolemies, all farming techs available in village phase.
r27922 Garrison rams for added speed and acceleration (Phab:D5179).
r27934 Add "Roman Roads" unique technology for the romans: +5% speed for land units (Phab:5183).
r27951 Increase Ptolemaic bolt shooter fire rate (Phab:D5170).
r27954 Add "Satrapy Tribute" to persian throne hall, allowing the player's choice of trickle (Phab:D5192).
r27956 Add "Woad Warriors" civ bonus for britons, faster infantry (Phab:D5190).
r27958 New tech for the Mauryans called "Ahimsa": +100% berry gather rate, but -80% fish and meat gather rate (Phab:D5175).
r27963 New temple technology "Sacrificial Ritual": Healers train 40% faster, and the metal cost is removed (Phab:D5188).
r27978 Remove territory decay from Roman Army Camp and Siege Walls (Phab:D5215).
r27990 Move Persian Immortals to the barracks, make them cheaper and weaker (Phab:D5202).
r27996 Naval Overhaul (Phab:D5213): - Ships do not use BuildingAI.
- Ships are split into unit roles: scout ship, arrow ship, ram ship, fire ship, and siege ship.
r28021 Gameplayfix Use a promotion approach for Roman reforms special tech (Phab:D5206)
r28072 [Ships]Gameplay Update tooltip for fire ship, reduce ignition time
r28081 Gameplay Increase capture points for Temple of Amun
r28094 Gameplay Skirmish Maps | An updated Sporades Islands map more suitable for 1v1 play and includes some of the newer elements for this alpha.
Maps
r27635 Fix incorrect fruit bush in Gulf of Bothnia frozen.
r27899 Add a new 2 player skirmish map "Isthmus of Corinth" (Phab:D5164).
r27903 Update "Watering Holes" 4 player skirmish map.
r27909 Fix very steep shores in Elephantine (Phab:D5132).
r27992 Add water level support to Flood (Phab:D5139).
r28098 Clean code of Belgian Uplands:
- The heights are now a constant array. Instead of pushing the heights to an array.
- The terrain are now always constructed in one expression. Instead of calling .concat repeatedly.
- The actors and the probability thereof are now also part of the object. Separation of data and code.
- Player placement is now a iife.
r28099 Biomes for alpine_lakes and alpine_valley
r28104 Clean code of Caledonian Meadows
r28105 Clean code of Unknown
r28119 Adopt the generator based interface by generated maps (Phab:D5258)
AI
r27141 Implement simple emergency detection (Phab:D4645).
r28025 PetraAI - Fix resources (dead animals) coming in the defense army.
GUI
r28001 GUI Add a new loading tooltip for Shrines.
r28016 GUI Improve and Combine in-game HUD panel textures into a texture sheet
r28065 Improve batch training time tech description
r28078 Don't move elements in the bottom panel of the game setup
Also fix the tooltip overlaping with the warning.
r28082 GUI Remove Roman numerals from bot names
r28085 Use pageLoop for structree and civinfo
r28135 Finish implementing property "textcolor_selected" for list GUI objects
Art
r28003 [| Templates]Art Improve the look of the Persian civic center with Lamassu statues.
- Also add: A lamassu stone ruin object and a Persian Shrine capturable map object.
r28022 Art A bunch of minor actor and texture improvements that would too inconsequential to have their own commits.
r28023 Art Improve the look of the new Roman Antesignanus unit, based on descriptions posted on the forum.
r28029 Art Fix Add 'garrisoned' prop points to the 3 Carthaginian ethnic Embassy structures.
r28030 Art Materials | Adjust normal affect on a couple terrain materials. The previous numbers were way too extreme.
r28079 Art Add a special rubble actor for the Rice Paddy
r28080 Art Fix the shields on the Roman Siege Ship
r28164 Art Make metal mine sparkles more noticeable.
r28169 Audio Separate the "lion" attack sound effect into shorter soundbites.
r28170 Audio Add new "lion" attack sound to the proper fauna templates.
r28171 Art Make metal mine sparkles even more sparkly.
r28174 Add a cleanup deer, with all textures, animations and props to the source.
Modding
r27245 Use Requirements helper for requirements (Phab:D4514). Allows:
- Having multiple requirements.
- Having entity requirements.
- Negating tech requirements.
r27883 Remove Engine.IsGameStarted (Phab:D5143).
r28002 Templates Add a new mixin for Pirate ships.
r28006 Mixins Change the metal cost effect from multiply to add. Multiply didn't work correctly with Pirate Scout Ships.
Balancing
Include community balance mod:
- r27392 Move tier 2 blacksmith technologies to Town Phase.
- r27393 Rebalance healers by making them cheaper.
- r27394 Pericles and Themistocles improvements.
- r27395 Axe cav minor buff.
- r27397 Rebalance some civ and team bonus.
r27407 Han: Reduce pop cost of ministers (Phab:D4874).
r27410 [Mod]Community Includes (Phab:D4877): - CC/colony cost changes
- Roman camp in p2
- Spearcav acceleration increase
- Alexander hero auras
- Seleucid civ bonus
r27584 Reduce Batch modifier of Upgraded Han CC.
r27585 Reduce Catapult and Siege Ship range.
r27668 Rebalance Elephant Splash damage (Phab:D5008).
r27848 Reduce Loom Cost 200food -> 100food (Phab:D5118).
Engine
- r27106 Adds PS::span and std::string_view to CmdLineArgs. (Phab:D4677)
- r27110 Fixes vertex attribute stride in Canvas2D.
- r27156 Skips renderer resources preloading for screenshots.
- r27160 Reset m_EndsWithSpace to fix the uninitialized read of it introduced in rP26915. (Phab:D4806)
- r27164 Allow 0.0.0.0 IP in StunClient tests added in rP25448. (Phab:D4792)
- r27174 Fixes without PCH build in StunClient missing include for std::byte added in rP25453. (Phab:D4814)
- r27192 Remove user.cfg from javascript
- r27202 Restrict access for Read/WriteFile functions
- r27230 Add JS bindings for in game camera attributes. (Phab:D4667)
- r27236 Updates glad library to 2.0.2.
- r27268 Fixes calling SDL functions in CVideoMode after SDL_Quit. (Phab:D4836)
- r27275 Makes GLES using high precision for both vertex and fragment shaders.
- r27329 Adds StaticVector implementation. (Phab:D4838)
- r27335 Update enet on Windows to 1.3.17.
- r27385 FSM cleanup: (Phab:D4868)
- r27388 Refactors window creation in CVideoMode. (Phab:D4866)
- r27398 Optional column "sort_order" attribute support olist GUI
- r27409 SM91 Update to Spidermonkey 91.1.3 APIs (Phab:D4428)
- r27412 Adds Vulkan backend. (Phab:D4876)
- r27426 Commit the Spidermonkey tarball, as it puts extra strain on CI, and package manager builds don't have internet.
- r27438 Fixes creating window on macOS in case of missing Vulkan driver. Fixes #6681 (Phab:D4884)
- r27440 Fix bundled spidermonkey code in Premake.
- r27441 Fix a case sensitive issue on macOS. macOS usually do not use a case sensitive filesystem, hence why it got unnoticed.
- r27442 Fix a bug with Python >= 3.11 where -rU was removed as an open flag. (Phab:D4888)
- r27451 Fixes builds on some platforms for libfmt 4 after rP27329. (Phab:D4890)
- r27457 Update clean-workspaces.sh after SpiderMonkey's upgrade to 78.6.0 and 91.13.1.
- r27460 Fix and cleanup the SM91 build, fixes #6676. (Phab:D130410)
- r27461 Don't include source/test_root.cpp in bundles. (Phab:D4895)
- r27469 Fix FMT and NVTT not linking with the correct SDK. (Phab:D4898)
- r27470 Follow proper Shutdown sequence when using -dumpSchema, fixes #6696. (Phab:D4903)
- r27492 Fixes shadows cascades iteration.
- r27493 Updates shadows camera frustum after its recalculation.
- r27499 Fix: Crash atlas in relation to Terrain.cpp CalcPosition (Phab:D4900)
- r27512 Fixes DisplayVersion in NSIS on Windows. (Phab:D4892)
- r27513 ATLAS UI be aware of GUI Scale user config (Phab:D4915)
- r27517 Fix a warning in gloox headers on Windows after rP27490, refs #3004.
- r27521 Fixes Atlas previews after rP26142. (Phab:D4919)
- r27555 Fixes --with-system-premake5, fixes #6710, refs rP23675.
- r27556 Removes ogl.h from PCH. (Phab:D4950)
- r27564 Fixes GL ES version report after GL_INVALID_ENUM triggered by glEnable(GL_TEXTURE_2D).
- r27599 Use a lower default MTU for ENet hosts, and make it configurable. (Phab:D4967)
- r27601 Removes assertion from MinimapTexture on entities overflow.
- r27603 Adds an option to disable mouse grab in fullscreen. (Phab:D4974)
- r27606 Use premake5 beta2's
externalincludedirs
when available (Phab:D4980) - r27607 Adds more libraries to feedback reports. (Phab:D4949)
- r27717 Removes waiting from MapGenerator. This makes the game window more responsible during map generating. (Phab:D3676)
- r27740 Use std::function in the Loader. (Phab:D4989)
- r28014 Don't check memory allocation made using new. (Phab:D5234)
- r28020 Split the FSM-transitions and put them in an unordered_map (Phab:D5225)
- r28033 More generic hash function for FSM (Phab:D5237)
- r28036 rmgen: var -> let -> const (Phab:D5214)
- r28039 Remove the StateSet from FSM (Phab:D5236)
- r28046 Don't use std::shared_ptr in the CSimulation2 (Phab:D5223)
- r28048 Use std::function instead of inhereting from CNetFileReceiveTask (Phab:D5239)
- r28053 Default many of CFsm's special functions and remove virtual specifires (Phab:D5249)
- r28056 Split the Shutdown function (Phab:D5148)
- r28066 Use templates instead of macros to restrict access to the VFS (Phab:D5195)
- r28074 Make CFsm a template
- r28086 Fix lint on the CI.
- r28087 Turn the FLOODFILL macro in to a function
- r28093 Allow to use a generator as MapGenerator
- r28101 Remove usage of var in map scripts
- r28103 Deprecates OpenGL ARB backend.
- r28107 Adds proper IBuffer usage instead of dynamic flag.
- r28108 Adds shader storage buffer object to GL extensions.
- r28117 Add scope in map generation scripts
- r28123 Shutdown mongoose in rl-interface gracefully (Phab:D5254)
- r28124 Remove contrib JS-lexer and use upstream one (Phab:D5293)
- r28138 Make the CSimContext constructor take a CTerrain and a CUnitManager (Phab:D5296)
- r28140 Converge FileLogger with the other logger replacements (Phab:D5203)
- r28143 Update translator credits automatically
- r28148 Instantiate controller only for the host (Phab:D5270)
- r28158 Make language names in credits translatable
- r28167 Fix build with miniupnpc 2.2.8
- r28181 Remove two missing die functions.
Vulkan
Changes related to Vulkan particularly:
- r27109 Removes drawing via IDeviceCommandContext from CMinimap. (Phab:D4779)
- r27110 Fixes vertex attribute stride in Canvas2D.
- r27134 Replaces border color of sampler by enum.
- r27136 Reduces uniforms sizes for the Canvas2D shader. (Phab:D4796)
- r27137 Moves vertex buffer offset to SetVertexBuffer.
- r27138 Reduces the number of SetVertexAttributeFormat calls in Canvas2D.
- r27139 Fixes calls to SetVertexAttributeFormat with zero stride.
- r27145 Fixes vertex attribute format in minimap and passes dependent textures as parameters.
- r27147 Reduces uniforms sizes for the minimap shader.
- r27148 Adds AcquireNextBackbuffer to CDevice to have something to present.
- r27151 Adds BeginFramebufferPass/EndFramebufferPass instead of SetFramebuffer.
- r27152 Adds usage flags to backend textures.
- r27167 Moves skybox vertex array creation and uploading before its rendering.
- r27173 Moves Backend enum from CVideoMode to backends. (Phab:D4809)
- r27182 Disallows backend buffer uploading inside framebuffer pass. (Phab:D4815)
- r27184 Makes AcquireNextBackbuffer returns true in case of successful backbuffer acquirement.
- r27198 Wraps gl_Position in a macro to avoid duplication for different versions.
- r27199 Wraps vertex attributes in a macro to avoid duplication for different versions.
- r27204 Wraps gl_FragColor in a macro to avoid duplication for different versions.
- r27207 Moves particles data uploading out of framebuffer pass. (Phab:D4820)
- r27208 Reduces the uniform size of a texture transform of debug overlay shader.
- r27209 Reduces the uniform size of an instancing transform of overlay solid shader.
- r27222 Removes unused UV1 stream in OverlayRenderer and moves vertex data setup out of a loop.
- r27232 Moves post processing out of scene rendering to avoid framebuffer pass duplicate. (Phab:D4827)
- r27236 Updates glad library to 2.0.2.
- r27256 Adds framebuffer attachment load and store operations. (Phab:D4830)
- r27282 Reduces shader inputs duplication and wraps them in a macro. Refs #6636 (Phab:D4837)
- r27313 Removes SetViewport from CRenderer. (Phab:D4849)
- r27328 Switches from pipeline state descriptions to pipeline states. (Phab:D4850)
- r27331 Fixes vertex attribute format mismatch for silhouette debug rendering.
- r27363 Switches from per draw vertex attribute format to precompiled vertex input layout. (Phab:D4852)
- r27379 Adds preferred depth stencil format to renderer backend.
- r27387 Adds dependent libraries for Vulkan. Refs #6636 (Phab:D4869)
- r27412 Adds Vulkan backend. (Phab:D4876)
- r27418 Fixes silhouettes on Vulkan by using VkStencilOpState.
- r27421 Ands new depth stencil format to support all combinations on Vulkan. (Phab:D4878)
- r27422 Recreates Vulkan swapchain on window resize. (Phab:D4879)
- r27446 Removes unnecessary PreDraw from Vulkan CDeviceCommandContext.
- r27450 Hides some warnings for VMA. (Phab:D4889)
- r27475 Fixes querying descriptor indexing features and properties on some drivers.
- r27477 Disables descriptor indexing on macOS.
- r27478 Adds a warning in case of Vulkan window creation failure.
- r27488 Add MoltenVK support to fix Vulkan on macOS. (Phab:D4905)
- r27494 Enables non-solid fill for Vulkan to allow wireframe drawing.
- r27495 Creates image views for Vulkan textures only when needed.
- r27496 Prevents using R8G8B8_UNORM format for Vulkan textures as it can be supported as a native format only by workarounds.
- r27501 Fix Molten VK printing too many log messages (Phab:D4913)
- r27502 Adds more features to report for Vulkan backend.
- r27503 Uses Vulkan physical device indices as the last comparison for device selection.
- r27510 Extends logs for Vulkan available device. (Phab:D4917)
- r27511 Fixes descriptor set overwrite when multiple textures reference it with delayed deletion. Fixes #6717 (Phab:D4916)
- r27516 Makes Vulkan device selection stop searching after a first suitable queue family.
- r27522 Fixes overflow of inplace vertex and index Vulkan buffers. (Phab:D4920)
- r27536 Fixes invalid swapchain size during a window minimize. (Phab:D4932)
- r27537 Increases minImageCount for Vulkan swapchain only when there is a room for that.
- r27541 Check for the existence of libMoltenVK
- r27552 Implements framebuffer readback for Vulkan to allow screenshots. (Phab:D4940)
- r27573 Switches VMA to Vulkan 1.1. (Phab:D4947)
- r28010 Adds compute shaders support and scaling with FSR. (Phab:D4932)
- r28011 Makes pipeline state dirty on Vulkan only when VertexInputLayout was changed.
- 28034 Accounts maxAnisotropy for Vulkan samplers.