<?xml version="1.0"?>
<rss version="2.0"><channel><title><![CDATA[Game Development &amp; Technical Discussion Latest Topics]]></title><link>https://wildfiregames.com/forum/forum/312-game-development-amp-technical-discussion/</link><description><![CDATA[Game Development &amp; Technical Discussion Latest Topics]]></description><language>en</language><item><title>Specific Name Review: Units</title><link>https://wildfiregames.com/forum/topic/25284-specific-name-review-units/</link><description><![CDATA[<p>
	Hi <a contenteditable="false" data-ipshover="" data-ipshover-target="https://wildfiregames.com/forum/index.php?/profile/21417-nescio/&amp;do=hovercard" data-mentionid="21417" href="https://wildfiregames.com/forum/index.php?/profile/21417-nescio/" rel="">@Nescio</a> and <a contenteditable="false" data-ipshover="" data-ipshover-target="https://wildfiregames.com/forum/index.php?/profile/15593-itms/&amp;do=hovercard" data-mentionid="15593" href="https://wildfiregames.com/forum/index.php?/profile/15593-itms/" rel="">@Itms</a>,
</p>

<p>
	I have finished the Unit Listing and am attaching it now. I only found two items that did not have a "Specific" name, a Kush Bireme and Maur siege ram.
</p>

<p>
	I'll start working on the in-game documentation until I get some input from the developers on what they need. I am still kind of searching to find out what exists already.
</p>

<p>
	If you have any ideas or wants just let me know.
</p>

<p>
	Thanks,
</p>

<p>
	Dok
</p>

<p>
	<a class="ipsAttachLink" data-fileid="31366" href="https://wildfiregames.com/forum/applications/core/interface/file/attachment.php?id=31366" rel="">Unit Listing Alphabetical.txt</a>
</p>]]></description><guid isPermaLink="false">25284</guid><pubDate>Wed, 16 Jan 2019 14:48:58 +0000</pubDate></item><item><title>Closing Old Issues</title><link>https://wildfiregames.com/forum/topic/139632-closing-old-issues/</link><description><![CDATA[<p>
	The 0 A.D. Main Branch has over 1.6k issues.  I was looking through some of the older ones and I noticed there are quite a few that are either outdated or not relevant anymore either while the view of the game has shifted, or they don't really apply. There are also some that would be really trivial for even the non-technical users.
</p>

<p>
	I wonder if we could go through some and quickly discuss and see if they're really necessary or should be done real quick by someone.
</p>

<p>
	For example, here's one that suggests that lower health units could move slower. It's an interesting idea, but one I'm not exactly sure is one that 0 A.D. is ever going to have.
</p>

<p>
	<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/2091" rel="external nofollow">https://gitea.wildfiregames.com/0ad/0ad/issues/2091</a>
</p>

<p>
	Here are a few others that could be possibly closed or done really quickly.
</p>

<p>
	 
</p>

<p>
	This issue is about "deciding on whether to have land unit fishing" This is another one that could be decided really quickly, closed, and if we wanted to add it later no harm really.
</p>

<p>
	<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/1437" rel="external nofollow">https://gitea.wildfiregames.com/0ad/0ad/issues/1437</a>
</p>

<p>
	 
</p>

<p>
	Creating a 0 A.D. war story may have been useful in 2006-2007, but in the year of our Lord 2025 (soon to be 2026) we have YouTube so having a war story isn't really as needed, we could still make one eventually, but having an issue for it right now doesn't seem needed.
</p>

<p>
	<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/66" rel="external nofollow">https://gitea.wildfiregames.com/0ad/0ad/issues/66</a>
</p>

<p>
	 
</p>

<p>
	This issue here is just for "adding more victory conditions" which personally I think is a bad issue because it doesn't really give us a goal to work for (and we could be doing this forever. I move for closing it and opening new issues for the specific conditions.
</p>

<p>
	<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/1649" rel="external nofollow">https://gitea.wildfiregames.com/0ad/0ad/issues/1649</a>
</p>

<p>
	 
</p>

<p>
	This is an issue to add metadata to the soundtrack. I 100% agree this should get done, but even a non-technical user could get it done in less than an hour if Omri didn't have to.
</p>

<p>
	<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/3619" rel="external nofollow">https://gitea.wildfiregames.com/0ad/0ad/issues/3619</a>
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	Then there are some tickets about adding cliffs to 0 A.D. which I am almost am certain exist in 0 A.D. (so maybe some issues people forgot to close?) I could be wrong, of course.
</p>

<p>
	<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/993" rel="external nofollow">https://gitea.wildfiregames.com/0ad/0ad/issues/993</a>
</p>

<p>
	 
</p>

<p>
	Finally, there are a LOT of issues about atlas which either A) seem already implemented (like this one) or B seem a little outdated if atlas is being moved in game.
</p>

<p>
	<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/571" rel="external nofollow">https://gitea.wildfiregames.com/0ad/0ad/issues/571</a>
</p>

<p>
	 
</p>

<p>
	let me know what you think closing these issues and if the devs are ok with cleaning the issues I'll post more that we could go through.
</p>
]]></description><guid isPermaLink="false">139632</guid><pubDate>Wed, 24 Dec 2025 13:50:07 +0000</pubDate></item><item><title>Thoughts on adding a second modding language Lua (luajit)</title><link>https://wildfiregames.com/forum/topic/130805-thoughts-on-adding-a-second-modding-language-lua-luajit/</link><description><![CDATA[<p>
	Hi !
</p>

<p>
	I am considering introducing Lua (luajit) as a second modding language, alongside JavaScript. Here’s why:
</p>

<ul>
	<li>
		performance: Lua is fast, especially for CPU-heavy mods (AI, simulations, etc.), which is critical for large-scale RTS battles.
	</li>
	<li>
		simplicity: Lua’s lightweight syntax and C/C++ integration make it easier to expose engine features directly to modders.
	</li>
	<li>
		ecosystem: Lua is widely used in gaming (e.g., World of Warcraft, Roblox) and has robust tooling for debugging and profiling.
	</li>
	<li>
		sandboxing: Lua’s simplicity allows for tighter security controls, reducing risks of crashes or exploits.
	</li>
</ul>

<p>
	this isn’t a replacement for JavaScript.
</p>

<p>
	javascript mods will continue to work! The goal is to add options, not remove them. Lua could become the preferred language for performance-critical mods, while JS remains great for UI/scripted events.
</p>

<p>
	<em><strong>what this means for modders:</strong></em>
</p>

<ul>
	<li>
		gradual rollout: Lua support would be phased in, starting with experimental access to core APIs.
	</li>
	<li>
		tooling: we'd provide Lua-specific documentation, debuggers, and compatibility layers for JS ↔ Lua interop.
	</li>
</ul>

<p>
	<em><strong>points for discussion:</strong></em>
</p>

<ul>
	<li>
		are there existing JS workflows we would struggle to replicate in Lua?
	</li>
	<li>
		is there any other integrations like this one done in the past or abandoned we have notice of, can we learn from it ?
	</li>
	<li>
		where to start, is there any tips for a unexperienced 0ad "core" dev like me or others wanting to help that we can start learning from ?
	</li>
	<li>
		other topics of discussion ... please feel free to add and help ?
	</li>
</ul>
]]></description><guid isPermaLink="false">130805</guid><pubDate>Mon, 21 Apr 2025 10:26:17 +0000</pubDate></item><item><title>Dedicated server</title><link>https://wildfiregames.com/forum/topic/169911-dedicated-server/</link><description><![CDATA[<p>
	I needed dedicated server for 0ad and I built it: <strong>Veredus</strong> is an unofficial dedicated server for 0 A.D. and it's out now. No player hosts the match, so it keeps going when someone leaves or has a bad connection(with a timeout). Dropped players get their slot back when they reconnect, and matches carry on after a server restart or killed. Players join with vanilla 0.28 game. An optional companion, the "sidecar", runs AI opponents on the server, lets players rejoin without asking state from player, and records results and replays. The server is free and open source. Code and setup instructions here: <a href="https://github.com/victorcrimea/veredus" rel="external nofollow">https://github.com/victorcrimea/veredus</a>
</p>

<p>
	I only have Linux, so I'd really like to hear from anyone who can try it on Windows or macOS: does the server start, can players connect, and does the sidecar build and run? Please post bug reports, suggestions and questions here or as a GitHub issue. Veredus is not affiliated with Wildfire Games.
</p>

<p>
	 
</p>

<p>
	Basically any feedback is welcome. 
</p>
]]></description><guid isPermaLink="false">169911</guid><pubDate>Thu, 24 Sep 2026 20:16:10 +0000</pubDate></item><item><title>Is gitea.wildfiregames.com down?</title><link>https://wildfiregames.com/forum/topic/170118-is-giteawildfiregamescom-down/</link><description><![CDATA[<p>
	Hello!
</p>

<p>
	 
</p>

<p>
	Why is <a href="https://gitea.wildfiregames.comshowing" rel="external nofollow">https://gitea.wildfiregames.com</a> showing this since 08 Oct 2026?
</p>

<p>
	 
</p>

<p>
	500 Internal Server Error
</p>

<p>
	Gitea Version: 1.26.4+1-g1ac57c9699
</p>
]]></description><guid isPermaLink="false">170118</guid><pubDate>Fri, 09 Oct 2026 16:49:04 +0000</pubDate></item><item><title>Preset Hotkeys feature</title><link>https://wildfiregames.com/forum/topic/168897-preset-hotkeys-feature/</link><description><![CDATA[<p>
	I've been working on a new feature to add to the game. The idea is to provide an easy way to preserve our hotkeys, create templates, and quickly switch between them. Potentially export presets into a plain text file.
</p>

<p>
	I currently have a basic implementation that covers the minimum functionality: duplicating and deleting hotkey presets, while always keeping a Default Preset as a baseline.<br />
	<br />
	<a class="ipsAttachLink ipsAttachLink_image" href="https://wildfiregames.com/forum/uploads/monthly_2026_08/image.png.46639df34aa6de320a7e03a8d88cdcaf.png" data-fileid="85453" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="85453" data-ratio="96.40" width="778" alt="image.thumb.png.4dc238cf76c2aab6859119ea68dc6c8c.png" src="https://wildfiregames.com/forum/uploads/monthly_2026_08/image.thumb.png.4dc238cf76c2aab6859119ea68dc6c8c.png" /></a><br />
	<br />
	<a class="ipsAttachLink ipsAttachLink_image" href="https://wildfiregames.com/forum/uploads/monthly_2026_08/image.png.3145431fea11cb3df114fcace85a1d81.png" data-fileid="85451" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="85451" data-ratio="33.30" width="1000" alt="image.thumb.png.cc5edbcee61520fabd6e7f7a9c5ade89.png" src="https://wildfiregames.com/forum/uploads/monthly_2026_08/image.thumb.png.cc5edbcee61520fabd6e7f7a9c5ade89.png" /></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://wildfiregames.com/forum/uploads/monthly_2026_08/image.png.68a1fc3fd9404d8d342d2a975c38057c.png" data-fileid="85454" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="85454" data-ratio="44.90" width="1000" alt="image.thumb.png.86e5a19ce0ac2b4641e21cc09ea917d0.png" src="https://wildfiregames.com/forum/uploads/monthly_2026_08/image.thumb.png.86e5a19ce0ac2b4641e21cc09ea917d0.png" /></a>
</p>

<p>
	 
</p>

<p>
	The presets are stored in <em>binaries\data\mods\public\moddata\hotkeypresets.json</em> (in theory, this would be <em>mods/user</em> in a compiled redistributable version). Just like with <em>user.cfg</em>, this .json file only stores hotkeys that differ from the default hotkeys. Initially, I wanted to use an INI-style file structure, but I'm not sure if there is an equivalent function to <em>WriteJSONFile</em> for that. I chose this location because it is already included in the whitelist, so I can avoid making changes to the Engine. I also didn't want to use user.cfg and add dozens of extra lines to it.
</p>

<p>
	So basically, the code adds a .json file that stores, reads, and modifies hotkey presets, and then copies/applies the active hotkeys to <em>user.cfg.</em>
</p>

<p>
	As for mods that interact with hotkeys, the idea is to change the current workflow as little as possible. So if there are any details I should take into account from a modding perspective, please let me know.
</p>

<p>
	Do you think this functionality would be useful to have?
</p>

<p>
	And, especially for the devs, does this seem like an appropriate approach, or would you recommend a better alternative?
</p>
]]></description><guid isPermaLink="false">168897</guid><pubDate>Thu, 20 Aug 2026 14:54:29 +0000</pubDate></item><item><title>Implementing forces in Unit Motion (HELP WANTED)</title><link>https://wildfiregames.com/forum/topic/166486-implementing-forces-in-unit-motion-help-wanted/</link><description><![CDATA[<p>
	These are videos from a current work in progress to implement different forces into unit motions, like inertia, knockbacks and charge attacks! The values would be very customizable in unit templates for mods too!
</p>

<p>
	</p><video class="ipsEmbeddedVideo" controls="" data-controller="core.global.core.embeddedvideo">
		<source type="video/webm" src="https://wildfiregames.com/forum/uploads/monthly_2026_06/1407941206_Screencastfrom2026-06-0423-57-24.webm.44f8f04c53d3ef2eb5df24a5dfe58cc2.webm"><a class="ipsAttachLink" data-fileext="webm" data-fileid="84640" href="https://wildfiregames.com/forum/applications/core/interface/file/attachment.php?id=84640&amp;key=07453981bcb0e982c70b160144d014f4" rel="">Screencast+from+2026-06-04+23-57-24.webm</a>
	</source></video>
	 

	<video class="ipsEmbeddedVideo" controls="" data-controller="core.global.core.embeddedvideo">
		<source type="video/webm" src="https://wildfiregames.com/forum/uploads/monthly_2026_06/1853693165_Screencastfrom2026-06-1818-01-22.webm.4ef53831f81402a5dc7bda3d08611e3e.webm"><a class="ipsAttachLink" data-fileext="webm" data-fileid="84641" href="https://wildfiregames.com/forum/applications/core/interface/file/attachment.php?id=84641&amp;key=894cb9bcc4fbec07f4db2f4fc25fd384" rel="">Screencast+from+2026-06-18+18-01-22.webm</a>
	</source></video>
	 

	<video class="ipsEmbeddedVideo" controls="" data-controller="core.global.core.embeddedvideo">
		<source type="video/webm" src="https://wildfiregames.com/forum/uploads/monthly_2026_06/1262505860_Screencastfrom2026-06-1817-53-13.webm.a44d319f150d2a8c2b77bf8656a286c8.webm"><a class="ipsAttachLink" data-fileext="webm" data-fileid="84642" href="https://wildfiregames.com/forum/applications/core/interface/file/attachment.php?id=84642&amp;key=bb2cb39fe39f85e404bf8520d6ac850a" rel="">Screencast+from+2026-06-18+17-53-13.webm</a>
	</source></video>

]]></description><guid isPermaLink="false">166486</guid><pubDate>Thu, 18 Jun 2026 20:06:03 +0000</pubDate></item><item><title>Specific Name Review: Structures</title><link>https://wildfiregames.com/forum/topic/25268-specific-name-review-structures/</link><description><![CDATA[<p>
	Hi Nescio,
</p>

<p>
	I put together a "Structure" listing as you suggested. I went through each template in the "Structures" directory to pull the "Specific" and "Generic" names for the list. Some items didn't have anything and some only had one or the other. I used some of the generic templates from the "Templates" directory itself and some of the names I found by playing the game to see what displayed. Could you please look at the file and let me know if this is what you wanted? A few of the structures don't seem to exist in the game, such as "Range" and Workshop" or "Stables" for most of the Civs.
</p>

<p>
	I'm working on the unit listing now.
</p>

<p>
	Thanks,
</p>

<p>
	Dok
</p>

<p>
	<a class="ipsAttachLink" href="https://wildfiregames.com/forum/applications/core/interface/file/attachment.php?id=31294" data-fileid="31294" rel="">Structure List Alphabetical.txt</a>
</p>]]></description><guid isPermaLink="false">25268</guid><pubDate>Tue, 15 Jan 2019 01:57:42 +0000</pubDate></item><item><title>Strategos: a strategy layer for Petra, driven by a small open-source model that runs locally (proposal + fork to test)</title><link>https://wildfiregames.com/forum/topic/169871-strategos-a-strategy-layer-for-petra-driven-by-a-small-open-source-model-that-runs-locally-proposal-fork-to-test/</link><description><![CDATA[<p>
	Hi all,
</p>

<p>
	I'm Josue (<code>josue</code> on Gitea), a fairly new contributor. I want to share a project I'm about to start, get your feedback before I write code, and later hand you a fork to test and pick apart.
</p>

<h3>
	The itch
</h3>

<p>
	Petra is a solid executor. It gathers, builds, places, trains and fights well. But it plays the same linear game on every map, against every opponent: gather, age up, train, attack the nearest Civic Center, repeat. It doesn't use terrain, it doesn't read you, and difficulty is mostly a handicap (gather rate ×0.42 on Sandbox up to ×1.56 on Very Hard, plus some caps).
</p>

<p>
	Meanwhile the game ships 51 historical heroes across 15 civilizations: Hannibal, Alexander, Vercingetorix, Leonidas, Fabius Cunctator, Viriathus, Themistocles... and the AI never fights like any of them. Petra's Leonidas doesn't hold a pass. Petra's Fabius doesn't delay. Nobody builds Alesia.
</p>

<h3>
	The idea
</h3>

<p style="text-align:center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="86066" href="https://wildfiregames.com/forum/uploads/monthly_2026_09/image.png.d852ddc845ded6d27dc853c0697d9a19.png" rel=""><img alt="image.thumb.png.67ceda921c3add72f15088648cbfb04a.png" class="ipsImage ipsImage_thumbnailed" data-fileid="86066" data-ratio="66.90" width="1000" src="https://wildfiregames.com/forum/uploads/monthly_2026_09/image.thumb.png.67ceda921c3add72f15088648cbfb04a.png" /></a>
</p>

<p>
	<a href="https://gitea.wildfiregames.com/josue/0ad/src/branch/strategos/mvp1/docs/strategos" rel="external nofollow">https://gitea.wildfiregames.com/josue/0ad/src/branch/strategos/mvp1/docs/strategos</a>
</p>

<p>
	Split the bot into <strong>hands</strong> and <strong>head</strong>.
</p>

<ul>
	<li>
		<strong>Hands stay Petra</strong>: economy, building placement, gathering, queues, trade and garrison mechanics, the actual battle.
	</li>
	<li>
		<strong>The head is new</strong>: a small strategy layer that picks a <em>stratagem</em>: wall the choke by the river and wait; build a trade network; garrison the towers along the enemy's approach; strike their army while it's strung out in a pass; fall back.
	</li>
</ul>

<p>
	A stratagem enters Petra through one door (Headquarters), which hands it to the manager that already knows how to execute it. The ambush and the Persian trade network go through the same channel.
</p>

<p>
	Who picks the stratagem? <strong>We write the doctrine, a model judges.</strong>
</p>

<ul>
	<li>
		<strong>Civ doctrine</strong>: read from the civ bonuses that already exist as data. Romans fortify, Carthage goes to the sea and to elephants, Persians trade, Spartans hold ground.
	</li>
	<li>
		<strong>Hero archetypes</strong>: 5–6 playbooks mapped to the heroes: siege builder, ambusher, hammer and anvil, hold the pass, delayer, naval raider.
	</li>
	<li>
		<strong>Stages triggered by the game, not the clock</strong>: early game follows the civ doctrine; mid game picks a hero and runs their playbook (hero dies → next hero); when heroes run out the AI goes defensive: commerce and fortification.
	</li>
	<li>
		<strong>Opponent model</strong>: is the other player rushing, booming or turtling? Where is their army heading? Are they weak at sea? This is what changes every game, and it's what Petra has never had.
	</li>
</ul>

<p>
	The model doesn't invent strategy. It answers typed questions ("hold, strike or fall back?", "rush, boom or turtle?") with probabilities. That's a classification job, which is why a small model can do it.
</p>

<h3>
	Free and open, by design
</h3>

<p>
	The target model is <strong>Laya</strong> (<code><a href="https://huggingface.co/convaiinnovations/laya" rel="external nofollow">convaiinnovations/laya</a></code> on Hugging Face): Apache 2.0, 421M parameters, a classifier that answers typed questions and runs on a CPU (the model card says roughly 200–450 ms per question on CPU; I haven't measured it yet).
</p>

<ul>
	<li>
		<strong>Optional download</strong> (~650 MB). Without it you get plain Petra; nothing changes.
	</li>
	<li>
		<strong>No account, no API key, no network, no cost.</strong>
	</li>
	<li>
		<strong>Multiplayer-safe</strong>: only the host runs the model, and its decisions go out as ordinary network commands. Clients don't need the model, lockstep holds, replays replay. This also sidesteps floating-point differences between platforms. One engine change is needed for it: today the server drops commands sent on behalf of another player unless cheats are on (<code>NetServer.cpp</code>), so the host must be allowed to send this one command type for AI-controlled slots. Single-player is unaffected.
	</li>
	<li>
		<strong>Mod first</strong>: a <code>strategos</code> mod that overlays only the Petra files it touches. Default Petra stays untouched.
	</li>
</ul>

<p>
	An honest note on prototyping: to learn quickly which questions matter, the very first prototype uses a hosted typed-question API (TypeSafe's Jev), called from an external Python script through the existing RL interface. That is developer scaffolding only. It will never ship and players will never need it. Both models take the same question format, so swapping to the local model doesn't change the questions.
</p>

<h3>
	Performance: what it costs
</h3>

<p>
	Lag is already the most common complaint, and AI plus pathfinding are big parts of it. Today every AI runs on the simulation thread, on every client, every turn. So this has to be designed not to make it worse:
</p>

<ul>
	<li>
		<strong>The in-engine part is tiny.</strong> Petra reads at most one hint per played turn and hands it to a manager it already runs. I'll measure Petra's turn time (the existing <code>PetraBot bot (player N)</code> profiler section) with and without the mod, and publish the numbers. The target is ≤5% overhead.
	</li>
	<li>
		<strong>The model never runs on the simulation thread.</strong> At 200–450 ms per question on a CPU, running it inline would freeze the host, and in lockstep that means everyone. So questions are asked every few seconds (not every turn), inference runs on a worker thread, and the answer comes back as a command a few turns later. The engine already has a TODO for exactly this pattern (async AI tasks that return after a fixed number of turns, in <code>CCmpAIManager.cpp</code>), and it lines up with the ongoing threading work (<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/5874" rel="external nofollow">#5874</a>). If that helper gets built, Petra's own heavy analysis could use it too.
	</li>
	<li>
		<strong>Only the host pays.</strong> Clients run nothing extra. The host pays CPU on a spare core, plus the model's memory (roughly 0.5–1.7 GB depending on quantization; I'll measure and publish it).
	</li>
	<li>
		<strong>It won't fix lag.</strong> I'm not promising a speedup. At best, stratagems replace some of Petra's per-turn strategic scans with a cached decision; that's a side effect, not the goal.
	</li>
</ul>

<h3>
	How it relates to existing plans
</h3>

<p>
	From the Gameplay Feature Status and Game Performance wiki pages:
</p>

<ul>
	<li>
		<strong>Advanced AI</strong> is listed as "partially complete" (<a href="https://gitea.wildfiregames.com/0ad/0ad/issues/973" rel="external nofollow">#973</a>, <a href="https://gitea.wildfiregames.com/0ad/0ad/issues/3003" rel="external nofollow">#3003</a>). The terrain and threat reading here (choke points, the enemy's approach) overlaps <a href="https://gitea.wildfiregames.com/0ad/0ad/issues/3003" rel="external nofollow">#3003</a> ("Petra should be aware of dangerous areas"). Anything reusable goes upstream on its own.
	</li>
	<li>
		The <strong>naval raider</strong> archetype depends on <a href="https://gitea.wildfiregames.com/0ad/0ad/issues/3002" rel="external nofollow">#3002</a> (Petra using ships for warfare), so it comes later.
	</li>
	<li>
		<strong>Directional attack bonuses (flanking)</strong> aren't implemented, so "hammer and anvil" can only win through positioning and surrounding, not a flank bonus. I'll keep the playbooks honest about what the game actually rewards.
	</li>
	<li>
		<strong>"Ambush" here is AI behavior</strong> (hold a choke, strike at the right moment). It's unrelated to the concealment mechanic in <a href="https://gitea.wildfiregames.com/0ad/0ad/issues/3177" rel="external nofollow">#3177</a>.
	</li>
	<li>
		<strong>Narrative and strategic campaigns</strong> were cut from Part 1. A historically flavored opponent in skirmish is a cheap way to get some of that feeling back.
	</li>
</ul>

<h3>
	How I'll prove it (before anyone gets excited)
</h3>

<p style="text-align:center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="86065" href="https://wildfiregames.com/forum/uploads/monthly_2026_09/image.png.67c3f2378adbcfdc9d21b2cc971feb41.png" rel=""><img alt="image.thumb.png.32e974ccc7e7265dba5943c4d391fa60.png" class="ipsImage ipsImage_thumbnailed" data-fileid="86065" data-ratio="72.00" width="1000" src="https://wildfiregames.com/forum/uploads/monthly_2026_09/image.thumb.png.32e974ccc7e7265dba5943c4d391fa60.png" /></a>
</p>

<p style="text-align:center;">
	MVP of the MVP: <strong>one map</strong> with clear choke points, <strong>one stratagem</strong> (ambush at the pass), <strong>one question</strong> (hold, strike or fall back). Three arms on the same seeds:
</p>

<ol>
	<li>
		vanilla Petra
	</li>
	<li>
		ambush + a dumb distance rule ("strike when their army is within N metres")
	</li>
	<li>
		ambush + the model
	</li>
</ol>

<p>
	Arm 2 vs 1 measures the stratagem; arm 3 vs 2 measures the model. Before any game, the model has to beat the rule on 50–100 hand-labeled game states. If it can't, I'll post that result here too.
</p>

<h3>
	Roadmap
</h3>

<ul>
	<li>
		<strong>Phase 0</strong>: headless Petra vs Petra harness through the RL interface; determinism checked through replays.
	</li>
	<li>
		<strong>Phase 1</strong>: the hint channel (a new <code>strategos-hint</code> command → Headquarters dispatch). JS only, no engine changes.
	</li>
	<li>
		<strong>Phase 2</strong>: choke points extracted from the passability grid.
	</li>
	<li>
		<strong>Phase 3</strong>: the ambush stratagem in Petra.
	</li>
	<li>
		<strong>Phases 4–5</strong>: rule arm, labeled dataset, model arm; results posted here.
	</li>
	<li>
		<strong>After that</strong>: the local model on the host, outside the simulation (optional ONNX Runtime dependency, off by default), the small network change above, then more stratagems, civ doctrines, hero playbooks, the opponent model.
	</li>
</ul>

<h3>
	What I'll share, and what I'm asking
</h3>

<p>
	I'll share:
</p>

<ul>
	<li>
		Everything in my fork, <a href="https://gitea.wildfiregames.com/josue/0ad" rel="external nofollow">https://gitea.wildfiregames.com/josue/0ad</a> (branch <code>strategos/mvp1</code>): code, match results, replays and the labeled dataset, for anyone to test, reproduce or tear apart.
	</li>
	<li>
		Fixes, as normal PRs, for the RL-interface bugs I run into along the way. <a href="https://gitea.wildfiregames.com/0ad/0ad/issues/7854" rel="external nofollow">#7854</a> and <a href="https://gitea.wildfiregames.com/0ad/0ad/issues/7628" rel="external nofollow">#7628</a> look like the first ones I'll hit.
	</li>
</ul>

<p>
	I'm asking for feedback from:
</p>

<ul>
	<li>
		<strong>Petra maintainers</strong>: is a single "stratagem hint" entry point in Headquarters acceptable, or would you prefer a different hook?
	</li>
	<li>
		<strong>Engine folks</strong>: what do you think of an optional ONNX Runtime dependency behind a build flag, off by default?
	</li>
	<li>
		<strong>Players and history nerds</strong>: which hero should fight how? Which maps have good passes?
	</li>
	<li>
		<strong>Everyone</strong>: is this a direction the project would consider upstream one day, or should it live as a mod? Either is fine with me.
	</li>
</ul>

<p>
	<em>Disclosure: I drafted this post with help from an AI assistant (Claude). The plan and the decisions are mine, and any code will go through the normal review process.</em>
</p>
]]></description><guid isPermaLink="false">169871</guid><pubDate>Tue, 22 Sep 2026 09:53:40 +0000</pubDate></item><item><title>Proto-Germanic voice lines for the Germans &#x2013; research and first suggestions</title><link>https://wildfiregames.com/forum/topic/169825-proto-germanic-voice-lines-for-the-germans-%E2%80%93-research-and-first-suggestions/</link><description><![CDATA[<p style="color:#202020;font-size:17px;">
	Hi everyone,
</p>

<p style="color:#202020;font-size:17px;">
	I've been looking into the possibility of creating Proto-Germanic voice lines for the Germans in 0 A.D.
</p>

<p style="color:#202020;font-size:17px;">
	<strong>First, a note about AI:</strong> I used ChatGPT to help me find linguistic sources and prepare the first word suggestions below. This is preliminary research, not a finished translation. I'm not a historical linguist, and the proposed forms have not been independently reviewed by one. Some of them may well be wrong.
</p>

<p style="color:#202020;font-size:17px;">
	No audio has been generated yet.
</p>

<p style="color:#202020;font-size:17px;">
	My idea is not to reconstruct exactly what the Cimbri spoke around 100 BC. As far as I understand, the surviving evidence simply doesn't allow this.
</p>

<p style="color:#202020;font-size:17px;">
	Instead, I would like to find a reasonable linguistic approximation that fits the historical setting of 0 A.D. and sounds good in the game.
</p>

<p style="color:#202020;font-size:17px;">
	We only need about 18 short voice lines. Ideally, they should be one or two syllables long, but I don't think this needs to be a strict requirement.
</p>

<p style="color:#202020;font-size:17px;">
	Before experimenting with recordings or text-to-speech, I would like to get the words and their pronunciation into a reasonably good state.
</p>

<h2 style="color:#202020;font-size:1.25rem;">
	1. Which language should we use?
</h2>

<p style="color:#202020;font-size:17px;">
	Release 28 describes the Germans as a coalition of the Cimbri, Teutones, Ambrones and other Celto-Germanic groups.
</p>

<p style="color:#202020;font-size:17px;">
	<a href="https://play0ad.com/new-release-0-a-d-release-28-boiorix/" style="color:#175da5;" rel="external nofollow">Official Release 28 announcement</a>
</p>

<p style="color:#202020;font-size:17px;">
	The linguistic situation seems rather uncertain.
</p>

<p style="color:#202020;font-size:17px;">
	For example, Gilles Quentel discusses early contacts between Continental Celtic and Germanic. There are also different interpretations of the surviving names of the Cimbri and Teutones.
</p>

<p style="color:#202020;font-size:17px;">
	Bichlmeier and Blažek discuss several possible etymologies of these tribal names in their 2020 publication.
</p>

<p style="color:#202020;font-size:17px;">
	I think reconstructed Proto-Germanic could be a reasonable common language for the faction, as long as we make clear that this is an approximation, not a reconstruction of an attested Cimbrian dialect.
</p>

<p style="color:#202020;font-size:17px;">
	There is also the question of the First Germanic Sound Shift and its chronology.
</p>

<p style="color:#202020;font-size:17px;">
	For our purposes, I would initially use a consistent reconstructed Proto-Germanic pronunciation rather than trying to reconstruct a hypothetical earlier dialect specifically for 100 BC.
</p>

<p style="color:#202020;font-size:17px;">
	Of course, I would be interested in other opinions on this.
</p>

<h2 style="color:#202020;font-size:1.25rem;">
	2. First suggestions for the voice lines
</h2>

<p style="color:#202020;font-size:17px;">
	I used the English meanings from the Audio Voice List, with the Latin translations as an example:
</p>

<p style="color:#202020;font-size:17px;">
	<a href="https://gitea.wildfiregames.com/0ad/0ad/wiki/Audio_Voice_List" style="color:#175da5;" rel="external nofollow">Audio Voice List – 0 A.D. Wiki</a>
</p>

<p style="color:#202020;font-size:17px;">
	The following is a <strong>working draft, NOT a finished or academically validated translation.</strong>
</p>

<p style="color:#202020;font-size:17px;">
	All proposed Proto-Germanic words and forms are reconstructions, not directly attested historical expressions. Some of the specific forms still need linguistic verification.
</p>

<p style="color:#202020;font-size:17px;">
	Most candidates were initially found through Wiktionary's Proto-Germanic reconstruction entries, which often refer to etymological dictionaries such as Kroonen or Orel. However, I have not independently checked every individual reconstruction against these books.
</p>

<p style="color:#202020;font-size:17px;">
	I also used the freely available Proto-Germanic grammar by Winfred P. Lehmann and the IE-CoR linguistic database.
</p>

<p style="color:#202020;font-size:17px;">
	Some forms are more tentative than others. I have marked the particularly uncertain ones instead of pretending that we already have a complete solution.
</p>

<h3 style="color:#202020;font-size:1.05rem;">
	Selection and greetings
</h3>

<table style="border-collapse:collapse;color:#202020;font-size:17px;" width="100%">
	<colgroup>
		<col width="22%" />
		<col width="18%" />
		<col width="60%" />
	</colgroup>
	<thead>
		<tr>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="22%">
				English
			</th>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="18%">
				Proposed form
			</th>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="60%">
				Notes
			</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				Hello
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				hailaz!
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				Literally "healthy, whole". A possible greeting, but not an attested Cimbrian one.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				What is it?
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				hwat?
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				Simply "what?". Shortened for gameplay.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				My lord?
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				frawjô?
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"Lord", without "my". The appropriate form of address should be checked.
			</td>
		</tr>
	</tbody>
</table>

<h3 style="color:#202020;font-size:1.05rem;">
	Movement and fighting
</h3>

<table style="border-collapse:collapse;color:#202020;font-size:17px;" width="100%">
	<colgroup>
		<col width="22%" />
		<col width="18%" />
		<col width="60%" />
	</colgroup>
	<thead>
		<tr>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="22%">
				English
			</th>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="18%">
				Proposed form
			</th>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="60%">
				Notes
			</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will walk
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				gō
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"I go / walk".
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will fight
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				fehtō
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"I fight". The meaning and exact form should be checked.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will attack!
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				hwētō!
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"I attack". This candidate needs further linguistic checking.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will march!
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				farō!
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"I go / travel". Not specifically military marching, but perhaps sufficient for a short acknowledgement.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will retreat!
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				wīkwaną
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"To yield / retreat". This is still an infinitive. A shorter and grammatically appropriate spoken form is needed.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				Battle cry
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				open
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				Perhaps a non-verbal shout would work. Alternatively, a short expression based on a reconstructed verb for fighting could be considered. I would not want to invent something and present it as an authentic Germanic battle cry.
			</td>
		</tr>
	</tbody>
</table>

<h3 style="color:#202020;font-size:1.05rem;">
	Working and gathering
</h3>

<table style="border-collapse:collapse;color:#202020;font-size:17px;" width="100%">
	<colgroup>
		<col width="22%" />
		<col width="18%" />
		<col width="60%" />
	</colgroup>
	<thead>
		<tr>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="22%">
				English
			</th>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="18%">
				Proposed form
			</th>
			<th align="left" style="padding:8px 10px 12px 0px;text-align:left;vertical-align:top;" width="60%">
				Notes
			</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will build
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				timrō
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"I build".
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will work land
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				arjaną
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"To plough". The appropriate short spoken form still needs checking.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will gather
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				samnō
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"I gather / collect".
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will herd
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				drībō
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"I drive". This could refer to driving livestock, but is not exactly the same as tending a herd.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will fish
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				fiskō
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"I fish".
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will repair
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				bōtī
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"Improve / make good!" Not specifically repairing a building. The form and its use in this context need checking.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will hunt
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				huntōn-
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				Reconstructed verb stem only. The precise form and vowel length remain open.
			</td>
		</tr>
		<tr>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="22%">
				I will heal
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="18%">
				hailī
			</td>
			<td align="left" style="padding:8px 10px 8px 0px;text-align:left;vertical-align:top;" width="60%">
				"Heal!" An imperative rather than "I will heal". The exact form needs checking.
			</td>
		</tr>
	</tbody>
</table>

<p style="color:#202020;font-size:17px;">
	Regarding hunting, the IE-CoR database gives huntōn- as its reference form, but its explanation also mentions hūnton-. The vowel length and the actual spoken form therefore need further checking.
</p>

<h3 style="color:#202020;font-size:1.05rem;">
	Other
</h3>

<p style="color:#202020;font-size:17px;">
	<strong>(I will put myself into) garrison — felhō</strong><br />
	Intended meaning: "I enter / go inside". This is one of the least secure suggestions and needs both lexical and grammatical checking. It is not an attested term for entering a garrison.
</p>

<h3 style="color:#202020;font-size:1.05rem;">
	A few remarks about the list
</h3>

<p style="color:#202020;font-size:17px;">
	The grammatical forms are not consistent yet. Some are first-person forms, others imperatives, infinitives or reconstructed stems.
</p>

<p style="color:#202020;font-size:17px;">
	Personally, I don't think every response necessarily needs to be in the same grammatical form. The important thing is that it works as a short and natural-sounding acknowledgement in the game.
</p>

<p style="color:#202020;font-size:17px;">
	However, we should make sure that the individual forms are actually plausible and not simply invented by an AI.
</p>

<p style="color:#202020;font-size:17px;">
	Also, several suggestions deliberately use a broader meaning than the English original. For example, "I travel" instead of "I march" or "I drive" instead of "I herd". These would be gameplay decisions, not exact translations.
</p>

<p style="color:#202020;font-size:17px;">
	I would be happy to replace any of these suggestions if there are better alternatives.
</p>

<h2 style="color:#202020;font-size:1.25rem;">
	3. Sources
</h2>

<p style="color:#202020;font-size:17px;">
	Here are the main sources I found.
</p>

<h3 style="color:#202020;font-size:1.05rem;">
	Historical background
</h3>

<p style="color:#202020;font-size:17px;">
	<strong>Gilles Quentel (2012):</strong><br />
	<em>Early Linguistic Contacts between Continental Celtic and Germanic: Lexical Aspects.</em><br />
	<a href="https://www.researchgate.net/publication/331482184_Early_Linguistic_Contacts_between_Continental_Celtic_and_Germanic" style="color:#175da5;" rel="external nofollow">Publication on ResearchGate</a>
</p>

<p style="color:#202020;font-size:17px;">
	<strong>Harald Bichlmeier and Václav Blažek (2020):</strong><br />
	<em>"Cimbri" et "Teutoni".</em><br />
	<a href="https://journals.lki.lt/actalinguisticalithuanica/article/view/2041" style="color:#175da5;" rel="external nofollow">Journal article – Acta Linguistica Lithuanica</a>
</p>

<p style="color:#202020;font-size:17px;">
	<strong>Václav Blažek:</strong><br />
	<em>On chronology of the First Germanic Sound Shift (Lex Rask – Grimm).</em><br />
	<a href="https://doi.org/10.14746/linpo.2022.64.1.1" style="color:#175da5;" rel="external nofollow">Publication via DOI</a>
</p>

<p style="color:#202020;font-size:17px;">
	These publications discuss historical names, etymologies and linguistic developments. They do not provide translations of the 18 voice lines.
</p>

<h3 style="color:#202020;font-size:1.05rem;">
	Grammar and pronunciation
</h3>

<p style="color:#202020;font-size:17px;">
	<strong>Winfred P. Lehmann:</strong><br />
	<em>A Grammar of Proto-Germanic.</em> University of Texas at Austin.<br />
	<a href="https://lrc.la.utexas.edu/books/pgmc/index" style="color:#175da5;" rel="external nofollow">Complete online grammar</a>
</p>

<p style="color:#202020;font-size:17px;">
	The chapters on phonology and inflection are particularly relevant.
</p>

<p style="color:#202020;font-size:17px;">
	<strong>R. D. Fulk (2018):</strong><br />
	<em>A Comparative Grammar of the Early Germanic Languages.</em><br />
	<a href="https://www.benjamins.com/catalog/sigl.3" style="color:#175da5;" rel="external nofollow">Publisher's page – Open Access e-book</a>
</p>

<p style="color:#202020;font-size:17px;">
	The complete e-book is freely available. I have not worked through the whole book, though.
</p>

<h3 style="color:#202020;font-size:1.05rem;">
	Vocabulary
</h3>

<p style="color:#202020;font-size:17px;">
	<strong>IE-CoR – Indo-European Cognate Relationships</strong><br />
	<a href="https://iecor.clld.org/" style="color:#175da5;" rel="external nofollow">Linguistic database</a>
</p>

<p style="color:#202020;font-size:17px;">
	One useful example is the entry for "hunt": <a href="https://iecor.clld.org/cognatesets/1349" style="color:#175da5;" rel="external nofollow">IE-CoR: hunt</a>.
</p>

<p style="color:#202020;font-size:17px;">
	It references Kroonen's <em>Etymological Dictionary of Proto-Germanic</em> and also illustrates why some details need further checking.
</p>

<p style="color:#202020;font-size:17px;">
	I also used Wiktionary's Proto-Germanic reconstruction entries as starting points for individual words:
</p>

<p style="color:#202020;font-size:17px;">
	<a href="https://en.wiktionary.org/wiki/Category:Proto-Germanic_reconstructed_terms" style="color:#175da5;" rel="external nofollow">Proto-Germanic reconstructed terms</a>
</p>

<p style="color:#202020;font-size:17px;">
	Some examples:
</p>

<ul style="color:#202020;font-size:17px;">
	<li>
		<a href="https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic/fehtan%C4%85" style="color:#175da5;" rel="external nofollow">fehtaną – to fight</a>
	</li>
	<li>
		<a href="https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic/timr%C5%8Dn%C4%85" style="color:#175da5;" rel="external nofollow">timrōną – to build</a>
	</li>
	<li>
		<a href="https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic/fisk%C5%8Dn%C4%85" style="color:#175da5;" rel="external nofollow">fiskōną – to fish</a>
	</li>
	<li>
		<a href="https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic/hw%C4%93tan%C4%85" style="color:#175da5;" rel="external nofollow">hwētaną – to attack</a>
	</li>
</ul>

<p style="color:#202020;font-size:17px;">
	These entries are helpful for finding possible forms and references, but they are not a substitute for checking the original academic literature.
</p>

<h2 style="color:#202020;font-size:1.25rem;">
	4. What is still missing?
</h2>

<p style="color:#202020;font-size:17px;">
	Before recording anything, I think we would need:
</p>

<ul style="color:#202020;font-size:17px;">
	<li>
		Someone with knowledge of historical Germanic linguistics to review the suggested words and their grammatical forms.
	</li>
	<li>
		A consistent pronunciation guide, preferably using IPA.
	</li>
	<li>
		Better solutions for the uncertain expressions, especially retreat, repair, healing and garrison.
	</li>
	<li>
		A decision on the battle cry.
	</li>
	<li>
		A way to produce natural-sounding recordings that can be freely distributed with 0 A.D.
	</li>
</ul>

<p style="color:#202020;font-size:17px;">
	I know there has already been some discussion about AI-generated content in the project. I'm not attached to using AI for the final audio. Human recordings would be fine as well.
</p>

<p style="color:#202020;font-size:17px;">
	For now, AI has mainly helped me find sources and put together this preliminary list.
</p>

<p style="color:#202020;font-size:17px;">
	I would be interested to know whether AI-assisted linguistic research is acceptable for this kind of contribution, and what the requirements for the final recordings would be.
</p>

<h2 style="color:#202020;font-size:1.25rem;">
	5. Questions
</h2>

<p style="color:#202020;font-size:17px;">
	Does this general approach make sense for the Germans in 0 A.D.?
</p>

<p style="color:#202020;font-size:17px;">
	Would reconstructed Proto-Germanic be a suitable choice, or should we consider another linguistic approach?
</p>

<p style="color:#202020;font-size:17px;">
	And is anyone here familiar with historical Germanic linguistics who could help check the proposed words and pronunciation?
</p>

<p style="color:#202020;font-size:17px;">
	I would be happy to continue working on this if there is interest.
</p>

<p style="color:#202020;font-size:17px;">
	Thanks!
</p>
]]></description><guid isPermaLink="false">169825</guid><pubDate>Sat, 19 Sep 2026 20:00:21 +0000</pubDate></item><item><title>A couple of things regarding Champions.</title><link>https://wildfiregames.com/forum/topic/169777-a-couple-of-things-regarding-champions/</link><description><![CDATA[<p>
	First, champions is quite a misnomer. One would be hard pressed to find elite troops being called like that in any serious source. They are usually called, well, "elite". There's of course the issue that ranks are "Basic", "Advanced" and "Elite", the first two again terms that one will basically never find to describe how experienced units are. I think better would be "Recruit", "Seasoned" and "Veteran", all terms I've come across multiple times in sources.
</p>

<p>
	Second, what about ships and engines being able to be "champions"? One could make use of elite triremes for Athens for example, instead of making up things that weren't characteristic for them. I guess the main point of champions is to indicate that organic units do not work, but I think there's also a "good unit" implication being made that could be useful for a few inorganic units (they could also have some particular restriction or characteristic, like auto repair? Repair only at Dock/Arsenal? No repair? Whatever is balanced).
</p>
]]></description><guid isPermaLink="false">169777</guid><pubDate>Wed, 16 Sep 2026 13:41:28 +0000</pubDate></item><item><title>Han heroes are wildly different than their real life counterpart</title><link>https://wildfiregames.com/forum/topic/169765-han-heroes-are-wildly-different-than-their-real-life-counterpart/</link><description><![CDATA[<p>
	There are three heroes of the Han in the game,namely:
</p>

<p>
	Liu Bang, the first Emperor 
</p>

<p>
	Han Xin,his brilliant general
</p>

<p>
	Wei Qing, a later great cavalry general under Emperor Wu.
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	only the Han Xin's design makes sense to me,although I'm interested to know what exactly this Northern and Southern Army bonus is referring historically to.
</p>

<p>
	 
</p>

<p>
	Liu Bang was not a great individual fighter,or a tactical battlefield commander. His success came largely through his own charisma and the ability to recognise talent.His rule is also known for lower taxes and agricultural reforms so, the cavalry bonus makes no sense to me. If anything, his bonus should be a economy focused hero,or atleast something a bit more non-combatant. 
</p>

<p>
	 
</p>

<p>
	now here is the problem for which I made the entire post:
</p>

<p>
	WEI QING.
</p>

<p>
	he was LITERALLY KNOWN for his horsemanship and praised by his emperor for it. WHY DOES HE THEN RIDE A CHARIOT? he was also known for his marksmanship,so it would be fine to make him an archer cavalry hero, probably the first of its kind in the vanilla game.
</p>

<p>
	I also suggest adding the cavalry bonus to Wei Qing,as he was the Grand Master of the Horse- Grand General,
</p>

<p>
	General of the Chariots and Cavalry.
</p>

<p>
	additionally with these big changes,I believe his aura of reducing enemy cav attack should remain. the 30m will be less powerful when you realise he is an archer
</p>
]]></description><guid isPermaLink="false">169765</guid><pubDate>Tue, 15 Sep 2026 16:47:56 +0000</pubDate></item><item><title>Moving units laterally along a wall towards a threatened section?</title><link>https://wildfiregames.com/forum/topic/169621-moving-units-laterally-along-a-wall-towards-a-threatened-section/</link><description><![CDATA[<p>
	When a wall is being attacked, the units positioned on it would defend it of course. They will be eventually killed by the attacker and replacing them feels a bit fiddly (to me at last).
</p>

<p>
	Would it be possible to move units laterally along a wall towards the actual attack replacing fallen units? (this could happen from segment to segment, we could e.g. even replenish from the barracks to auto-replace a fallen defender using some auto-queue mechanism).
</p>

<p>
	Not sure it would work as between wall segments there are turrets that have a different garrisoning scheme. Would "teleporting from wall segment to segment be a solution (using the rally point mechanism) ?
</p>

<p>
	Such a feature might strenghten defense and actual use of walls, but not in an unfair fashion- siege engines would still be much more powerful and eventually break the walling. This would be more a slightly better defense against infantry/cavalry troops attacking.
</p>

<p>
	 
</p>

<p>
	A side note: the same pathfinding mechanism might be useful some time later when it comes to discussing (short) bridges again <img alt=":P" data-emoticon="" height="20" src="https://wildfiregames.com/forum/uploads/emoticons/default_tongue.png" srcset="https://wildfiregames.com/forum/uploads/emoticons/tongue@2x.png 2x" title=":P" width="20" />
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">169621</guid><pubDate>Sun, 06 Sep 2026 21:52:11 +0000</pubDate></item><item><title>Top Panel UI Opinion</title><link>https://wildfiregames.com/forum/topic/169086-top-panel-ui-opinion/</link><description><![CDATA[<p>
	The issue <a href="https://gitea.wildfiregames.com/0ad/0ad/issues/8901" rel="external nofollow">here</a> refers to showing the ceasefire timer to players who do not use the dev overlay timers. This and a few things I noticed myself have prompted me to make some changes in a mod that possibly should be considered for the core game. Specifically:
</p>

<p>
	Issues:
</p>

<ol>
	<li>
		The game version text on the top panel takes too much real estate in-game
	</li>
	<li>
		There is no ceasefire feedback to players not using the game time overlay
	</li>
	<li>
		It is not easy to identify if Wonder Win or Regicide is active - I have seen this determine matches
	</li>
</ol>

<p>
	Actions:
</p>

<ol>
	<li>
		Move the game version info to an About page available in-game freeing space on the top panel
	</li>
	<li>
		Add color and countdown status to the diplomacy icon 
	</li>
	<li>
		Enhance the Match Settings icon to give feedback about Wonder Win and Regicide 
	</li>
</ol>

<p>
	I'll post some screenshots in comments below this for discussion.
</p>
]]></description><guid isPermaLink="false">169086</guid><pubDate>Tue, 25 Aug 2026 10:52:43 +0000</pubDate></item><item><title>Possible Performance Optimization</title><link>https://wildfiregames.com/forum/topic/168955-possible-performance-optimization/</link><description><![CDATA[<p>
	Would it be helpful if when the game is paused or the ai is not doing a lot or when it is early on in the game, that it planned the next commands or tasks that it would execute (where to build, etc.), and store it in the ram, then it checks if that command would still work when the time comes to execute, and if so, it does it. The idea is to take some strain of the cpu when you are in a more cpu heavy part of the game with lot of units/structures, by calculating certain things when you aren't doing much. Now, if it is storing it in the ram, and you need more ram for the current stuff, it could just delete the current instructions, or like memory swapping, save it to the disk. I don't even know if it would help, or if it would make it worse.<img alt=":shrug:" data-emoticon="" src="https://wildfiregames.com/forum/uploads/emoticons/default_shrug.gif" title=":shrug:" /> (sorry if this doesn't make sense <span><img alt=":)" data-emoticon="" height="20" src="https://wildfiregames.com/forum/uploads/emoticons/default_smile.png" srcset="https://wildfiregames.com/forum/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>) If you are confused, just say so, and I can try to explain it better
</p>
]]></description><guid isPermaLink="false">168955</guid><pubDate>Fri, 21 Aug 2026 14:14:10 +0000</pubDate></item><item><title>Improving Roman Testudo formation</title><link>https://wildfiregames.com/forum/topic/130587-improving-roman-testudo-formation/</link><description><![CDATA[<p>
	I ran several tests with the testudo formation and found that it currently doesn't seem to provide any functional benefit in terms of defense. Units in testudo are still taking damage from arrows even when they're fired directly at the shields from the front, and they don’t appear any harder to hit in melee combat either. This could be a great area for improvement, as enhancing the testudo to actually reduce ranged and melee damage would not only make it more historically accurate, but also add a valuable tactical option for players looking to counter archers or hold a defensive line more effectively.
</p>
]]></description><guid isPermaLink="false">130587</guid><pubDate>Mon, 14 Apr 2025 03:58:39 +0000</pubDate></item><item><title>Animals enhacement</title><link>https://wildfiregames.com/forum/topic/129370-animals-enhacement/</link><description><![CDATA[<div>
	I believe it would be possible to make animals in the game much more interesting without animation changes, which could improve the overall gameplay. Here are some of the ideas I though of:
</div>

<div>
	 
</div>

<div>
	 
</div>

<div>
	<div>
		<strong>Only some dangerous animals should be aggressive</strong>
	</div>

	<div>
		It's quite strange that foxes attack on their own while for example wild boars do not. For consistency, especially foxes and rhinos and hippos should not be aggressive unless provoked (why are rhinos aggressive but elephants are not?). It can be quite annoying when your soldiers get attacked out of nothing, so I'd really keep the number of aggressive animals limited. Other possibility would be making these animals' range smaller, so they would attack you only if you go really near to them. Also, I think sharks should attack fishing boats, that would actually make them influential to the game in any way. I think they were attacking fishing boats at some point of the game development, but I'm not sure why was this removed.
	</div>
</div>

<div>
	 
</div>

<div>
	<strong>Animals should be faster</strong>
</div>

<div>
	It's unrealistic that animals simply walk when attacking or being hunted. They should move faster to improve interaction with them.
</div>

<div>
	 
</div>

<div>
	<strong>Buildings should not automatically shoot at aggressive animals</strong>
</div>

<div>
	This would make wild animals more dangerous for players and add a new challenge and the beginning of the game. What's the point of civil centre killing all aggressive animals that get near to it? Making player actually have to deal with them using soldiers could make them more influential.
</div>

<div>
	 
</div>

<div>
	<strong>More balanced XP gain from animals</strong>
</div>

<div>
	Killing domestic animals should give little to no XP (perhaps depending on whether they were trained in a farm or not). For example, killing a wild cow now gives you 30 XP. I'm not saying it's too much, but it's highly unbalanced. Defeating aggressive animals like lions and tigers should grant significantly more XP, for example comparable to killing a soldier. Now killing a lion or a tiger increases soldier's XP by 10 points. I suppose now the XP gain is based on animals' HP, which doesn't make any sense. Some animals could also have more balanced HP and food source.
</div>

<div>
	 
</div>

<div>
	<strong>Animals should naturally respawn</strong>
</div>

<div>
	A system where animals occasionally spawn new ones (e.g., a trigger with a probability of spawning another animal) would make them more relevant in the later game, when many have already been hunted. I'm not sure how difficult would this be to be implemented, it would be really cool though.
</div>

<div>
	 
</div>

<div>
	<strong>Chickens should be trainable in a farm</strong>
</div>

<div>
	They should be quick to train but provide a small food source, making them ideal for the early game and maybe farms more useful? Overall training times in farms could be a little lower.
</div>

<div>
	 
</div>

<div>
	 
</div>

<div>
	What do you think about it? Do you have any objections? I have only limited experience with coding and the project in general, so I probably wouldn’t rather implement these changes myself. In any case, I think these things would be really worth implementing. If needed, I can provide more details for each idea, such as how much XP I think should be gained from different animals.
</div>
]]></description><guid isPermaLink="false">129370</guid><pubDate>Sat, 15 Mar 2025 14:19:02 +0000</pubDate></item><item><title>juggernauts</title><link>https://wildfiregames.com/forum/topic/168045-juggernauts/</link><description><![CDATA[<p>
	Has anyone noticed that the tooltip for the juggernauts tech is not accurate <span><img alt=":)" data-emoticon="" height="20" src="https://wildfiregames.com/forum/uploads/emoticons/default_smile.png" srcset="https://wildfiregames.com/forum/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>
</p>
<p>
	Disregard, looks like its an older version <span><img alt=":)" data-emoticon="" height="20" src="https://wildfiregames.com/forum/uploads/emoticons/default_smile.png" srcset="https://wildfiregames.com/forum/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>
</p>
]]></description><guid isPermaLink="false">168045</guid><pubDate>Fri, 24 Jul 2026 17:10:30 +0000</pubDate></item><item><title>Research project using 0 A.D. as a case study</title><link>https://wildfiregames.com/forum/topic/167152-research-project-using-0-ad-as-a-case-study/</link><description><![CDATA[<p>
	Hi everyone,
</p>

<p>
	My name is Luther, and I am a Computer Science graduate student located in Mexico.
</p>

<p>
	I am currently working on my Master's thesis, which focuses on formal verification. For my research, I am planning to use the 0 A.D. engine's network code as a case study.
</p>

<p>
	I would love to get in touch via email, Discord, or any other method with a developer who is familiar with the game's network architecture to ask a few questions about it.
</p>

<p>
	Any info would be highly appreciated!
</p>

<p>
	<br />
	Thanks,<br />
	Luther
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">167152</guid><pubDate>Wed, 01 Jul 2026 17:50:58 +0000</pubDate></item><item><title>Vulkan - new graphics API</title><link>https://wildfiregames.com/forum/topic/104382-vulkan-new-graphics-api/</link><description><![CDATA[<p>
	I was doing different refactorings of our engine for last 1.5 years. It's allowed me to add a new backend (graphics API) - <a href="https://code.wildfiregames.com/rP27412" rel="external nofollow">Vulkan</a>. It's relatively new API (as D3D12) which allows us to have a more predictable and stable performance. And in some cases even better performance. But not always as we use it in a single thread yet.
</p>

<p>
	Vulkan drivers from different vendors are usually much lighter than GL ones. That's the way to have less driver bugs and crashes. But we still need testing how it works on different hardware. So <strong>everyone who has a Vulkan compatible device please try to enable </strong>it in options (along with feedback). If you're able to run SVN then you already can test it. Else wait for the next RC. <strong>Note:</strong> to run the game you'd need to download and install a separate mod with precompiled shaders (it'll be bundled in RCs and the Release): <a href="https://releases.wildfiregames.com/rc/0ad-spirv.zip" ipsnoembed="true" rel="external nofollow">https://releases.wildfiregames.com/rc/0ad-spirv.zip</a>. Vulkan can't run pure GLSL shaders (which we use for GL), it uses a special binary format for shaders: SPIR-V.
</p>

<p>
	Vulkan allows us to use different interesting features. For example it allows to select the most appropriate GPU to use. It means no more crashes because of wrong GPU, I hope <span><img alt=":)" data-emoticon="true" height="20" loading="lazy" src="https://wildfiregames.com/forum/uploads/emoticons/default_smile.png" srcset="https://wildfiregames.com/forum/uploads/emoticons/smile@2x.png 2x" title=":)" width="20"> Also Vulkan supports multithreading.</span>
</p>

<p>
	<span>If you still have some time you could run the game with validation enabled. It makes the game slower but validates a lot more different internal things. It should help to make Vulkan stable for the release. To enable validation you need to add the following lines to your usef.cfg:</span>
</p>

<pre class="ipsCode" id="ips_uid_7886_6">renderer.backend.debugcontext = "true"
renderer.backend.debuglabels = "true"
renderer.backend.debugmessages = "true"
renderer.backend.debugscopedlabels = "true"</pre>

<p>
	<strong><span>Known issues:</span></strong>
</p>

<ul><li>
		<s>Screenshots aren't implemented yet, but going to be during Feature Freeze</s> <a href="https://code.wildfiregames.com/rP27552" ipsnoembed="true" rel="external nofollow">rP27552</a>
	</li>
	<li>
		Some precompiled shaders are missing, please report if the game says so
	</li>
	<li>
		<s>macOS isn't supported yet, but we have plans to do so via MoltenVk</s> <a href="https://code.wildfiregames.com/rP27488" ipsnoembed="true" rel="external nofollow">rP27488</a>
	</li>
	<li>
		<s>Missing silhouettes</s> <a href="https://code.wildfiregames.com/rP27418" ipsnoembed="true" rel="external nofollow">rP27418</a>
	</li>
	<li>
		<s>Unsupported depth formats cause an assertion</s> <a href="https://code.wildfiregames.com/rP27421" ipsnoembed="true" rel="external nofollow">rP27421</a>
	</li>
	<li>
		<s>Stretching on window resize after fullscreen switch</s> <a href="https://code.wildfiregames.com/rP27422" ipsnoembed="true" rel="external nofollow">rP27422</a>
	</li>
</ul>]]></description><guid isPermaLink="false">104382</guid><pubDate>Wed, 11 Jan 2023 07:15:10 +0000</pubDate></item><item><title>Resource regeneration</title><link>https://wildfiregames.com/forum/topic/52143-resource-regeneration/</link><description><![CDATA[<div>
	<div>
		<div>
			<span><span>I know I'm probably not the first to bring this idea up but I found it worth discussing. What are your thoughts on making</span></span> some resources renewable, meaning they either regrow or regenerate? I namely had three in mind which would make a lot of sense in my view:
		</div>

		<div>
			 
		</div>

		<ol><li>
				Tree regrowth is one of the first that seems logical. With how often you struggle to find wood on some maps and how difficult everything gets if you run out, this would help from a gameplay perspective too alongside added realism. Best implementation feels like having trees spawn saplings near them when there's enough room: The little tree offers fewer resources but gradually grows if you don't cut it right away... since trees are static models they should be easy to just resize without requiring any new assets. For example: A sapling can be 0.25 the scale of a grown tree and offer 50 wood if cut, but if you wait 15 minutes it grows into a full tree offering 200.
			</li>
			<li>
				Animals should be able to reproduce too. Not going to suggest a realistic simulation as this isn't a Pokemon game, just a simple mechanism to have some animals spawn another identical animal on random occasion. Like trees we could simulate babies by having them start out small and offer less food if killed until they grow up... for animals this might be more complicated than it's worth though, simple probabilistic duplication might be enough for starters.
			</li>
			<li>
				Fish banks are prolly the easiest to do. As fishing boats consume them, the resource should slowly regenerate over time and have its "health" climb back up... once they're gone though they stay gone forever. Regeneration should be very slow, just enough to emphasize fish in that bank reproducing. This would require players to be more careful about how fast they consume fish if they don't want to run out, fish too fast and the source is gone!
			</li>
		</ol></div>
</div>
]]></description><guid isPermaLink="false">52143</guid><pubDate>Sun, 15 Aug 2021 16:30:20 +0000</pubDate></item><item><title>Host Transfer</title><link>https://wildfiregames.com/forum/topic/164801-host-transfer/</link><description><![CDATA[<p>
	I think it would be nice if when a host disconnects, the game is automatically transferred to one of the other players, until there are none left. This would:
</p>

<p>
	A: help people who are hosting a match of 3 or more people, and have to go mid-game
</p>

<p>
	B: fix hosts being able to cheat the ratings system by exiting the match, the other players could then defeat they’re uncontrolled units and structures.
</p>
]]></description><guid isPermaLink="false">164801</guid><pubDate>Tue, 26 May 2026 20:02:08 +0000</pubDate></item><item><title>garrison regeneration rate vs capture attack</title><link>https://wildfiregames.com/forum/topic/164388-garrison-regeneration-rate-vs-capture-attack/</link><description><![CDATA[<p>
	If they are "equal" would they cancel out?  I realize there is a structure regeneration rate as well... Say you take the base numbers:
</p>

<p>
	Structure regeneration rate 5 (garrison 1.0) I assume that means the building regenerates its capture points 5 every 1 second?  If a champ has capture attack of 5, and building regen is 5 and no one garrisons then that building can never be capture? 
</p>

<p>
	If building is 5, and you garrison 1 (+6/1 second?) then 2 champs trying to capture the building would keep losing 4 points per second?  Still think some buildings may be a little too easy to capture, trying to figure out how to maybe tweak them.
</p>

<p>
	Also building loot, that only happens if you attack the building and destroy it?  Not if you capture correct?
</p>
]]></description><guid isPermaLink="false">164388</guid><pubDate>Sat, 23 May 2026 15:46:34 +0000</pubDate></item><item><title>Adding storylines to scenarios and campaigns</title><link>https://wildfiregames.com/forum/topic/131518-adding-storylines-to-scenarios-and-campaigns/</link><description><![CDATA[<p>
	I think most players would agree that the single-player content 0ad offers is meager, especially in comparison to other RTS games. There are many great scenario maps, but there are no built-in campaigns. In my opinion the underlying issue is that there is simply no way for map makers to tell a story. I want/plan to make an interface for exactly that; the capability to tell the player about the historical context and events a game or campaign is based on, and to pack it into a plot that unfolds while the player plays through it.<br />
	<br />
	I'll disclaim it straight ahead: I'm not the typical and traditional RTS player that I know many other people in this community are -- e.g. I haven't player the AOE games.<br />
	It might be because of that, but I personally dislike the idea of adding actual dialogue and voiceovers. I'd personally rather convey the feeling of reading a history book. However, I am well aware that there are players who would disagree with this. So why not do both? We could have history-book style prologues and epilogues and something alike at key points too. And to bring the story to a more interactive, personal level, add the ability to have character monologues and dialogues.<br />
	<br />
	<br />
	What do you think? I made this thread to collect concepts and ideas on how to make it work and look.<br />
	<br />
	(By the way, I made some mockups for this a while ago, I'll post that in here when I've cleaned it up.)
</p>
]]></description><guid isPermaLink="false">131518</guid><pubDate>Fri, 09 May 2025 19:20:14 +0000</pubDate></item><item><title>Game displayed in a lower resolution in fullscreen</title><link>https://wildfiregames.com/forum/topic/103591-game-displayed-in-a-lower-resolution-in-fullscreen/</link><description><![CDATA[<p>
	hi, is there a way to change the game res to 1080p? i'm on windows 10 and 0ad texts looks so blurry compared to other games running at the correct resolution. thanks!
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://wildfiregames.com/forum/uploads/monthly_2023_01/IMG_20230103_154424.jpg.a732962d742b1a8a52356fb9cd8f04c8.jpg" data-fileid="69803" data-fileext="jpg" rel=""><img alt="IMG_20230103_154424.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="69803" data-ratio="71,6" width="1000" src="https://wildfiregames.com/forum/uploads/monthly_2023_01/IMG_20230103_154424.thumb.jpg.b3336de36171bd6f72f773d14ab77469.jpg" /></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://wildfiregames.com/forum/uploads/monthly_2023_01/IMG_20230103_154626.jpg.c67a0eff2e4d140d461711c028f49b04.jpg" data-fileid="69804" data-fileext="jpg" rel=""><img alt="IMG_20230103_154626.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="69804" data-ratio="76,4" width="1000" src="https://wildfiregames.com/forum/uploads/monthly_2023_01/IMG_20230103_154626.thumb.jpg.e9b457164227d6c1181e9439285d8fac.jpg" /></a>
</p>
]]></description><guid isPermaLink="false">103591</guid><pubDate>Tue, 03 Jan 2023 15:06:03 +0000</pubDate></item></channel></rss>
