(proposal) Create a hybrid Spying system

civ5-vp-goth-weirdspyaction.png

The spy system does pick some weird choices. So I'm Goth/Black (it's a bit unfortunate that I seem to share the color with city-states but them be the breaks, just assume that the big black blob is me and little single black blobs are city-states), this is my capital. There is no enemy even close to me. They picked the "siege" spy action to run against me. This isn't even a tier one action for low level spies. This is up there. But as an action, that then takes a fair chunk of turns it's kind of pointless. The only reason I can think off doing this is if all other actions are already taken/running. Which may very well be the case as I'm leading on everything except tech at the moment (silly Koreans and their tech machine engine). But still I guess the questions I wonder is WHY!? Almost any action would have been a better action then that. My capital have never been in danger or under siege, the last hostile unit that even got close to it was some barbarians thousands of years ago.
 
So, after a number of discussion on the matter (here and on discord), pointing out the flaws of my approach (most notably the problems linked with the usage of GSpies), but also expanding on aspects that would make the whole more coherent, a number of ideas have emerged that I would like to expose here, and then integrate them in the initial concept I explained at the beginning.

Instead of Great Spy points, Intelligence :


The problems with Great Spy points is threefold :
- The lack of granularity (you have one GSpy with one or more charges, and one advanced action per charge) means that it is difficult to balance the power of each advanced action.
- The increased cost for each new Great Spy means having to introduce ways to make the number of GSpy points scale with time, which is difficult since the granularity of minor spy is also too low (contrary to military units, who naturally increase in volume throughout the game).
- The Invisibility system is too difficult to use for the Great Spy Unit (and we don't have a lot of ways to tweak it), since invisibility is removed when next to an hostile units : it would mean that any civilization you're at war with would have a great chance to intercept any GSpy sent against it.

Thus, the solution found by pineappledan and Stalker0, most notably, was to reuse the Intelligence system from Tomatekh's Great Spy mod, but with the usage of a second category of spies (let's call them Enforcers) exclusively meant to use these Intelligence points for punctual but powerful advanced actions in targeted cities.

This allows several things :
- With Intelligence points, we can put different costs for each type of advanced actions, and it would be much easier to balance the cost when needed
- The usage of Enforcers allows us to bypass the invisibility system and keep the whole spy system within the current window (so more clarity and reliability)

How I would integrate this into the initial idea I proposed ?

I would keep the security system I proposed (one that evolves depending on a variety of factors, instead of simply population and defensive spies) with the idea of making the effectiveness of potential advanced actions scale with the security level (as explained in my first post). I would also remove any randomness in the system : no spy would die during an operation, except in very specific scenarios (for example when an Enforcer is used to wipe out all Spies in a City), and all operations would succeed, with the caveat that their effect would be very weak in cities with high security. It would make the benefits of the spy system far more reliable and predictable for someone who wants to invest in it.

So, how would the Enforcer work, really ?
Spoiler Enforcer Icon concept :

Enforcer icon concept.png


Like the Spy, the Enforcer would be unlocked starting the Classical Era, with only one available (contrary to the Spies, whose number depends on the number of City-States at the start of the game). It would be present in the Spy screen, and wouldn't do tasks every turn : it would only be employed when you need to use advanced actions.

When needed, here is the procedure I imagine :
- You see you have the number of Intelligence points required for an Advanced Action you want.
- You select your Enforcer in the spy window, and city where you send it.
- It would take one turn to go to the city, informing you of its arrival with a notification each turn it is there.
- When you want to use it, click on the notification, which would open the advanced action list : each AAction would have a specific cost in Intelligence, and an effect which would scale based on the Security level of the City.
- When you select the Advanced Action, it happens immediatly (whatever its effect), and the Enforcer is sent back to the hideout, where it would stay for 5 turns (scaling with GameSpeed).
- The Security Level of the targeted City would go back to its maximum (to avoid a situation where every civ sends an Enforcer to a single city and spam crippling AActions without giving time to react).

For a list of potential Advanced Actions, see my post here. We can quite easily assign an Intelligence yield instead of Great Spy points for normal operations, and Intelligence costs for each Advanced Actions, allowing us to transpose one system into another.

Thanks for reading. :) I really hope that we can find a way together to make the Spy system more interesting and rewarding, deep and balanced yet not too micro-intensive, and not based on randomness if possible. In short, as would Gary Oldman say, a system rated E for :
Spoiler Video :
 
Last edited:
I will ping @Gazebo as I know some of our options are due to coding limitations with the system.

Ultimately this is a good write up of where we were pushing the concept on discord. My thoughts:

1) The first question is around the enforcer itself. It would be simpler not to add extra types of spies, can we do the concept with just the spies we have? One thought would be that the first action available to a spy is simply gather intelligence. It hangs out in a foreign city, accumulating intel and providing city vision. Then other missions expend intelligence.

The main difference in this system vs the enforcer model, is the potential frequency of advanced missions. If I have 3 spies and I accumulate a ton of intelligence, I could target 3 cities at once....or potentially hit a city over and over again. Whether that is really a problem would depend on the actions, the intelligence cost, and the impact of security. I don't really see hitting 3 cities at once a problem if you waited long enough to build up the intelligence, that seems like good tactics. Hitting the same city multiple times in a row could be a problem, but in theory a high security score that is doing its job may reduce the impact so much that the user would see that tactic as a "waste of intelligence", in which case I think we are fine.

2) We would need the intelligence number posted in the upper bar as a yield. While we "could" just have it in the spy area....that's not a great UI practice. If this is now a yield, it should be displayed as such. Though I think for the beta of it while we see if its working well I am fine with it being in the spy only area.

3) Though I would prefer sending the spy and doing the mission at the same time (as opposed to send spy, wait for it to arrive, then having to put in a mission), that becomes clunky when you realize that other spies can do missions in the city and change security levels in the time between sending a spy and it starting a mission. This actually turned into quite a lengthy discussion on discord. So I think in the interest of simplicity we keep it like it is now (and what Hinin just proposed), send spy, wait for spy to settle, then activate mission (at which point I will see the exact security level, cost, and affect for my mission).
 
“Agent” is a better name than Enforcer. Tomatekh's Great Spy mod is really good. I’m willing to try anything that involves it.
 
Though I would prefer sending the spy and doing the mission at the same time (as opposed to send spy, wait for it to arrive, then having to put in a mission), that becomes clunky when you realize that other spies can do missions in the city and change security levels in the time between sending a spy and it starting a mission.
Which is why I suggested that a spy already in the city can do it immediately, as he doesn't have to travel. This encourages placing spies in the cities you want to enact the advanced actions in.
 
Last edited:
Which is why I suggested that a spy already in the city can do it immediately (as he doesn't have to travel). This encourages placing spies in the cities you want to enact the advanced actions in.

Pretty sure that would require new code. As much as I would like it, I'm ok if we keep it simple and just force the swap to activate.
 
Pretty sure that would require new code. As much as I would like it, I'm ok if we keep it simple and just force the swap to activate.
This entire proposed hybrid system will require new code.

This is entirely separate from the other proposed solution of unending yield syphons that can be done without changing code.
 
I didn't have a chance to read this whole thread, apologies, however I do find the current spy system to be broken, with small improvements over the old system, but some pretty big drawbacks as well. It's also full of strange bugs. The text reports you receive are almost always incorrect for example.

Rather than making massive changes, I would suggest the following, for now at least until something else can be done.

-Make defensive spy's more effective
They hardly every catch anything. I feel putting them on defense to be a total waste of time other than the "secondary effect" defensive spy mission do. They seem to do little to actually stop enemy spies.

-Make spy's level slower
Currently they go from 1 to 3 way too fast. Perhaps it's due to me playing a slower games speeds? If so, perhaps have their chance to level up based on game speed?

-Make spies replace slower
If a spy is caught, which is hardly ever is, they are replaced too fast. It makes the small chance of being caught not important.

I would honestly be happy with the old system being returned, it had flaws, but it did it's job for the most part.
 
This entire proposed hybrid system will require new code.

Sure, but there's new code....and then there's NEW CODE. Calculating a new yield I would suspect is easier than changing the fundamentals of how spies settle into cities and activate the mission screen.
 
Sure, but there's new code....and then there's NEW CODE. Calculating a new yield I would suspect is easier than changing the fundamentals of how spies settle into cities and activate the mission screen.
It's not, really. Especially when the former requires Lua UI code, which is the worst part of Civilization modding.
 
I don’t think a total re re work is on the table. I’ve been tinkering with the code and I have some thoughts on improving things, but not in the way of a total rework.

I’m against espionage as a global yield as the top bar/global yield pool is already bloated, and espionage is supposed to be a city by city affair (spies are fairly linear as a resource, there’s no real way to ‘specialize’ in spies). As such, I think fixing any UI quirks and redoing some of the problematic missions is the best possible solution. I’m also open to granularity for spies, having levels tied to experience points instead of single integer jumps at random.

G
 
At this point I have come around to G's point of view.

I don't like the espionage system, but that's because I don't like espionage systems. The solution is not to make it MORE complex and take up MORE of the user's time. It should remain a minor mechanic that is functional and situationally helpful, and not get in the way of other things like infrastructure and unit gameplay. The solution to a fundamentally spreadsheet/menu-bound, uninteresting mechanic is not to make that menu complex, just make it work cleanly and effectively, and not make a nuisance of itself.
 
At this point I have come around to G's point of view.

I don't like the espionage system, but that's because I don't like espionage systems. The solution is not to make it MORE complex and take up MORE of the user's time. It should remain a minor mechanic that is functional and situationally helpful, and not get in the way of other things like infrastructure and unit gameplay. The solution to a fundamentally spreadsheet/menu-bound, uninteresting mechanic is not to make that menu complex, just make it work cleanly and effectively, and not make a nuisance of itself.


Agreed. Espionage is a weird system. Just like real life, espionage that’s effective shouldn’t be overtly noticeable.

G
 
Hmm, the old espionage system has been changed for a reason. What was the main problem with it? Randomness?
 
rollback to the original. Place spies, steal techs, done

I have to agree.

Perhaps with some adjustments we can improve the new system, it has some ways to go though.

In late game the constant spy messages of "unknown spy" even with maxed out defensive spies gets to the point I just stop reading them. The old system was also a great catch up mechanic that allowed under dogs steal to keep up.

Though if we DO bring back the old system, lets please keep the copying of great works, and not stealing. I don't miss that.
 
I think that's an overreaction bro.

Ultimately it accomplishes what you just mentioned, returning spies to a behind the scenes activity. That was its principal advantage, fire and forget.

the new system of missions has at its core an “active measure” by the player, as long as that is there the system isn’t really going to return to “behind the scenes”
 
To me, making such an important aspect of human history a minor rubber-band sideshow just because of micromanagement bloat tells more about the state of unit number and city gestion. It is clear that returning to the old 'fire and forget' system isn't desirable code-wise (the ancient spy code was a mess, all people who worked on it told so), and I would like to see more efforts directed towards lowering supplies, city defense (it is clear that the AI has noticeable difficulties to capture inland cities nowadays) and yield bloat towards the endgame rather than just accepting things as they are and clamping down on other parts with a lot of potential just to keep the whole sustainable.

I must say that I'm a bit disappointed to see the people who talked with me about ways to make the system more refined for weeks just drop the whole thing at the first opportunity (at least, that the impression I got from it). I know that, as someone who would not do the coding part, it is easy for me to talk, but we already made a lot of progress towards trying to make the system less and less distant from the current one, and I was ready to discuss as much as needed if necessary. It's disheartening, tbh.
 
To me, making such an important aspect of human history a minor rubber-band sideshow just because of micromanagement bloat tells more about the state of unit number and city gestion.

... I know that, as someone who would not do the coding part, it is easy for me to talk, but we already made a lot of progress towards trying to make the system less and less distant from the current one, and I was ready to discuss as much as needed if necessary. It's disheartening, tbh.

As to the first sentence, we could argue that about a lot of things. What about logistical management, which some would argue is a more important part of war than the fighting itself. Or commerce and trade, again some would argue is the foundation of peaceful relationships and diplomacy....but it amounts to sending a TR unit around every so often. Or diplomacy, the entire game of intrigue, politics, relationships, backstabbing, subterfuge....all reduced to a deal screen. Civ is a game, and games use models to simplify things and to ensure players aren't bogged down in "tedium". I personally don't think the amount of unit numbers has much to do with the micro management of spies, as there are games where things are very peaceful and I don't make many moves, yet that doesn't mean I want to micro spies around a lot.

To the second, I hear you that when you work on a proposal for a while, but a lot of heart into it, its discouraging when it gets shut down so "strongly". On many a project both here and in real life, I have felt that way. But we have to remember, that at the end of the day, the goal is to create something that sticks.... something the devs can code, something that the userbase wants. Its hard to strike that balance, and so when you do, its all the more satisfying. @Gazebo has repeated said that code limits us with spies more than perhaps it does in a lot of other places, we have to respect that and work within those bounds, get more creative, and find something that works.


So with that in mind, let me start with as simple as I can think of. Basically work within the framework given, and focus on number adjustments to start.
  • Spies can transfer AND settle to a city with as minimum a time as possible (ideally 0-1 turns, however short is possible).
  • Steal yield missions are now "infinite time" (if possible), aka they never expire. Yields are gained each turn (if possible) based on current city security level. Security level for the city increases by X per turn instead of a massive amount all at the end.
  • Other more aggressive missions automatically kill the spy. Spies come back in X turns (if this is adjustable to the mission great, if not, we pick a suitably large number of turns to make these missions powerful, but rare).
  • Counterspies give the bonuses they do now, but perhaps has a 5% chance per turn of killing a spy in the city. Or...if security level cannot be increased by these new steal yield missions, counterspies could be the way to boost security in a city to reduce those effects.
 
Top Bottom