VP Community Roadmap/Vision Brainstorming

Is there any intention or demand to keep VP on feature parity with new generation of historical 4Xs? I played some Old World, Humankind and Millennia (demo) in my time away from VP, honestly the only one I properly played was Humankind. VP is still better (by far) in most regards, but I can name two areas where Civ5-VP formula feels underdeveloped. One is barbarians, both Civ6 (iirc) and Humankind have interactions with barbs, allowing you to recruit them either directly or indirectly. This would be a serious undertaking, but I think it is within our capabilities with what we can mod, so that probably would be my candidate for a new mechanic/feature.
The other issue with VP is the infinite city sprawl. Civ6 added a half-baked loyalty (iirc) system to discourage settling close to other civs, the newer games seem to move towards an area/region system. In VP this is discouraged by the AI aggression and yield scaling, but I still feel overwhelmed with how crowded the map gets, the AI is relentless. I don't have any suggestions here though. Oh and a wargoal/casus belli feature would be welcome, as mentioned earlier.
'Feature parity' is vague. Ideas from other games can be suggested but need to be more specific, and if it's balance related, that's what the VP Congress is for.

I like that in Civ6 you could bribe barbarians to attack someone and after some time, a camp is transformed into a city state. It add some dynamics to the game.
The DLL is limited to a maximum of 63 players (excluding Barbarians) and I believe there's an engine limitation of 80 players. The free city mechanic from revolts already adds new players to the game.
 
does this use the 80 limit or 63? I often play 43/20 players/CS, I don't think I've ever see this happen
63. So you wouldn't get free cities.
 
So in Humankind (and other Amplitude games afaik) the map automatically gets divided into regions which are distinct geographical areas, and each region can only have one city, where you place the city is up to you. It's possible to found a city closer than 3 tiles to the enemy, but regions in general are much larger than the 3-tile radius we get in Civ5/VP. There's also a neat mechanic where you can claim a region with an outpost, but link it to a near city instead of founding one. It has its drawbacks, this essentially means there's a hard cap on total cities on the map (due to number of regions generated), there's also a hard-ish city cap per player instead of a proper wide/tall mechanic.
Then I prefer the standard civ way, where regions are not forced, but decided by players.
I really like the mechanic but I'll admit it isn't really suitable for VP. Something like Civ4/Civ6 would be better, such that if you're going to found a distant city very near to your rival's heartlands, you either need to have policies or traits to back it up, else it gets flipped/converted.
That would be cool, although loyalty mechanic would need to be implemented. Probably a modmod territory at first.
The DLL is limited to a maximum of 63 players (excluding Barbarians) and I believe there's an engine limitation of 80 players. The free city mechanic from revolts already adds new players to the game.
That's fine. A new city state would be created if it'd fit to the limit, which is plenty for Standard settings.
 
Hi just a humble VP player here, not sure if this is the right place to share this, but i'll give it a go anyway, sorry in advance if it isn't.
I would be more than happy to donate to the development of VP, i've been really enjoying the mod so far, supporting the devs is a no-brainer
At the risk of uttering blasphemy, perhaps it could be interesting to look at gaia's core and sapiens mod to seek useful new features to add to VP?
I've heard the sapiens diplomacy and the congress meetings in-game have been punched up a little
thank you for the mod
 
One is barbarians, both Civ6 (iirc) and Humankind have interactions with barbs, allowing you to recruit them either directly or indirectly. This would be a serious undertaking, but I think it is within our capabilities with what we can mod, so that probably would be my candidate for a new mechanic/feature.
JFD made that Mercenaries mod, I think? Where you can recruit units, but not from barbarians, though. We should take inspiration from it. The mechanic is also based on a feature that CP added.

The other issue with VP is the infinite city sprawl. Civ6 added a half-baked loyalty (iirc) system to discourage settling close to other civs, the newer games seem to move towards an area/region system. In VP this is discouraged by the AI aggression and yield scaling, but I still feel overwhelmed with how crowded the map gets, the AI is relentless. I don't have any suggestions here though.
I made a rough suggestion a long time ago on the Discord server. It's called the Control system.
Spoiler Rough idea :

Code:
I'm thinking about a gamified Loyalty mechanic that could turn into something that makes expanding more interesting.

Instead of similar to Loyalty pressure that could turn your city into a free city or other civ's city, make it a gradual step.

I would probably call it Control instead of Loyalty, it means how much the empire controls that city.

Control goes from 0% - 150%.

The raw percent is acting like a yield percentage.
So 100% Control means that you get a 100% yield outcome from that city, and with 50% Control you only get half as much yield from that city.

At 76% - 100% Control, you get a normal city.
At 51% - 75% Control, you can't purchase units or invest in buildings.
At 26% - 50% Control, you can't train units from that city, and the city's production rate becomes slower.
At 1% - 25% Control, that city turns into a puppet.
At 0% Control, that city will rebel or flip as a free city or another civ's city.

Passively, it's capped at 100%, but you can go higher by doing it actively.

Above 100% Control, unhappiness from the population is rising, as the citizens start to feel the empire is controlling them.
Population * (additional percentage * 2) = extra unhappiness.
150% Control, you get 100% unhappiness from the population.

But, for any additional Control percentage, you also get production modifiers for training units or constructing buildings.

A Control percentage can be passively influenced by having a city connection to the capital.
Having a >100% Controlled city nearby, city distance from the capital (depending on map size), etc.

But you can also do it actively by placing a counter-spy in the city, garrisoning a unit in the city, training units in the city, and having an internal trade route to the city.

This could be an interesting city expansion mechanic, I'm not sure a modmod has done a similar thing to this.

So far, I can imagine that both Tall and Wide will suffer from this.
Tall can't build a military so easily, as it can tank their Control to more than 100% if they keep building a military.
But they can maintain their Control value quite easily across cities.

Wide won't be as easy as it is now. They can't just settle wherever they like.
But they still can do it if they want the hassle of sending garrison units, having an internal trade route, sending a counter-spy, etc.

What I mean by Garrison units is kinda like how you put the military to pressure CS, but instead, you place them near your own city to keep the Control value intact.

But I don't want this tedious micro work, so it needs to be not a complicated thing to do.
 
I would be more than happy to donate to the development of VP, i've been really enjoying the mod so far, supporting the devs is a no-brainer
The Community Patch project doesn't accept any kind of donations, and the author of the mod is also against it. You can donate to someone else who needs it more, thank you.

At the risk of uttering blasphemy, perhaps it could be interesting to look at gaia's core and sapiens mod to seek useful new features to add to VP?
I've heard the sapiens diplomacy and the congress meetings in-game have been punched up a little
FYI, Gaia's core and Sapiens is actually based on a fork of an old version of VP (along with modmods that are designed for VP). The codebase should be similar excluding Gaia's own addition. So the development team is very well aware of the existence of that mod and also other mods that are forked from this project. Sapiens and VP have their own game design and balance choices. Sometimes this project took inspiration from other mods, but that doesn't mean we should implement them directly as is. It must go through balance discussions and changes voting through Vox Populi Congress.
 
Control looks great, it'd also play nice with the espionage rework. The counterespionage line of buildings always felt a bit useless, they could act like control-boosters and be pretty essential in border cities. Of course adding a new core mechanic would be a huge undertaking, but since we're talking about long-term here, this would probably be the best addition we can make to VP.
JFD made that Mercenaries mod, I think? Where you can recruit units, but not from barbarians, though. We should take inspiration from it. The mechanic is also based on a feature that CP added.


I made a rough suggestion a long time ago on the Discord server. It's called the Control system.
Spoiler Rough idea :

Code:
I'm thinking about a gamified Loyalty mechanic that could turn into something that makes expanding more interesting.

Instead of similar to Loyalty pressure that could turn your city into a free city or other civ's city, make it a gradual step.

I would probably call it Control instead of Loyalty, it means how much the empire controls that city.

Control goes from 0% - 150%.

The raw percent is acting like a yield percentage.
So 100% Control means that you get a 100% yield outcome from that city, and with 50% Control you only get half as much yield from that city.

At 76% - 100% Control, you get a normal city.
At 51% - 75% Control, you can't purchase units or invest in buildings.
At 26% - 50% Control, you can't train units from that city, and the city's production rate becomes slower.
At 1% - 25% Control, that city turns into a puppet.
At 0% Control, that city will rebel or flip as a free city or another civ's city.

Passively, it's capped at 100%, but you can go higher by doing it actively.

Above 100% Control, unhappiness from the population is rising, as the citizens start to feel the empire is controlling them.
Population * (additional percentage * 2) = extra unhappiness.
150% Control, you get 100% unhappiness from the population.

But, for any additional Control percentage, you also get production modifiers for training units or constructing buildings.

A Control percentage can be passively influenced by having a city connection to the capital.
Having a >100% Controlled city nearby, city distance from the capital (depending on map size), etc.

But you can also do it actively by placing a counter-spy in the city, garrisoning a unit in the city, training units in the city, and having an internal trade route to the city.

This could be an interesting city expansion mechanic, I'm not sure a modmod has done a similar thing to this.

So far, I can imagine that both Tall and Wide will suffer from this.
Tall can't build a military so easily, as it can tank their Control to more than 100% if they keep building a military.
But they can maintain their Control value quite easily across cities.

Wide won't be as easy as it is now. They can't just settle wherever they like.
But they still can do it if they want the hassle of sending garrison units, having an internal trade route, sending a counter-spy, etc.

What I mean by Garrison units is kinda like how you put the military to pressure CS, but instead, you place them near your own city to keep the Control value intact.

But I don't want this tedious micro work, so it needs to be not a complicated thing to do.

This could be little controversial but judging from the earlier community enthusiasm for providing data to train AI models, and multiple "improve selection AI" goals in Recursive's goalmap, I think we should discuss adding a telemetry function to VP.
The community is great when it comes to providing feedback and insights on balance, but sometimes you just need lots of hard data -especially when it comes to testing AI behavior, and collecting logs is a hassle. An optional, open-source telemetry function that would automatically upload selected logs would help a lot. I was going over my earlier projects, one of which was an attempt to improve AI unit production, it was promising and I'm still behind the concept, but ultimately decided against integrating it simply because I lacked the data to justify it. If we had an experimental branch with telemetry, it'd be much easier to collect the data, and more energy-efficient than running dozens of AI games too.
 
This could be little controversial but judging from the earlier community enthusiasm for providing data to train AI models, and multiple "improve selection AI" goals in Recursive's goalmap, I think we should discuss adding a telemetry function to VP.
The community is great when it comes to providing feedback and insights on balance, but sometimes you just need lots of hard data -especially when it comes to testing AI behavior, and collecting logs is a hassle. An optional, open-source telemetry function that would automatically upload selected logs would help a lot. I was going over my earlier projects, one of which was an attempt to improve AI unit production, it was promising and I'm still behind the concept, but ultimately decided against integrating it simply because I lacked the data to justify it. If we had an experimental branch with telemetry, it'd be much easier to collect the data, and more energy-efficient than running dozens of AI games too.
I'll add it to the list.
 
Adding a telemetry toggle as a modmod (so you have to enable it to opt-in) is probably a good idea. I agree. So each game that people play can be a good hard data to gather so we can have a gigantic collection of raw data to analyze, instead of relying on Vern's effort for doing automated games on his PCs.
 
Do a sweep on building/unit text keys, adding plural forms for all, to be referred to by their own strategy text and policy/belief/etc. text.

Doing it this way is not desirable.
1714440646317.png
 
Do a sweep on building/unit text keys, adding plural forms for all, to be referred to by their own strategy text and policy/belief/etc. text.

Doing it this way is not desirable.
View attachment 689908
Can the engine do it if we use a text key reference?
 
Is there any way to implement an interface to turn off and on integrated mod mods for vox populi which doesnt require you to change values in the mod files?
 
Can the engine do it if we use a text key reference?
We can define things like this:

XML:
<Row Tag="TXT_KEY_BUILDING_GALLERY">
    <Text>Gallery|Galleries</Text>
    <Plurality>1|2</Plurality>
</Row>

How they can be used needs to be further researched though.

Edit: The CvLocalization API makes doing it in C++ (and by extension Lua, if not already programmed so) easy, but how the game parses static text keys (from the database) with hardcoded {} tags is still a mystery.

From the modiki,
XML:
<Text>+2 [ICON_PRODUCTION] Production to {1_Building * 2_Num}</Text>
should fetch the correct text form when inserted from Lua/C++, but you can't do it with
XML:
<Text>+2 [ICON_PRODUCTION] Production to {TXT_KEY_BUILDING_GALLERY * 2}.</Text>
according to this post.
 
Last edited:
Categorized Ideas (Updated)

For sorting soon (TM).

AI Improvements
Spoiler :
- Superuser AI that uses machine learning (will require a custom API)
- Try to do AI API with machine learning (CppMaster)
- Way more feasible to train an AI for building, policy, tech selection than a complete AI
- DoContactMinorCivs() rework
- DoContactMajorCivs() rework
- Deal AI Rework
- Custom Leader Diplomacy
- Improve AI for
- Tech selection
- Policy selection
- Belief selection
- City production selection
- Promotion selection
- Victory pursuit selection
- World Congress
- Boldness Flavor Balancing (skewed high)
- Non-Diplomacy Flavor Balancing, and fix the system so it works well
- Minor Casus Belli system
- Train Shoshone AI to pick Ancient Ruins

Compatibility with Modmods
Spoiler :
- Tidy up the modmods repository
- RE: Modmods Repository - "we need some kind of organization (sub forums for civs, QOL, overhaul-level changes, etc.) and then also moderation to archive things that aren't being maintained" (hokath)
- Suggestion that we just have the following subs: released mods, WIP mods, and archive/retired
- From there have the colored labels on each to denote civs, QoL, game rules etc. Like how the Congress threads get color labels
- Also if possible, a label that will tell the last compatible version of VP
- Add SQL Triggers
- Improved communication between modmodders and developers, including required communication for database and Lua changes
- Decide how to deal with deprecated Lua functions such as Player.FindPathLength (see GitHub #10803)

Discord Server
Spoiler :
- More streaming on the Discord server

Documentation
Spoiler :
- Create a GitHub Wiki or Mediawiki to replace the FANDOM wiki
- Change documentation (recent & total)
- Document Lua API
Add extra validity checks for Lua API, remove from general usage
- Document database
- Make events system easier to understand
- Use commintlint for better changelog documentation
- More support for new contributors to the mod
- Diplomacy AI guides
- Deal AI Documentation
- Document improvements to other AI
- New Policies re: GitHub (making bug reports, handling pull requests, handling issues etc.) after reviewing the existing situation
- Expand the Civilopedia
- Ingame documentation of added abilities

Memory, Logging & Bugfixing
Spoiler :
- Separate logging between games
- Continue removing null checks for impossible scenarios (and similar garbage cleaning)
- Record a game state (Interface option) in JSON - would require significant changes to logging
- Regularly run games for stats (expansion/formalization of L. Vern's work)
- Clear GitHub Issues Backlog
- Memory value consolidation
- Memory objects (some aren't necessary; City-States and Barbarians don't need a DealAI or DiplomacyAI; major civs don't need a MinorCivAI)
- Cache overhaul (CvTacticalAI, TradePathCache, DangerPlots) - separate UI from DLL core caches (might not be possible?)
- Overall memory consumption investigation and reduction
- Database anti-NULL (cleans up the database on the DLL side so there aren't empty entries, which can cause crashes)
- Bug Report Button ingame
- Master table for AI difficulty bonuses (Stalker0)
- Automated telemetry branch for AI training

Multiplayer
Spoiler :
- Assist with multiplayer stability (Vaderkos)
- Make VP multiplayer compatible
- Automatic modpack creation
- Game State Hash (makes debugging multiplayer easier)
- "Restart game with new map" button for multiplayer (unsure if possible)

Organization & Consolidation
Spoiler :
- Remove all unnecessary #ifdefs in the code (azum4roll)
- Rewrite some of the Lua files, both EUI and non-EUI (azum4roll)
- If desired, integrate the EUI utility functions into non-EUI so that non-EUI can also use them (azum4roll)
- Decide whether 43 Civ and non-EUI versions should continue to be developed
- Upgrade the tools used to compile the code (not sure if possible)
- Make the code less fragmented and repetitious
- Use the unciv repo as inspiration for code organization
- Have more than one person responsible for making releases - axatin has offered
- Discussion on how to organize the subforum
- CustomModOptions Sweep
- (1) Community Patch Sweep
- Attempt to combine 43 civ and standard versions into one
- General DLL cleanup, including:
- Better handling of teams vs. players
- Memory value consolidation
- Traits cleanup
- Lua methods cleanup
- Automatic mod/DLL building
- Use Clang to build the DLL instead of Visual Studio
- Instrumentality Project

VP Congress
Spoiler :
- Better categorization of VP Congress proposals and/or a proposal limit
- Fulfill the Permanent Pantheon proposal, which was passed prior to the creation of the VP Congress but never implemented

Other
Spoiler :
- Upgrade EUI to latest version (rename it if doing so)
- Make EUI entirely DLC
- Display civilization icons on the bottom of the screen rather than the top right corner (EUI)
- Integrate 4UC

Balance Reworks (not part of the roadmap, just here for personal reference)
Spoiler :
- Rework the event system as a community
- Rebalance the World Congress system as a community
- Decide on a standard process for stacking modifiers
- Rebalance difficulty bonuses as a community
 
Last edited:
We can define things like this:

XML:
<Row Tag="TXT_KEY_BUILDING_GALLERY">
    <Text>Gallery|Galleries</Text>
    <Plurality>1|2</Plurality>
</Row>

How they can be used needs to be further researched though.

Edit: The CvLocalization API makes doing it in C++ (and by extension Lua, if not already programmed so) easy, but how the game parses static text keys (from the database) with hardcoded {} tags is still a mystery.

From the modiki,
XML:
<Text>+2 [ICON_PRODUCTION] Production to {1_Building * 2_Num}</Text>
should fetch the correct text form when inserted from Lua/C++, but you can't do it with
XML:
<Text>+2 [ICON_PRODUCTION] Production to {TXT_KEY_BUILDING_GALLERY * 2}.</Text>
according to this post.
I found something that might work.

TXT_KEY_GRAMMAR_A_AN is a vanilla text key that's made for substitution.
XML:
<Text>{1: gender *:an?an {1}; *:the?the {1}; *:no_article?{1}; other?a {1};}</Text>
Example usage:
XML:
<Text>{@2_CivName} longs for {TXT_KEY_GRAMMAR_A_AN &lt;&lt; {1_UnitName}}</Text>
The game is able to parse {TXT_KEY_* << {1}} as code, and in this case grab the gender of the unit text key that's passed in.
We can make a similar substitution text key for plurality.

XML:
<Row Tag="TXT_KEY_PLURALITY">
    <Text>{{1} * {2}}</Text>
</Row>

Code:
{TXT_KEY_BUILDING_GALLERY * 2}
wouldn't work, but
Code:
{TXT_KEY_PLURALITY << {TXT_KEY_BUILDING_GALLERY} << 2}
should!
 
You guys are ridiculously talented. You are constantly adding new feautures and refining over and over again while being constrained by civ 5 engine.

Have you all ever thought of creating your own game with current tech and without the restrictions of civ 5?
 
Code:
[1666452.296] ERR: Injected numbers are not supported in this release. {TXT_KEY_PLURALITY << {TXT_KEY_SPECIALIST_CITIZEN} << 2}
Welp, Firaxis sucks, there goes the idea.
 
- Decide whether 43 Civ and non-EUI versions should continue to be developed
I'm aware I'm in the minority here but I almost exclusively play VP 43 civ non-eui -- would not be happy to see these disappear
Attempt to combine 43 civ and standard versions into one
Idk what's involved here, but I've used 43-civ version to play 22 civ and less games in the past... Maybe there are some subtleties I didn't notice but it seemed to play normally
 
We can have EUI as the only option with most features toggleable (like those lists on both sides of the screen). Same with Improved City View (guaranteed to be broken in 5.0) so we don't have to maintain multiple versions of CityView.lua...

Ideally we should only have ONE set of UI for both CP and VP with lots of optional features.
 
Top Bottom