Grautvornix Posted yesterday at 22:36 Share Posted yesterday at 22:36 (edited) Having played around with Atlas and a post processor/analyzer/converter post Atlas (https://wildfiregames.com/forum/topic/169808-map-making-support-and-conversion-tool-post-atlas/?do=findComment&comment=762301 ) I thought it might be useful to add a few capabilities to Atlas without actually changing it. My initial concern was the difficulty (for my clumsy attempts of editing) to place walls with segments and turrets properly algined and without gaps. Hence, I started defining a tool that replicates the in-game way of placing walls by dragging and connecting rather than placing individual elements. For this the tool would manipulate the Atlas-generated xml-file and hand it afterwards back to atlas for further editing and final touch. Well, implementing this handover in both directions, Atlas --> tool and tool--> Atlas, certainly allows manipulating other simple things in a kind of co-editing mechanism. Important to note: ATLAS is and will remain the primary tool mastering all the map creation complexity. My tool tries to help offering a few workflows only preserving Atlas' role as the master editor. So currently the workflow can be like this: You define a maps basic parameters, game characteristics, player characteristics etc. - either in Atlas or the new tool (in this case with a handover to Atlas). Then Atlas is used to sculpt the terrain and place landscape items. The tool can read the xml file output by Atlas and visualize both in 2D plan view and in simplified 3D what has been placed where and for which player, listing all elements. If desired, a wall or palisade can be drawn like in the game and gates can be added by simple selection of a wall segment. The tool also allows placing enitites of all kinds selected from a list with little images representing what the entity looks like in game. The game's rules where entities can actually be placed are explicitly applied (e.g. no hous in the ocean or on a cliff slope). Handover back to Atlas for modification/manipulation finalizing, whatever. If finalized, it is certainly possibly to use post-Atlas tool to verify a map works Oh, and finally, I had to find a name for the tool (used to be "prep-Atlas" similar to "post-Atlas"), but then I thought I should be a bit more creative. With a probably a bit to much creativity enhancer made from grapes, I cam up with this silly story: A character in history used and improved historical maps and related all to the legendary King Atlas of Mauretania, said to have been a geographer and astronomer (potentially related/referring to the Greek mythodologic Titan Atlas). This occured many centuries later (in the 1590s) when the Flemish cartographer Gerard de Kremer (Merchant), latinized Gerardus Mercator, came up with a map collection in a book named "Atlas" referring to that King and/or Titan. Our tool also came much later than the Atlas tool and uses its maps and tries to improve a bit. Strictly speaking the name "Mercator" in this context is not at all related to the 0AD timeframe, but, hey, the game calls a roman trader rightfully "Mercator" as well) So here is the first BETA version for people willing to test: README.md mercator-0.9.1.zip CHANGELOG.md Edited 8 minutes ago by Grautvornix Updated to release beta 0.9.1 (including a little additional fix) 3 Link to comment Share on other sites More sharing options...
Thalatta Posted 23 hours ago Share Posted 23 hours ago Small comment: naming a map editing tool "Mercator" while having nothing to do with the ubiquitous Mercator projection would be like naming a financial tool "Crypto" while having nothing to do with cryptocurrency. But this leads me to a bit of an unrelated question: do you think it's possible to make spherical maps? To map a whole planet. 1 Link to comment Share on other sites More sharing options...
Atrik Posted 23 hours ago Share Posted 23 hours ago So @MarcusAureliu#s is OP? Link to comment Share on other sites More sharing options...
Grautvornix Posted 17 hours ago Author Share Posted 17 hours ago 6 hours ago, Atrik said: So @MarcusAureliu#s is OP? Just used an old map from the forum for demonstration Link to comment Share on other sites More sharing options...
Grautvornix Posted 17 hours ago Author Share Posted 17 hours ago 6 hours ago, Thalatta said: Small comment: naming a map editing tool "Mercator" while having nothing to do with the ubiquitous Mercator projection would be like naming a financial tool "Crypto" while having nothing to do with cryptocurrency. But this leads me to a bit of an unrelated question: do you think it's possible to make spherical maps? To map a whole planet. Would not reduce the impact of Mercator to his famous projection. As I wrote, he did other things as well (producing an Atlas). Regarding spherical maps, this is specifically a question to the game mechanics, i.e. a unit leaving through one side must reappear on the opposite side. this might have quite some consequences on pathfinding. Link to comment Share on other sites More sharing options...
Asher Posted 11 hours ago Share Posted 11 hours ago Thanks for making this @Grautvornix! I really like the wall drawing. I was getting some errors though. Maybe this is tied to that, but the walls didn't appear in atlas /Users/me/Downloads/mercator-0.9.0/atlas_maps/model_picture.py:320: RuntimeWarning: invalid value encountered in matmul normals = piece.normals @ view.T Link to comment Share on other sites More sharing options...
Grautvornix Posted 11 hours ago Author Share Posted 11 hours ago (edited) Oh! Thanks! Sorry to hear - it used to work for me so far. Will look into this tonight.would you have more details , e.g. the xml that threw this error (byPM if you wsnt) Investigation showed that the map can be loaded, but Atlas always starts with an empty map. You have to load your pre-created map (to be accessible by Atlas, the fresh map must be stored in a game map folder, e.g. mods/user/maps/skirmishes on windows - e.g. using "save into game"). The error message is supposedly coming from MacOS's numpy implementation, where Claude Code claims that "On Macs numpy uses Apple's Accelerate library, which can flag "invalid value" for perfectly good numbers." I cannot verify this though,unfortunately, so I asked Lumo AI to verify. Here is the result: Based on my research, the statement is substantially correct, but it requires some nuance. Here's what the evidence shows: Evidence Supporting the Claim 1. NumPy GitHub Issue #25433 - Direct Confirmation A NumPy bug report explicitly documents this problem: "BUG: false positive in the heuristic for old Accelerate RuntimeWarning: invalid value encountered in divide" The issue notes that this warning was triggered "despite the numpy build not being linked to Accelerate", confirming that false positive "invalid value" warnings can occur on macOS systems using the Accelerate framework. 2. NumPy GitHub Issue #25532 - macOS-Specific Behavior "On macOS, with Python 3.10 and numpy 1.26.3, as shown by the reproducing code, the warning behaviour is not consistent. Actually even with a small change in version... all the output won't be identical." The issue author notes that operations like inf + (-inf) = nan and 2 + 3 = 5 are well-defined in floating-point arithmetic, yet NumPy produces inconsistent warnings. 3. Recent M4 Mac Issues (2025) GitHub Issue #28687 reports: "M4 Macs watch out Numpy Sneaky Bug Alert! If you're using NumPy on a new Mac with the M4 chip (and macOS 15.4 or later), be aware: NumPy matrix multiplication uses SME (Scalable Matrix Extension). This change can cause floating-point operations to break, especially in ML workflows." Users reported getting RuntimeWarning: divide by zero encountered in matmul in code that previously worked fine. Downgrading to NumPy 1.26.4 resolved this for many. Why This Happens Cause Details Accelerate framework limitations Apple's BLAS/LAPACK implementation has historical inconsistencies compared to OpenBLAS/MKL Floating-point precision differences Different handling of edge cases (division, logs, etc.) can trigger spurious warnings New chip architectures M-series chips with SIMD extensions (SME on M4) introduced new bugs in NumPy's matrix operations Verdict Partially Correct — The statement captures a real phenomenon but oversimplifies it: ✅ Yes: NumPy on macOS can use Apple's Accelerate library ✅ Yes: False positive "invalid value" warnings have been documented ⚠️ Nuance: Not all Macs have this problem—it depends on NumPy version, macOS version, and chip architecture (older Intel Macs vs. newer M-series chips) ⚠️ Nuance: The issue has been partially addressed in recent NumPy releases Workaround If you're experiencing this, try: # Option 1: Suppress the warnings with np.errstate(invalid='ignore', divide='ignore'): # your calculations # Option 2: Force NumPy to use OpenBLAS instead of Accelerate # (requires reinstalling NumPy with pip --no-binary=numpy) Edited 3 hours ago by Grautvornix 1 Link to comment Share on other sites More sharing options...
MarcusAureliu#s Posted 10 hours ago Share Posted 10 hours ago 12 hours ago, Atrik said: So @MarcusAureliu#s is OP? You were supposed to find this easter egg while actually playing on the map. Link to comment Share on other sites More sharing options...
Grautvornix Posted 10 hours ago Author Share Posted 10 hours ago Sorry that I exposed it Link to comment Share on other sites More sharing options...
Grautvornix Posted 59 minutes ago Author Share Posted 59 minutes ago (edited) Please have a look at the top post of this threat. I uploaded mercator verison 0.9.1 preventing entities of tjhe same owner placed twice at exactly the same position. It also enforces the game rules Putting a building on top of a tree or rock is refused. An object placed on top of an actor (citizien or other) creates a warning (the game seems to allow that) Objects off the map: refused. Mercator now also support defining screenshots taken in Atlas or putting its own simplified map layout as in post-atlas. Note that the tool is still in Beta version. I appreciate any suggestion, bug report etc. Edited 6 minutes ago by Grautvornix Added a note Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now