Jump to content

Mare Nostrum: A New Overhaul Mod


 Share

Recommended Posts

Github Repo: https://github.com/Mare-Nostrum-0AD/mare_nostrum

Hey everyone!

I haven't been active on this forum before, but you might know me from the mod I've been maintaining, Random Civ Selection Groups.

I've been working on this mod for a while now; I originally built it for A23 last year during quarantine, and I've spent the last month updating it for A25. It's the culmination of a lot of ideas I originally thought of developing as individual mods, but eventually I realized I had enough new concepts to package together as a total overhaul for 0AD.

I loved this game when I discovered it last year, but I was a little disappointed that the city building usually involved turtling around your starting civil center instead of spreading out across multiple cities. I got into RTSs through Rise of Nations, so that's the style of gameplay I was expecting. This mod, Mare Nostrum, is at its core a mod that aims to reimagine 0AD as a game where you build your nation from a small, defenseless village to a vast empire spanning multiple cities.

The biggest concept introduced in Mare Nostrum is that each civil center gets a "population" representing the number of citizens who theoretically live in it (this is separate from the "Unit Population" that we're used to, which represents the soldiers and laborers you've recruited from your civil centers). Each civil center starts off as a village with only 100 citizens. Unlike civil centers in Empires Ascendant, villages in Mare Nostrum have low health and capture points, and cannot fire arrows. This makes it much more feasible to launch a successful rush in the early game. To grow your civil center's population, you have to build civic buildings like houses and temples and, especially in the mid-to-late game, promote trade between civil centers. As your civil center's population grows, it automatically upgrades to a higher level; first, to a town at population 500, then to a city at population 5,000, then finally to a metropolis at population 25,000. Each subsequent civil center upgrade has more health, capture points, and arrows than the last and, most importantly, unlocks the next phase in the game (i.e. your first town unlocks the Town phase, your first city unlocks the City phase, etc.). As your civil centers grow, it becomes increasingly more difficult to grow their populations with buildings alone, so building new civil centers and promoting trade between them becomes critical for phasing up (a civil center's population grows by about 2-3 citizens per unit of goods that arrive at the nearby market). This makes raiding your enemies' trade routes and capturing their nascent colonies (as well as defending your own) a more pivotal and engaging aspect of gameplay.

There's a lot more great features I've added to the mod along the way (Siege Towers can capture buildings, every faction gets to build a temple to a "Patron Deity" that provides certain bonuses), which you can learn about in the README at the github repo: https://github.com/Mare-Nostrum-0AD/mare_nostrum. I'm going to make a tutorial soon, but for now I recommend getting a feel for gameplay by either playing a sandbox game or watching the AI play against itself for a match or two (the new AI, Delphi bot, is actually decent at the city-building part of the game now). Note that, because of the greater emphasis on building multiple civil centers, you should choose maps that are at least Normal sized, if not larger; each player should have enough space to build at least 3 civil centers at a decent distance from each other.

To install, just clone the github repo I linked to above. It's currently compatible with the development (SVN) version of 0AD. I'm hoping to release an official A25 version on mod.io within a week of Empires Ascendant.

Also, I'd really love for some of you to join in and contribute. I'm very much not an artist, so having some help on that front in particular would be great.

Here are some screenshots of how the new civil centers look:

Mare_Nostrum_Village.png.22509b8ba7c8f67079899af765eb7cb0.png

An Athenian Village

Mare_Nostrum_City.png.bf27cdf99b9498654904b8949283643b.png

An Athenian City

Carthaginian_Civil_Centres.png.ab3c630b76521f09d22a218eff7d09aa.png

All four Carthaginian civil centers: Village, Town, City, and Metropolis

I hope you all enjoy playing this as much as I enjoyed making it!

Edited by hopeless-ponderer
Made Github repo more visible
  • Like 7
  • Thanks 5
Link to comment
Share on other sites

I've been messing around with it. Some neat concepts here. I hope you don't mind me stealing the Vineyards (aka "Cash Crops") for Delenda Est (as a way to "gather" coin in that mod, a resource which is usually attained passively).

I had some trouble understanding Manpower in-game. Perhaps tweak the resource tooltips to say what each one is primarily used for. The tooltip for Manpower can tell the player how to acquire it and what it's used for.

I really like the government centers. Hero barracks, essentially. I like any way to depict more culture.

The visual upgrades to the Civic Centers is a nice touch that the base game should have.

I might have more thoughts later. In the meantime, good work! Keep it up.

 

  • Like 2
Link to comment
Share on other sites

Wow, this is just what I dreamed of when I started City Building mod but didn't have enough knowledge of the code. Rise of Nations is also one of my favorite RTS, and I can definitely feel that Rise of Nations/Civilization meets AoE2 vibe here, especially in civil center concept. I'm still getting the hang of manpower vs population concept, but so far this is so interesting that I might make a City Building addon for Mare Nostrum mod in the future.

However I noticed that commoners do not immediately gather after finishing building a dropsite structure. In Empire Ascendant, citizens tasked with building Farmstead near berry bushes for example, will automatically gather berries after the Farmstead constructed. Is this intended? I took a glance at the mod and found no modification to UnitAI.js so not sure where the behavior started. I also found template error on Mauryan barracks, something related to Infantry champion.

Oh and a side note, I suggested siege towers to capture walls some weeks ago, and turns out it is not historical at all (they only capture buildings in Middle Ages)

Other than that, I'm very thankful for this mod, and I'm excited to see what other features it will offer in the future. Good luck, @hopeless-ponderer!

  • Like 2
Link to comment
Share on other sites

Hey @azayrahmad thanks for the feedback, glad you liked it! Yeah, Civilization meets Age of Empires is how I like to describe the mod myself!

The commoners not auto-gathering after building dropsites is a bug, I still haven't figured out where it's coming from. I think it started when I switched from female citizens to mixed-gender citizens. I may have removed a Class that actually had some importance to the unit AI. And thanks for pointing out the Maurya barracks error, I haven't looked at the Mauryas in a while.

Dang, that's too bad about the Siege Towers, I had a lot of fun making that feature. I might just keep it for the first release, but I'll change it to something more historically accurate for the second release. Maybe a combined stone thrower/ram unit that gets unlocked in the Hegemon Phase. I'll probably cut down the unit speed so it doesn't become too strong.

An addon would be nice, but more importantly, please join in and contribute to the repo directly! You have a lot of good ideas in the City Building mod that would work perfectly in Mare Nostrum. I noticed you got your civil centers to display a nice ring around their radius through the range overlay manager, maybe you could help me implement that too? You've done a pretty good job getting the AI to build your cities too, maybe you could help Delphi bot improve it's city placement game as well. Right now it hesitates a bit too much to build new civil centers after reaching the town phase, when it should build a second civil center as soon as possible, unless it's going all in on a rush.

Hope to hear more feedback from you!

Link to comment
Share on other sites

Hey @wowgetoffyourcellphone, glad to get some feedback from you!

Feel free to take anything you want from this mod, just link to my github repo in your contributions page. Also notice that there are olive groves and date palm groves as "cash crop" fields, which are good for diversifying your civs. Take a look at the pastures too, those could be useful now that you're starting to work with nomadic civs. And the patron temples could be good for more civ diversity and filling out DE's Empire Phase.

And there's some things I think I'll "steal" from DE too, if you don't mind. The cult statues will work perfectly with my patron temples, and the mixed-gender citizen icon will be good for the unit production menu.

Thanks for pointing out that I need to document Manpower better. I've done a lot of work documenting the city-growth elements of the game in tooltips, but some things kinda slipped my mind. Though tbh, Manpower isn't really my favorite resource to work with, as it's hard to find a balanced trickle rate that doesn't slow down the early game too much without making it too plentiful in the later game. I created it as a way to give a definitive late-game advantage to players who managed to grow their cities more, but now that I've learned more about how Value Modifiers work, I'm thinking of other ways to do that. Maybe an "Aura" that scales with city population that progressively reduces the batch production time in nearby buildings, to the point that someone with a Metropolis of 100k+ citizens can spam units almost instantly. So I'll probably remove Manpower in a later release.

Glad you like the government centers. They're ultimately meant to be a lot more than a "Hero Barracks" though, they're going to be the main way of implementing civ-specific technologies and bonuses. Right now they're a bit cookie-cutter because I haven't had time to think of a lot of civ-specific techs, other than the "Democracy vs Tyranny" techs for Greek city-states and the Cura Annonae for the Romans. You've created a lot of techs for Delenda Est, maybe you could help me with that?

Oh yeah, and <Icon> doesn't support {phenotype} in the base game, I rewrote Identity.js and some of the gui code to support that. Don't try to implement it in DE yet! I'll try to submit that as a patch for A26.

  • Thanks 3
Link to comment
Share on other sites

I put off modding for a while at least until A25 is released. But I can give you some pointers if you like.

On 21/06/2021 at 6:45 AM, hopeless-ponderer said:

I noticed you got your civil centers to display a nice ring around their radius through the range overlay manager

You can customize radius texture and thickness in aura JSON. Like this.

On 21/06/2021 at 6:45 AM, hopeless-ponderer said:

You've done a pretty good job getting the AI to build your cities too, maybe you could help Delphi bot improve it's city placement game as well

I just configured the influence of each building using addInfluence. Check the code here. Basically addInfluence tells AI to build a structure in relative distance of other structure with specified classes.

On 21/06/2021 at 7:05 AM, hopeless-ponderer said:

Though tbh, Manpower isn't really my favorite resource to work with, as it's hard to find a balanced trickle rate that doesn't slow down the early game too much without making it too plentiful in the later game.

You're going to need something that use manpower.

I take it that both Manpower and Population represent the amount of people residing in the city, albeit in different way. Manpower seems to represent realistic city population, while the Population represent RTS game population. So if the map has 300 population limit, at lategame you may have a Metropolis with 25,000 manpower, but only have 300 units. What are the rest 24,700 people doing then? I suggest you put the manpower to work. Here are some ideas I had:

  • Make structures cost manpower as well, a lot of them, as structure employees.
  • Introduce negative effects of unemployment, give negative trickle for certain percentage of unemployed manpower.
  • Give manpower upkeep. E.g. one manpower consume one food per 5 second, so the more manpower, the more food you have to provide.
On 21/06/2021 at 7:05 AM, hopeless-ponderer said:

I created it as a way to give a definitive late-game advantage to players who managed to grow their cities more, but now that I've learned more about how Value Modifiers work, I'm thinking of other ways to do that. Maybe an "Aura" that scales with city population that progressively reduces the batch production time in nearby buildings, to the point that someone with a Metropolis of 100k+ citizens can spam units almost instantly.

Or perhaps just create technologies that reduce batch production time in structure with specific class, make it cost manpower, and make it automatically researched (set autoresearch to True).

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 21/06/2021 at 5:26 PM, azayrahmad said:

You can customize radius texture and thickness in aura JSON. Like this.

I just configured the influence of each building using addInfluence. Check the code here. Basically addInfluence tells AI to build a structure in relative distance of other structure with specified classes.

Thanks, I'll integrate these into the repo soon! It'll be especially useful to get the patron temples to build closer to the buildings they provide a bonus for (it's frustrating seeing the AI build a Temple of Poseidon in the middle of land).

On 21/06/2021 at 5:26 PM, azayrahmad said:

You're going to need something that use manpower.

I take it that both Manpower and Population represent the amount of people residing in the city, albeit in different way. Manpower seems to represent realistic city population, while the Population represent RTS game population. So if the map has 300 population limit, at lategame you may have a Metropolis with 25,000 manpower, but only have 300 units. What are the rest 24,700 people doing then? I suggest you put the manpower to work. Here are some ideas I had:

  • Make structures cost manpower as well, a lot of them, as structure employees.
  • Introduce negative effects of unemployment, give negative trickle for certain percentage of unemployed manpower.
  • Give manpower upkeep. E.g. one manpower consume one food per 5 second, so the more manpower, the more food you have to provide.

Or perhaps just create technologies that reduce batch production time in structure with specific class, make it cost manpower, and make it automatically researched (set autoresearch to True).

Hmm... I'm still leaning toward getting rid of manpower, but making structures cost manpower might actually help balance manpower levels. Especially if more advanced buildings like monuments cost exponentially more manpower. And there would be a good in-game justification for it too.

Also, notice that Manpower is different from City population (which is itself different from Unit population, which will be renamed to "Command Limit" in the future, to avoid confusion). Manpower represents a small subset of your City population that you've managed to recruit for the military and service to the government. I actually am planning on giving Cities and Metropoli a food upkeep that scales with their population, since food production seems to get a bit too easy in the later game. But I think creating an "unemployment upkeep" for excess manpower is a bit unnecessary, and could lead to some dangerous cases where the upkeep is taking away all your resources, which leaves you no way to get rid of the excess manpower. At least with the food upkeep for cities, the city's population will decline when upkeep is unpaid until the upkeep falls back to a manageable level.

BTW, I fixed dropsite bug and the Maurya barracks bug, thanks again for pointing those out! Always good to hear feedback from you.

Link to comment
Share on other sites

I guess I'll blog some of my progress here.

This week I created a new City Center actor for the Romans by reskinning the extra Spartan civil center actor. In the long run I'm hoping to replace it with something that looks more like the Basilica Aemilia (similar to the current Roman CC, but a bit smaller, and with tapered levels), but for now I think it looks pretty nice. I used the texture files for this to reskin the Roman bathhouse and level 1 farmstead too, so they look a bit more professional.

rome_cc.png.37ced38dbb8fea0f36db8a914a570b01.png

Here's a video of the complete Roman civil center progression now:

Other changes I've made the lately:

  • Civil centers can train citizen soldiers again. I realized removing them from the cc made the early game too slow.
  • Phase upgrade alerts now display correctly and play the sound. This also fixes a bug where all civs were researching the Athenian phase techs.
  • A ton of bugfixes for Delphi bot, mostly checking for entities with undefined position (it seems the AI has trouble noticing when a civil center has upgraded). The most common bugs are gone now.
  • City radius range overlays display correctly now. I borrowed the texture for the overlay from @azayrahmad's city building mod.

Over the next few weeks I'm going to start working on a couple different features. I'll try to submit them as patches for A26, since they could be useful for the main game:

  • A gui interface for "popup choices" that can be called from Trigger scripts. The popup choice menu will have up to three buttons, with each button being linked to a callback function that can be used to trigger different events. This will be useful for adding a "choose-your-adventure" element to scenarios (i.e. "Ally with the Rhodians and receive 20 ships" vs "Ally with the Spartans and receive 20 Spartiates").
  • Allowing technologies to call Trigger functions when researched. This will be useful for technologies like the "Marriage Pact" technology being discussed for the Syracuse mod (i.e. "receive a one-time delivery of 20 Maurya war elephants").

 

Edited by hopeless-ponderer
Fixed video format
  • Like 5
Link to comment
Share on other sites

On 03/07/2021 at 7:57 PM, hopeless-ponderer said:

This week I created a new City Center actor for the Romans by reskinning the extra Spartan civil center actor. In the long run I'm hoping to replace it with something that looks more like the Basilica Aemilia (similar to the current Roman CC, but a bit smaller, and with tapered levels), but for now I think it looks pretty nice. I used the texture files for this to reskin the Roman bathhouse and level 1 farmstead too, so they look a bit more professional.

some reference, some conceptual idea?

  • Like 1
Link to comment
Share on other sites

19 hours ago, Lion.Kanzen said:

some reference, some conceptual idea?

Yes, of course.

Disregard what I said before, I think a better choice for a city-level cc would be the Basilica Fulvia (later renamed the Basilica Paulli), which was built during the Middle Republic (c. 179 BC). It was a relatively simple building: basically a long, rectangular hall with three doors at each end. There was a smaller second story protruding from the roof, with a triangular attic. Near the ceiling there was a row of small windows. In front of the building there was a smaller, two story building with a wooden balcony and a colonnade running down the front.

Basilica_Fulvia.jpg.19dd837dc21728a641acaea0746540ee.jpg

For the purpose of the game it should have the same footprint as the existing Roman CC, but it should be about 2/3 as tall, to make it look more humble. There should be a tiled plaza in front as well, but it should have simpler props than the current CC. Maybe just a few trees, or statues without columns.

There's an article with accompanying images at Digitales Forum Romanum: http://www.digitales-forum-romanum.de/gebaeude/basilica-fulvia/?lang=en. It also includes models of the version that was rebuilt under Augustus (called the Basilica Paulli). You could incorporate some elements from that version as well, if you feel like the front of the Republican building looks too plain.

  • Like 2
Link to comment
Share on other sites

On 05/07/2021 at 10:12 PM, wowgetoffyourcellphone said:

@hopeless-ponderer

I implemented the Cash Crops from your mod into DE! They are a way to "harvest" coin as opposed the more passive ay of taxes and trading. I really like it, and thanks for the idea! Hopefully I (we?) can differentiate the cash crops going forward for each civ.

Thanks, glad you're liking it! I've played it a few times since you added them, I think it really adds a lot to the realism.

If you want to differentiate the civs like in Mare Nostrum, you could use Olive Groves (Elaionas) for the Hellenic civs and Date Palm Groves for African and Asian civs. You might have missed those templates; they aren't located in the regular civ folders, they're located under structures/hele, structures/mesop, and structures/nile (long story short, I rewrote Builder.js to replace {civ} with the culture code if it can't find the template with the civ code, so for example will look for structures/hele/field_cash_crop if it can't find structures/athen/field_cash_crop).

Here's what they look like:

Olive_Grove_and_Date_Grove.png.7f32b118331163cc58a6e43e1b3a86c0.png

Off the top of my head you could use cacao groves for the Mesoamerican civs and silk worm farms for the Chinese. I haven't added those factions, so it isn't high on my priorities list, but you might want to look into it.

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...