Changing Cannons from Units to Professions [IMPLEMENTED]

Should Cannons be changed from Units to Professions?


  • Total voters
    45

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,638
Location
Stuttgart, Germany
Hi guys,

one of the most discussed topics and in the old RaR team most desired overhauls was:
"Changing Cannons from Units to Professions"

Basically every current Cannon-Type Unit will "simply" be transformed into a equivalent Profession.
(All of them will use the same Specialist "Experienced Cannoneer".)

So the only real difference is that you will no longer simply build Cannons like e.g. Ships but instead equip Cannons like e.g. Soliders.
(In my immersion cannons are just weapons operated by living humans.)

Reasons / Pros:

1. Cannons being Units while all other standard military is Professions is inconsistent.
(Yes, there are a few other Military Units that are not Professions but those can only be acquired by relatively rare Events.)

2. Considering graphics and XML setting options we would already have most of the things we need.
(We have a Yield "Cannons", the XML would already allow most changes to be configured easily, graphics could be reused.)

3. Most old team members of RaR simply prefered the concept of Professions (over Units) because it is more flexible and a bit more realistic.
(So yes, it is also a matter of personal taste.)

4. Mass production of cannons in late game simply feels like an exploit to me.
(Yes of course, they still require specific Yields, but you can also simply "hurry" the production if you enough Gold.)

Potential Problems / Cons:

1. Units are much easier to handle for AI than Professions so this could cause weaker AI if not well implemented.
(At least in RaR that was our main reason for being careful about that and not having it already implemented.)

2. "Bomarding" mechanic / capability is tied to Units only and currently not activatable in XML for Professions.
(So some efforts would be needed to allow it to be configured in XML of Professions as well - but it is also doable.)

3. It is a bit of effort for the general changes to implement the base functionality.
(Most of that part is XML and programming efforts - except AI - are overseeable.)

4. It changes existing gameplay for Players and thus would need a bit of relearning.
(But its is not like we would introduce a completely new game concept or anything like that.)

-----------

Summary:

I personally still love the idea for this overhaul and think it is doable with reasonable efforts.
But we need to make sure that AI can handle it appropriately.

If team and community like that idea as well, I volunteer to do take most of the efforts for implementation.
But I will probably need help with AI and also with beta testing longer games.

By the way:

If we agree to this, then it should be done before a potential "Rebuild of the Military System".
It would have at least some impacts on that.
 
Last edited:
While it makes sense, my only concern would also be how the AI handles them. Currently since they can make them they are almost able to put together a Threatening SOD. If they can't make them I would expect to see fewer, and the AI is already too weak.
 
While it makes sense, my only concern would also be how the AI handles them. Currently since they can make them they are almost able to put together a Threatening SOD. If they can't make them I would expect to see fewer, and the AI is already too weak.
That is generally true. :thumbsup:

AI currently can build Cannons better than it can equip military Professsions, does that quite often and knows quite well how to use them.
Actually in Vanilla (and TAC and RaR) it had more Cannons than anything else - they were (and might still be) its main Combat Force.

There are however a few problems and other considerations:
(Just to list a few considering AI vs. Human specifically)

1) In late game Human players have much more money than AI

They can thus build / hurry Cannons quite easily - additionally to equiping other military professions - and steam-roll Natives and other European AIs.
It also allows Human Players to easily replace lost troops in WOI by mass production of Cannons.

Basically it gives Human Player more advantages than AI currently if he decides to use this "exploit" that way.
(I personally don't do it because it destroys my immersion and thus my fun.)

2) When AI is building too many Cannons it is not building Production Buildings that its Economy would benefit from long term

So basically AI trades "short term" advantages for Military against "long term" advantages for Economy.
This will however cost it a lot of money on the long term and thus its military will also suffer long term.

3) If we rebuild our Military System as recently discussed Cannons would become very specialized for Bombardment (with Plot damage)

With the current specialization / focus of AI it would simply get wasted by Human player tactics and better mix of military.
AI would need to build a balanced army as well which is probably implemented most easily if it acquires the different military types in a consitent way.

------------------

Summary:

This concept (as well as our ideas for "Rebuilding Military Systems") will live or die depending on AI.

Without AI being able to handle these concepts, we would surely ruin the balance and maybe also stability of WTP.
But if we succeed teaching these concepts to AI it might even become better and community might love the result.

If you never take any risks you will of course never fail.
But without taking some risks you can never achieve really great success.

We can simply not know before even having tried. :)

If we figure out that it does not work, we will have wasted our efforts and would need to revert to an older version.
Basically that is the worst thing that could really happen if we give it a try.
 
Last edited:
2. "Bomarding" mechanic / capability is tied to Units only and currently not activatable in XML for Professions.
(So some efforts would be needed to allow it to be configured in XML of Professions as well - but it is also doable.)
We could add it to the unit cache system I added for 2.8. That way we can control bombardment from units, professions and promotions. Due to how the cache system is designed, this can be done without loss of performance.

So the only real difference is that you will no longer simply build Cannons like e.g. Ships but instead equip Cannons like e.g. Soliders.
We talked about making ships a profession at some point, but we ended up not really liking the idea. You would buy yields to get a bunch of starting type ships and then with the use of no production power whatsoever all the units could change profession away from ships and then one of them could use the combined resources for a single high end ship. There were other issues as well and it ended up just not feeling right.

I will say the same for cannons. How do we make sure the cannons aren't constantly converted between bombardment cannons and anti-unit cannons?
 
We talked about making ships a profession at some point, but we ended up not really liking the idea.
I really don't like that idea "Ships being Professions" either. :thumbsup:

How do we make sure the cannons aren't constantly converted between bombardment cannons and anti-unit cannons?
I never considered "anti-unit cannons" in my old concept for "Rebuild of Military System". :think:

For different Cannon Professions I basically just wanted to have:
  • different "bombard plot damage"
  • different "bombard range"
  • different amounts of necessary equipment
  • different damage bonusses (for bombardment) against specific Units
  • different Promotions
But yes, it could try to change the Profession all the time in a city converting "Small Cannons" to "Large Cannons" if implemented incorrectly.
But that currently does not happen for other Military Professions either. Why should it happen here specifically?

But it might be something worth considering. :dunno:
 
Last edited:
But that currently does not happen for other Military Professions either
It would have to be investigated in the code, but presumably that is due to getBestCityDefender() or a similar functionality.
Say you have four cannons "in" you city, two heavy and two light ones. The heavy ones might easily be idtentified as best ctiy defender, and the now unit/profession combination of the light cannon can easily be split, with the unit starting to work in the city while the cannons are put in the warehouse. 10 turns later another city defender will be needed and not the former two light cannons are recreated, but one heavy. (And most probably the gunner unit might not be taken in consideration for forming that one - under current rules, that is).
Getting worse with the presence of infantry. I am pretty sure I recall some functionality ranking units with (many) promotions higher than unpromoted ones. Then none of the cannons would be considered as defender (if line infantery would be present, for instance).
If you make the cannons stronger, they will stay as defenders in the city and not sent out on attack.
If you simply forbid to change the unit/profession combination of cannons, you hamper the AI as there are quite some situations when splitting them up might make sense.

So, in this area you really have to watch and work with many different settings which are constantly interacting with each other. Not an easy task.

Edit:
Not sure, but the function could be getBestDefender(), once in CvCity and once in CvPlot. I seem to recall having had quite some questions reading them back when I was reworking the combat system.
Edit2:
And I seem to recall that in case of pPlot being the city plot, for some reason both functions were called.
But again, all from the top of my head and would have to be confirmed by investigating the code.
 
Last edited:
Not an easy task.
No, AI programming is never easy.

Currently there are however 2 topics getting mixed:

1) Changing Cannons to Professions
-> This is the easier one.
-> We will not really change the function of the Cannons but just have an equivalent Profession to the Unit.
-> There are no changes in the UnitAIs planned for this. There are no changes in balancing strength or anything like that planned for this.
-> Considering AI (PlayerAI and CityAI) we however need to teach it to get / equip enough Cannons since it could not build / hurry them anymore.

2) Rebuilding the Military System
-> This is a real monster! Especially considering AI.
-> It might introduce new mechanics like "ranged bombardment", "bombardment plot damage" and others.
-> It would heavily impact balancing and gameplay.
-> Currently I just try to consider possible impacts of "Changing Cannons to Professions" to it.

At the moment I would prefer to clarify "Changing Cannons to Professions" first.
(Side effects to other potential concpts need to be considered of course.)

About the constant Profession swapping for Cannons:
I currently cannot see any reason for this to happen because it does not happen and to my knowledge never has happened for other military professions either.
I never saw Soldiers swapping to Town Guard or Soldier swapping to Dragoon by AI accidently ever.
But I currently cannot claim myself that it is completely impossible either. :dunno:

As I said, if we really want this, we can simply give it a try to implement, test and continuously improve all issues we find.
I cannot forsee all potential issues right now because we have not even started coding and testing.

Thus the main questions is:
Do we (community and WTP team) like the concept enough and are we (WTP team) confident enough in our skills to invest the efforts to give it a try?
But this is the same question that needs to be answered for all features / overhauls / improvements.
 
Last edited:
I never saw Soldiers swapping to Town Guard or Soldier swapping to Dragoon by AI accidently ever.
Me neither, but that is not what I wanted to explain.
My example was about four cannon professions arriving at the city, and the AI then determining that only two defenders would be needed. In that case the weaker ones (presumably the light cannons) could be changed into working unit and warehouse items.
The stronger ones would stay cannons, as they would be identified as best defenders. That is until other, potentially better defenders would arrive in which case the whole process of reassigning might start again.

But again, all of that needs careful investigation with the code at hand which currently I don't have.
 
Do we (community and WTP team) like the concept enough and are we (WTP team) confident enough in our skills to invest the efforts to give it a try?
I would strongly advise to change cannons to professions only after your new combat system has been established and proven to work flawlessly.
And in this case the reassigning of units becomes part of the combat system, as there are certainly cases where reassigning as such makes much sense but on the other hand it would have to be ensured that the units which then would be working in the city are reassigned to their old military profession if needed later.
And in the case of letting them work you have to ensure that their equipment won't be used by build orders or transports.
 
I would strongly advise to change cannons to professions only after your new combat system has been established and proven to work flawlessly.

The dependencies / impacts on implementation are actually stronger the other way around.
It is really no problem - actually a bit better considering efforts - to implement "Changin Cannons to Professions" first. :thumbsup:

Also, I am not even sure if "Rebuild of Military System" will ever be implemented at all because of the massive efforts and high risks. :dunno:
 
Also, I am not even sure if "Rebuild of Military System" will ever be implemented at all because of the massive efforts and high risks
I know what you are talking about. It took me like six months to rewrite the combat system back then, and I only touched the combat odds, the combat as such (both naval combat with enhanced functionality and land combat) and the infobox. Kept me pretty busy though.
 
Like the concept of the change and if it can be implemented to make the AI better, I would thoroughly support it.
But if it's just one more thing the AI can't handle, then no. So yeah, let's test it and see. ;)
This sounds like it's easier to do, and if it's just one thing, it will be easier to see how it impacts the AI.
 
Especially if some count toward total pop for calculating revolution sentiment and others don't.
 
Personally I don't see a huge issue with objects like cannons being constructed units.
There is no huge issue with the way cannons currently work.

I personally consider it to be a bit unimmersive because I imagine them to be "Humans using weapons" - since their graphics look like that.
I personally also consider it a litte exploit in WOI because they are really the only military forces where you can do that.

So yes, this comes down to a question of "personal taste" like most features / overhauls / changes do.

Maybe however the rest of the team and community see it the same. :dunno:
If not, then let us forget about it. :thumbsup:

I think it's a much worse issue that some human units aren't professions meaning you can have two nearly identical looking units, but only one of them can join a colony.
Those Units are rare Units with very special backround acquirable only by rare (DLL-Diplo-)Events and Founding Fathers - they can not be built or equipped.
For me it is relatively easily explainable that something like Hessian Mercenaries, Revolutionary Guards or Conquistadores do not "want" to change their Professions and could not be equipped from normal Colonists.

They are more or less a "Special Reward" that I always feel happy about when I can get it.
Also it does not make any sense for me at all to let them work in other Professions or just equip them as Profession in masses by normal Colonists.

---------
Summary:

"Changing Cannons to Professions" is mainly a matter of taste and yes it is effort - especially for AI.
There is a chance of even improving AI (or at least not making it worse) and there is also a risk of worsening AI.

Rare Special Units (Hessian Mercenaries, Revolutionary Guards, ...) not being Professions but being Units is no issue for me though.
I would really not like to change that. I also do not want to change Ships to Professions.

But again:
This is all a question of personal taste.
Let us keep this discussion going and see what comes out of it. :thumbsup:
 
Last edited:
I wholeheartedly approve of making them professions instead. If you have the cannons built and people to use them, you shouldnt need a carpenter to pull off your city construction for it.
 
I prefer the cannons as a profession overall, because it is more consistent with the overall 'land combat system' all land combat units are produced with people. As opposed to all boats working as constructed units. Ships are more a floating building and make sense to be constructed, along with the fact that you can buy a finished ship in the large European shipyards.

The few exceptions being the event units, but they sound like they do not fit the standard population model, being contracted mercenaries rather than your citizens. They are hired to perform a military contract, not settle down as farmers.They are never really part of your nation, just on the payroll.

AI Issues:

The question of 'can the AI use them' is a valid argument against it, but that also sounds like it is the wider issue of can the AI use anything!? With cannons being a combat band-aid, to the wider issue of AI actually creating effective military forces.

If the AI just can't use military professions well at all, then we either need to fix that AI issue. (Identifying what it is also, yield usage, pop. growth, etc.). Failing to achieve that goal just 'Hack' the game to give the AI what it needs because it is broken anyway. Like a Growing REF metric, or give it units over time, or at Pop size milestones, etc. So that as the game progresses you are presented with something, Then maybe make the AI good at hitting those milestones. (like growing it's pop. or whatever).as an intermediate fix.

Unit Switcheroo:

The point about being able to quickly flip between types is another good point. Some possible solutions are:

1: Add some yield spice to the recipe:

Adding a small amount of a different yield to the two designs, so that they cannot simply drop what they have and pick it back up and have a magically different cannon bore, etc. not a perfect solution, but would avoid making a magical transformation in an empty rural village. They would still be able to change in a larger hub city, but that fits a little better as it has industrial capacity and tools such.and am I right in thinking changing professions uses up the units turn? So you could in a month or whatever the turn increments are, retool those cannons in a large city.

2. Generic Cannon Profession + Specialised Promotions:

I can't remember what the specific stats are on the two cannon types or their strategic roles, but make a single cannon profession that is a small amount of both with promotions that boost them into the specialised roles. this way the same unit cannot change cannon roles, you could have two kind of cannon specialists, that come pre-focused, with a specific strategic role. It could also use a system similar to what M:C has of training units when fortified in cities to gain XP up to a certain level, so they can be specialised before combat.

Obviously leaving the whole thing alone is less work, but I feel like solving the negatives would put game structure in a better state overall as conceivably you could add any unit and the AI/Game would be able to make better use of them.
 
I have implemented the change from unit to profession completely for my personal taste long time ago (with complete xml-programming, specialists and all other stuff and it worked ingame). Because I could not handle the issue with the Bombarding feature it never made it into RaR 2.7
 
Because I could not handle the issue with the Bombarding feature it never made it into RaR 2.7
I suspect we would have to add support for bombardment in the profession code in the dll. However it's most likely something like adding an xml tag for it and then somewhere in the code add that it should check both unit and profession xml data rather than just unit data.
 
Top Bottom