C2C Combat Mod Introduction - Step I (SubCombat Classes)

No... of course not. But perhaps you're implying a way to go about it... You can do that without causing issues elsewhere? Huh... I hadn't considered creating a new schema for Combat Classes and dividing it out from CIV4BasicInfoSchema.xml.

I could not get any additional tags in the UnitCombatInfos without it giving me problems and it was confusing until I read a message in the Infos.h file:
Code:
	//	This really belongs on CvInfoBase but you can't change the size of that
	//	object without crashing the core engine :-(
	inline int	getZobristValue(void) const { return m_zobristValue; }
which seemed to correspond to the problems I'd been having with adding tags to UnitCombat infos. I can imagine its probably easy to find another way to skin the cat and perhaps I was also having a problem with not having as much familiarity with the process of adding tags as I do now. I can't be sure I'm as bound here as I came to believe I was.
 
No... of course not. But perhaps you're implying a way to go about it... You can do that without causing issues elsewhere? Huh... I hadn't considered creating a new schema for Combat Classes and dividing it out from CIV4BasicInfoSchema.xml.

I could not get any additional tags in the UnitCombatInfos without it giving me problems and it was confusing until I read a message in the Infos.h file:
Code:
	//	This really belongs on CvInfoBase but you can't change the size of that
	//	object without crashing the core engine :-(
	inline int	getZobristValue(void) const { return m_zobristValue; }
which seemed to correspond to the problems I'd been having with adding tags to UnitCombat infos. I can imagine its probably easy to find another way to skin the cat and perhaps I was also having a problem with not having as much familiarity with the process of adding tags as I do now. I can't be sure I'm as bound here as I came to believe I was.
So did you get a crash or an XML error when you tried that?
 
yes, when I tried to add a tag to UnitCombatInfos. I'm not saying I couldn't have just been learning it and have done it wrong in a way I didn't see to sort it out from there and didn't leap to the assumption it was a more generic problem. But it did crash when I last attempted to add even one tag to UnitCombatInfos.
 
yes, when I tried to add a tag to UnitCombatInfos. I'm not saying I couldn't have just been learning it and have done it wrong in a way I didn't see to sort it out from there and didn't leap to the assumption it was a more generic problem. But it did crash when I last attempted to add even one tag to UnitCombatInfos.
Ah, there is not even a class for the unit combat info at the moment. It just uses the info base class and you definitely can't add anything in there (nor should you).
But it should be possible to add a new info class for unit combat info.
 
... that must've been the problem I had... didn't find the combat class itself when I went to try... been a while since I tried going about it.

I can see that it should be possible. But then what about all the added ai complexity? Or would you think it would help there? What about the sheer mass of volume of new tags it could end up calling for?

At this point we're comparing making unit combat its own info class and adding tags to it, to the ability to add combat class details via all the already established tags for promotions and making the promotion free to the combat class. Should we really be adding so many new tags to be able to add detailed data to unit combats as well?

Or should we do both so that Combat Classes can have a great number of potential game effects on a unit while some more basic data applied directly to a combat class could help with some ai evaluations on the strengths and weaknesses of a given Combat Class?
 
... that must've been the problem I had... didn't find the combat class itself when I went to try... been a while since I tried going about it.

I can see that it should be possible. But then what about all the added ai complexity? Or would you think it would help there? What about the sheer mass of volume of new tags it could end up calling for?

At this point we're comparing making unit combat its own info class and adding tags to it, to the ability to add combat class details via all the already established tags for promotions and making the promotion free to the combat class. Should we really be adding so many new tags to be able to add detailed data to unit combats as well?

Or should we do both so that Combat Classes can have a great number of potential game effects on a unit while some more basic data applied directly to a combat class could help with some ai evaluations on the strengths and weaknesses of a given Combat Class?
If you want most combat classes to have an associated free promotion, then no, we shouldn't add extra tags on the combat classes themselves. But I think if we have some tags (mainly against what other combat classes it is strong or weak) then we can have a lot of combat classes without free promotion and that would be worth it imo.
 
Makes sense. I think we might have to wait and see how many combat classes we'll want to inherit direct and immediate strengths or weaknesses against other combat classes simply on the basis of the combat class itself. In many cases, this would be best handled at the equipment promotion level so those standard strengths/weaknesses would grow or retract based on the individual differences in the weapons and armors used.

However, if it becomes apparent that nearly all combat classes need a defining auto-promotion, then you're right - we should start looking at adding some tags to combat class definitions themselves instead.
 
@Hydro:
You were wanting to work out the animal combat class lists. And I'm sure you have a lot of ideas along various categorical combat class lines. Can I get a full proposal from you on what Combat Classes you feel there should be so we can start discussing and editing that list down so it can go in to the xml soon?

Once Koshling is done with his reprogram of the promotion methods and I've managed to make sure the line promotion works just as intended, (and once we have a refined list) I'll be ready to set up the combat classes.

I don't mind putting them in the xml myself but I want your involvement in helping to define them ;)
 
@Thunderbrd

Here are the possible animal sub-classes and the species that go in them.

---Invertebrates---
Spoiler :

Arachnids
- Tarantula (if we had one)

Crustaceans
- Crab

Insects
- Locust Swarm

Mollusks
- Giant Squid


---Fish---

Spoiler :
Boney Fish
- Cod
- Mackerel
- Marlin
- Tuna

Cartilage Fish
- Eagle Ray
- Great White Shark
- Hammerhead Shark
- Manta Ray
- Reef Shark
- Whale Shark


---Amphibians---

Spoiler :
Frogs
- Bullfrog
- Poison Dart Frog

Salamanders
- Salamander (if we had one)
- Newt (if we had one)

---Reptiles---
Spoiler :

Crocodilians
- Alligator
- Caiman
- Gharial
- Nile Crocodile
- Saltwater Crocodile

Lizards
- Iguana
- Komodo Dragon
- Nile Monitor

Snakes
- Ball Python
- Cobra
- Puff Adder
- Viper

Turtles
- Desert Tortoise
- Galapagos Tortoise
- Sea Turtle


---Birds---

Spoiler :
Corvids
- Crow

Gamebirds
- Chicken
- Peacock
- Pheasant
- Turkey

Kingfishers
- Kookaburra

Parrots
- Macaw
- Toucan (technically they aren't a parrot but close enough)

Penguins
- Emperor Penguin
- Rockhopper Penguin

Pigeons
- Dodo (if we had one)
- Dove (if we had one)
- Pigeon

Raptors
- Eagle
- Great Horned Owl
- Haast's Eagle
- Hawk
- Vulture

Ratites
- Cassowary
- Emu
- Moa
- Ostrich
- Rhea

Seabirds
- Arctic Tern
- Seagull

Songbirds
- Ox Pecker (not really but their class is kind of obscure.)

Waterfowl
- Duck
- Goose
- Loon


---Mammals---

Spoiler :
Anteaters (Even though they are not closely related.)
- Aardvark
- Anteater

Carnivore (its hard to pick since there are so many species in this. Maybe we should separate them.)

(Canine)
- Dire Wolf
- Fox
- Wolf

(Bears)
- Black Bear
- Cave Bear
- Grizzly
- Moon Bear
- Polar Bear
- Sloth Bear
- Speckled Bear
- Sun Bear
- Panda

(Raccoons)
- Red Panda
- Raccoon

(Mustelidae)
- Badger
- Ratel
- Sea Otter
- Skunk
- Wolverine

(Hyenas)
- Hyena

(Feline)
- Bengal Tiger
- Cave Lion
- Cheetah
- Jaguar
- Leopard
- Lion
- Panther
- Sabertooth
- Siberian Tiger

(Pinniped)
- Seal
- Sea Lion
- Walrus

Cetaceans
- Beluga
- Dolphin
- Humpback Whale
- Minkie Whale
- Narwhal
- Orca

Lagomorphs
- Rabbits (if we had any)

Marsupials
- Grey Kangaroo
- Koala
- Red Kangaroo
- Tasmanian Devil
- Wallaroo
- Wallaby

Monotremes
- Platypus

Pachyderm
- Elephant
- Mammoth

Primates
- Capuchin Monkey
- Chimpanzee
- Gorilla
- Human
- Lemur
- Mandrill
- Neanderthal
- Orangutan

Rodents
- Beaver
- Capybara

Sirenia
- Dugong

Ungulates
- Aurochs
- Bison
- Black Rhino
- Bongo
- Camel
- Caribou
- Deer
- Gazelle
- Gemsbok
- Gerenuk
- Giraffe
- Guanaco
- Hippo
- Horse
- Ibex
- Impala
- Indian Rhino
- Java Rhino
- Moose
- Okapi
- Onager
- Saiga
- Tapir
- Mouflon
- Musk Oxen
- Warthog
- Water Buffalo
- White Rhino
- Wild Boar
- Wildebeest
- Zebra


----

So yeah. As you can see its kind of abstract and messy and hard to categorize using accurate taxonomy because we are so lopsided with the family groups.

What I think we should do for sure it split them up into the 6 main groups.

- Invertebrates
- Fish
- Amphibians
- Reptiles
- Birds
- Mammals

And then only add sub-groups to those we need such as the Canine sub-group for the dog units or Cetacean sub-group for whales and dolphins when you want to have a whaler promotions. Or Equine, Camelidae and Pachyderm for Horses, Camels and Elephants.

The rest of the groups do not see all that important for this game. Having the generalized 6 groups should suffice
 
You got twisted up a bit on Carnivores too...

I really think the feeding group for animals should be split into the three:

Carnivore, Herbivore, Omnivore.

I'll look over the rest later today and edit the first post to reflect.

There's also a few new combat class definition concepts that have come up since that post and I'll try to include them.

This should help a lot to pin things down!

Anyone else have any review comments on Hydro's list or mine?
 
@Hydro:

Quick question here, I may have missed something in this or another thread, but what gameplay effect do we intend to have with giving Animals another combat type specific to their clade? Are we going to be doing things like making a promotion that has +25% vs Birds, because that seems like a bit much to me.
 
We do have rabbits - we have the vorpal bunny! All we need do is reduce its stats, significantly, and we have an animated bunny.
 
@Hydro:

Quick question here, I may have missed something in this or another thread, but what gameplay effect do we intend to have with giving Animals another combat type specific to their clade? Are we going to be doing things like making a promotion that has +25% vs Birds, because that seems like a bit much to me.
A particular weapon might be worth giving a bonus vs Birds (like blowguns for example)... How about managing the Bird Flu accurately?

I don't believe we should hesitate to categorize in wide strokes at the moment but I don't mind holding off on more detailed definitions until they show themselves useful.

This issue with Python is kinda annoying though... We really just need to figure out what the process is to update python to handle new combat classes so it won't be but a little added step.
 
You got twisted up a bit on Carnivores too...

I really think the feeding group for animals should be split into the three:

Carnivore, Herbivore, Omnivore.

I'll look over the rest later today and edit the first post to reflect.

There's also a few new combat class definition concepts that have come up since that post and I'll try to include them.

This should help a lot to pin things down!

Anyone else have any review comments on Hydro's list or mine?

Well there is the Order "Carnivora" which includes Cats, Dogs, Bears, Weasels, Hyenas, Seals and Sea Lions. And then there are "Carnivores" which means they prey upon other creatures. Such as a Lion is both a Carnivore and in the order Carnivora but a Crocodile is just a Carnivore.

The problem really is actual taxonomy vs common knowledge taxonomy. People know the name "Feline" or "Canine" or even "Marsupial" but not many know "Pinniped" or "Monotreme". Also sicne we have a limited amount of animals and of those they are very lopsided towards mammals and of those lopsided towards the large ones.

This is why I think we should have the main 6 groups plus add additional subgroups as we need them. For instance a pigeon only really needs to be categorized as a bird. But we could always categorize an Eagle as a Bird and Raptor if we have stuff specific to that group of birds.

Carnivore, Omnivore and Herbivore are not good for categories since the wide varies in diet. What about Nectarvore, Pollinivore, Frugivore, Granivore, Folivore, Rhizophagy, Sapivore, Mycophagic, Xylophagy, Detritivore, Coprophagic, Lepidophagy, Trophallaxic, Planktovore, Insectivore, Ovivore, Piscivore, Paedophagic, Scavenger, Pyroivore, Parasite, Sanguivore, Liquivore, Cytovore, Kinetivore, Lithivore, Chemotroph, Photovoltaic or Photosynthetic? So yeah please don't group them by their diet.

@Hydro:

Quick question here, I may have missed something in this or another thread, but what gameplay effect do we intend to have with giving Animals another combat type specific to their clade? Are we going to be doing things like making a promotion that has +25% vs Birds, because that seems like a bit much to me.

Like I said I think general 6 classes (mammal, bird, reptile, etc) should cover what we want. Any subclasses like Canine or Equine can be made on a case by case basis. We don't really need a sub-class for aardvarks. They can do fine as just mammal class.

A particular weapon might be worth giving a bonus vs Birds (like blowguns for example)... How about managing the Bird Flu accurately?

I don't believe we should hesitate to categorize in wide strokes at the moment but I don't mind holding off on more detailed definitions until they show themselves useful.

This issue with Python is kinda annoying though... We really just need to figure out what the process is to update python to handle new combat classes so it won't be but a little added step.

Yes use VERY wide strokes for now. Bird Hunting with just Bird category will suffice. If you want a Raptor (ex. Eagle) or Rattie (ex. Ostrich) we can make those specifically but I do not think we need a special Ox Pecker category even though we have it as a unit.
 
I agree with everything you said except that Carnivore, Omnivore and Herbivore is to mean Predator (attack to consume), Prey (does not attack other wildlife or humans to consume) & Omnivore (Plays both roles equally). Pretty much everything you listed (with perhaps the exception of Insectivore) falls into one of these 3 categories. I'd be happy to name it Predator vs Prey but what's the middle category?

Actually... now that I think about it, I may not want such generic CCs in this way. The thing about this is I've got some promotion line concepts here, but I now recall I'd need to be ever so slightly more specific to achieve them so for now I'll leave them out pending need for the promotion lines themselves.
 
Well if you had 2 then you could just list both predator and prey, however what would you consider "prey"? A snake eats mice but a hawk eats snakes. Is the snake a "predator" or "prey"? Note that snakes only eat other animals and not plants. Likewise the marine food chain is all about bigger fish eating smaller fish.
 
Which is why it was going to be the original 3 mentioned. BUT, as stated, I believe I can categorize along these lines more effectively as promo chains require.
 
Ok, this subject has been dormant for a bit and since I've been offered some assistance here I feel its time we brought it back up and hashed out what remains to hash out on these matters.

This is almost a side note but it comes from another discussion and I wanted further chat on the subject here:
Human (itself) should be a subcombat as it is according to the combat mod plan anyhow. Could be useful to implement for this case, no?

A better idea would be to have Mechanized as a subcombat, and assume non-animal, non-mechanized units are Human. That would mean less XML work.

Not if you wish to have promotions that say, +%vs Humans. (Cuz those can't really say, +% vs non-animal, non-mechanized)

I kinda thought too that it might be useful to have a Human Operated CC that helps us distinguish between a Swordsman (Human), a Jeep (Human Operated), and a Robot (Mechanized or whatever it is now ... Robotic?).

Reason being that I can see potential affects that would only act against humans that are basically bodily present and not fully shielded by a vehicle. Some diseases may fall under this kind of division (inside the vehicle the human isn't exposed enough). Another Example: For Big Cats I had figured on doing a "Man Hunter" promotion line with each step being something like +25% vs Humans, but against a human encased in a vehicle it wouldn't be effective. But then an affect, like a poison gas perhaps, could mess up a person in a vehicle all the same but would not affect an outright Robot. And of course a strong EMP pulse would affect a Robot and Human Operated vehicle but would not affect a Human (on foot or mounted.)

Alternatively, Human becomes a combat class, while Foot, Mounted, Tracked, etc... And then I could make a combat modifier tag that allows 2 definitions to unit combat and requires both for the combat modifier to be in effect. But there's a lot of other types of modifiers and going about it this way would probably mean an inevitable need to have a similar sibling tag for all of them... ugh.

We also have Aliens on the eventual horizon. And we have Neanderthals now. It could be very useful to have a Human specific combat class.

As for the workload, I believe we have some new assistance for this preparing for this and other CC updates as we speak. I know we're going to need to really discuss what is necessary to be in the core vs in a Combat Mod option, so we'll have to pick this conversation up again in much more depth here this week. In fact... I'm going to go copy this post over to a better thread for this now.



But there's more to discuss.

AI
I've been giving some thought to the statement that there needs to be some more AI development to get this to integrate properly. I'm still wondering what AI may not be fully considered here so if y'all can point out exactly what would need to be addressed I can try to get a list together on what needs to happen there. Personally, I think its pretty much all covered but I'm open minded and listening. I may offer up how I believe the code currently addresses a mentioned concern, but that's not to shut down the conversation but rather in an effort to see if it can be pointed out how there's a gap there somewhere in the way it considers it.

Core vs Option
Also, we're about to get a compiled list displayed for us here of the suggested Combat Classes and after some review, a list of what CCs some minds on the project feel are the ones to start with updating ourselves with. With that in mind, at what point do we draw a line and say, no, the Core doesn't get that or is this potentially fundamentally useful enough to just go ahead and add to the core?

Outside of application to the core, this could well be the first step in utilizing AIAndy's new Option Edits method, which sets us on a course for having a Combat Mod parallel unit for EVERY unit we have (which I do hope to avoid) OR I could simply make subcombats an option entirely and then the subcombats could be defined in the core but the primary combat class would be all that the game would see without that base Combat Mod option. This could be a pretty big hinging point that could help to avoid a lot of defining promos and such as being purely under the option as many qualifying Combat Classes wouldn't be present in a non-Combat Mod game.

I'm open to suggestions on how to divide things here.

EDIT: Ah... one more thing...
Pedia Display
I still need to sort out a way to get the subcombats defined on a unit to show in the unit details in the pedia. I took a look at doing this a bit ago and realized it'd be far out of my ability in Python. Currently the unit combat display is shown as:

As you can see, the combat class, as displayed, doesn't leave much room for additional SubCombats. I could add a listing of them at the beginning of this list here:

But that may not be sufficient for some to quickly recognize the Subcombats.

Any solutions offered would be helpful!
Anyhow, your thoughts?
 
Pedia Display
I still need to sort out a way to get the subcombats defined on a unit to show in the unit details in the pedia. I took a look at doing this a bit ago and realized it'd be far out of my ability in Python. Currently the unit combat display is shown as:

As you can see, the combat class, as displayed, doesn't leave much room for additional SubCombats. I could add a listing of them at the beginning of this list here:

But that may not be sufficient for some to quickly recognize the Subcombats.

Any solutions offered would be helpful!
Anyhow, your thoughts?

The text could use a slightly smaller font for Strength etc. Secondary classes could then just be an icon list if a hover over (and link) there works.
 
The text could use a slightly smaller font for Strength etc. Secondary classes could then just be an icon list if a hover over (and link) there works.

The link currently appears to work. And that sounds like a great set of solutions. But I don't have the python skill to implement it. Would you be willing to help with setting that up?
 
Top Bottom