Jump to content

Map making support and conversion tool: post-Atlas


 Share

Recommended Posts

Trying Atlas I found a few things I wasn't able to manage properly (or wasn't careful or patient enough) such as properly connected wall segments and turrets. I finally started to write (with heavy support by Anthropic Claude) a little map analyzer/checker/converter tool, written in python, able to 

  • check the maps created with Atlas and offer options to correct issues
  • analyze existing maps , also from older game versions, giving statistics, finding and offering to fix glitches (resource placed underneath a building or wall, trapped units, gaps in wall segments etc.)
  • add a (poor) map preview if not existing or convert the Atlas screenshot into a preview file.
  • converting and fixing older scenario and skirmish maps using the conversion scripts by @Stan` (e.g. renaming persian objects/units to achaemenids)

I was only able to test on windows, it should theoretically work on Linux or MacOS as well (Python 3.14, pyQT6, numpy and pillow needed, see documentation). No real guarantee to always work (definitely NOT on random maps), but I was able to successfully convert a few great maps from past I found in the forum and play them.

 

Note: I only started experimenting with maps  so I haven't seen all pitfalls by far.
Should you have observed further typical mapping issues, I'd be interested to know and try integrating these into the analyzing and fixing section of the tool if possible.

image.jpeg.e5d74556f272001acb3c5b61f5df7bba.jpegimage.jpeg.1a4b04229473767d16facf09c262faca.jpegSetup-panel_light_scheme.jpg.fe6a6329f9a055986ec14b9959330e30.jpgimage.jpeg.45f3f2ef8ef45a24919a9776d2f5065f.jpegimage.jpeg.ae78e791cf167802e456e07134467c46.jpeg

image.jpeg.e404aab251727fb9d1e55f5b6ed75a00.jpegimage.jpeg.d81685f99ef9b4ce66c7401c364b82e5.jpegimage.jpeg.608868d313df6dc27483db7898cf6dea.jpeg

image.jpeg.bcacf2fef0f192d92fd6c0e91df16e2b.jpegimage.jpeg.1b8dfbbcf0ea44b8d8e0039299c5000d.jpeg

 

 

 

 

 

 

 

post-atlas-1.1.0.zip README.md

Edited by Grautvornix
Updated tool version to 1.1.0 plus one new screenshots
  • Like 1
Link to comment
Share on other sites

Did a total review and refactoring of the user interface and functionality. Hope it is better now.

I am placing the python code and new screenshots in the original post on top of this conversation. @Asher I'd love to have  your comemnts - please have a look!

Edited by Grautvornix
Link to comment
Share on other sites

3 hours ago, Grautvornix said:

Did a total review and refactoring of the user interface and functionality. Hope it is better now.

I am placing the python code and new screenshots in the original post on top of this conversation. @Asher I'd love to have  your comemnts - please have a look!

I loaded some maps, and it worked. Can you make it so you can load mods for it, like if you are making a map for a mod that adds new structures. Because it was saying a certain civ name was undefined, but it was, just in a mod. Maybe you already added the setting, but I didn't see it

Link to comment
Share on other sites

Also if you could add tool tips. When on dark theme, it is had to tell which buttons you can click and not click (see photos). Could you have some other colors, pwease. Also, do you use github or gitlab or any of those type things? It might be easier for other people to update or something

image.png.3110f1a1f4afad9bdeb5cd736eca5a28.pngimage.png.116376873ca5beb80676def7da501381.png

Link to comment
Share on other sites

8 hours ago, Asher said:

Can you make it so you can load mods for it, like if you are making a map for a mod that adds new structures. Because it was saying a certain civ name was undefined, but it was, just in a mod. Maybe you already added the setting, but I didn't see it

Thanks! Very good - I'll take that on board.

 

8 hours ago, Asher said:

Also if you could add tool tips. When on dark theme, it is had to tell which buttons you can click and not click (see photos). Could you have some other colors, pwease. 

Oops! Good point as well. Needs to be changed. 

8 hours ago, Asher said:

Also, do you use github or gitlab or any of those type things? It might be easier for other people to update or something

You are right, was just lazy and tried to keep it initially simple for me on a local repository. Will change that.

  • Thanks 1
Link to comment
Share on other sites

@Asher  Here is a bit of feedback on dependencies on entities in other mods:

post-Atlas already reads dependencies and shows them on the Analyse tab. What it does not do is connect them to the entities a map places — which is your actual request

  • A maps mod.json provides Dependencies as a real key: "dependencies": ["0ad>=0.28.0", "millenniumad>=1.0"]. Operators are <=, >=, =, <, >.
  • A dependency with no operator is not checked at all. CheckForIncompatibleMods only compares when it finds an operator in the string, so "dependencies": ["millenniumad"] is documentation, nothing more. Write millenniumad>=0 if you want it enforced.
    CAVEAT: It requires the other mod to be enabled, not merely installed — the version table is built only from the mods in that launch list. 
  • It names the mod's name key, not its folder. The base game is 0ad, though its folder is public.

Proposed solution: 

Today a template that isn't in public or the map's own mod produces entity-template-missing, a FAIL, while another mod might have it. Four steps:

  1. When templates are missing, search the other mods in the selected install — its own binaries/data/mods and the user's Documents\My Games\0ad\mods, both of which Session already knows — for simulation/templates/<name>.xml, and for actors under art/actors/. Only when something is missing, so nothing slows down.
  2. Report what was found by name: "structures/mil/tower is in mod millenniumad (Millennium A.D. 1.2)" — the finding turns from "broken map" into "enable this mod". Where nothing is found: say plainly that these are probably from a mod not installed here, and name the count.
  3. Check the map's own mod.json against that: entities from mod X with X not in dependencies → WARN, with an automatic fix that adds X>=<installed version>. write_mod_json already preserves keys it doesn't own, and the converter already writes the file.
  4. Conversion and Test in Game: carry the dependency into the converted mod's mod.json, say in the report which mods must also be enabled, and add them to the -mod= list when launching.

The other issues,

  • inactive buttons not being visible on dark schem,
  • missing light scheme, 
  • missing tooltips

Are also addressed. As usual I'll put the release into the top message of this thread. Let me know if something is missing or failing!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...