Caveman 2 Cosmos

are there any hd terrain mods out yes for c2c ?
No and there cannot be. This level of the graphic engine is fixed in the core we can't touch.
 
and any other textures packs? ive seen one in the subforum, but the link seems dead?

whats about an less detailed texturepack because sometimes fewer is more or less is more as we say here in austria ^^
 
I have some retexture work in a modmod thread.
Most land terrain textures in C2C were made by me (not hill, peak, permafrost, ice, and tundra), those that are in the modmod thread are the ones that haven't been greenlit for inclusion in C2C.
 
Hey devs, I'm looking to write a mod and have it eventually incorporated into C2C. For now, I'm not worrying about compatibility as I'm going to make it separately first. I've never modded for Civ4 (or any game) before, but I'm experienced in C++ and game dev.

I'm having trouble finding the functions I need to access and how to utilize them. I'm trying to make it possible for vassals to have vassals (Crusader Kings II, here we come :p), and the only clue I found in the python files for Warlords (where vassals were introduced) is:

Code:
VOID setVassal (TeamType eIndex, BOOL bVassal, BOOL bCapitulated)

That doesn't seem to have to do with the logic determining whether a civilization offers vassalage (whether it was capitulated or not), but it does seem like it MAY deal with allowing vassals to have vassals. However, I don't really know much beyond this, it is difficult to research.

I understand the my modification will require more changes to fix the new bugs, logic concerns, and balancing it creates, but I'm just focusing on the first task: making it possible. Can someone point me in the right direction?
 
Sounds like a new team member in the making here! This could be quite interesting.

Hey devs, I'm looking to write a mod and have it eventually incorporated into C2C. For now, I'm not worrying about compatibility as I'm going to make it separately first.
This is unwise. C2C has changed many fundamental logic streams from Vanilla BtS very significantly. The merge process would be horrifying if you weren't working from C2C sourcecodes as a base.

I've never modded for Civ4 (or any game) before, but I'm experienced in C++ and game dev.
That should work to give you a lot more insight than I had when I started! Now... with this background, clearly you would be familiar with using the tools available to you in VS to find all references, go to the function, go to the header, etc... right? These are generally THE tools to figure out how to find the information you're looking for. However, it can help to understand some of the fundamental architecture of the .h and .cpp files and naming conventions.

The way I would think of your project is that it's probably in the code in a few primary spots. The first would be the game RULES that enable or allow, which you are referring to by saying you're trying to first figure out how to make it possible. That's right, that's where I would start. And for THAT you'd generally find that in the file that works with the layer of game object that makes this determination in the first place (this determination being 'to vassalize or not to vassalize'.) In this case, you'd (I think) be talking about the player. If not the player then the team... I'm not extremely familiar with Vassal rules because I don't personally like the option at all. (This does not mean I have any judgement for a player who does appreciate Vassalization in the game.)

So you're probably going to find something like canCapitulate or canVassal or canVassalize, or something along those lines, in CvPlayer.cpp. However, there are likely added rules built directly into the AI regarding how they can come to offer, receive an offer, and how they are instructed to react to that offer. All of that would be, (most likely) in CvPlayerAI.cpp.

My advice is to read the code patiently, both before and after the function you suspect controls the determination you wish to alter the rules on and PROVE to yourself that where you are looking to adjust the code is exactly where you should be adjusting it. There are sometimes varous layers of validation, player level, team level, game level, and these layers can be strung together. You'll see this in places like the determination of what you can build or train. canTrain, for example, exists at the city level, but also at the player and the team and the specific game overall and to enable the ability of a city to train a unit, said unit must be qualified on all checks on all levels. There may be a similar chain for checking to see if a vassal can become or offer vassalization. Careful reading of the functions involving vassalization will be both illuminating and critical to understanding in depth to figure out everywhere you're going to need to make an adjustment.

So I might start with searches through the files suspected of controlling these rules, using Ctrl-F, of terms that one might think to establish these rules under, such as Vassal, Capitulate, etc... and once you start narrowing in on things in the source files, you start researching and following the program logic. You'll probably learn there's numerous other things to consider, like how the AI evaluates these choices, display matters that may become an issue, how to get the option to come up in the diplomacy screen (though I don't think from your description that you'll need to do this as it sounds like you're just looking to expand on when and who can offer and accept capitulation.)

That doesn't seem to have to do with the logic determining whether a civilization offers vassalage (whether it was capitulated or not), but it does seem like it MAY deal with allowing vassals to have vassals. However, I don't really know much beyond this, it is difficult to research.
Make sure to research deeply in the souce codes before grepping the python files. Py is more for extensions of rules and sometimes is not so good for opening up new ways for established rules to function.


If you don't have the source codes, I may need to get your sourceforge username and give you a conditional access to them from the SVN download.
 
Hey Thunderbrd,

Thank you for your response!

This is unwise. C2C has changed many fundamental logic streams from Vanilla BtS very significantly. The merge process would be horrifying if you weren't working from C2C sourcecodes as a base.

This is where many of my problems lie. I was looking at vanilla, which has the source code in an obfuscated .dll file. I will look at the source files in my C2C folder for now on.

If you don't have the source codes, I may need to get your sourceforge username and give you a conditional access to them from the SVN download.

Are the source files that come with the mod not the files you are talking about?

If not the player then the team...

It seems as though many isVassal() calls take arguments related to the teams, but that may be for unrelated methods or functions. Now that I'll be looking at C2C source I'll have a much easier time researching.

Make sure to research deeply in the souce codes before grepping the python files. Py is more for extensions of rules and sometimes is not so good for opening up new ways for established rules to function.

Source code it is then, thanks. Since source wasn't available in vanilla I thought Fraxis only allowed modding through Python.

Thank you for writing for someone who is inexperienced, it ensures that no detail is overlooked in case I don't know something. It really makes everything much easier :)

On a side note, I would like to report a bug: the Neanderthal cultures are not working. I may not fully understand the requirements for building a culture, which means that tool-tips may be needed for more UI elements. At this point the bug is unconfirmed.
 
Are the source files that come with the mod not the files you are talking about?
If you've got them, awesome!

isVassal()
isVassal() would be a call to determine exactly that, if the player IS a vassal. It's a bool that wouldn't have a lot of relation to whether it can become one or not except that there may be an isVassal() call that is used to say a player can't if it already is. So I suppose that's one way to track things down but it's a large body you'd get from this because the rules would check this in a lot of places. It would be faster to look for all code references to the m_b bool (or sometimes an int) and see where that data storage becomes subject to adjustment. Much faster. Track that function, probably changeVassal() or something like that, backwards to the validation checks to ensure it can be changed at all just before the call is made to change the player to a vassal. It's in the validation checks that you'll find your rule change moment.

It seems as though many isVassal() calls take arguments related to the teams, but that may be for unrelated methods or functions. Now that I'll be looking at C2C source I'll have a much easier time researching.
I've been assuming it's on the player level rather than the team but it would make sense if capitulation is a whole team or nothing thing. Again, this is where I'm unfamiliar with the rules of the dynamic myself.

On a side note, I would like to report a bug: the Neanderthal cultures are not working. I may not fully understand the requirements for building a culture, which means that tool-tips may be needed for more UI elements. At this point the bug is unconfirmed.
You'll have to get very clear regarding the dynamic for me to say. This is a bit vague to me unfortunately and so far as I've seen it's working as intended but I could be wrong.
 
I could never find a way to identify if a vassal was conquered or a colony in Python. When I asked on the forums I was told to use the two relationship items between the vassal and master, ie the "vassal attitude to master" and "master attitude to vassal". However in game both types, conquered and colony, were "very happy" with their master when it was me as the player.
 
I have i7 4720, 16GB RAM, GeForce GTX 960. Is this normal that C2C stutters and has unnaturaly long turn endings as soon as first turn even on low details?
 
I have i7 4720, 16GB RAM, GeForce GTX 960. Is this normal that C2C stutters and has unnaturaly long turn endings as soon as first turn even on low details?
No it's not normal.

Why are you playing with low graphics? You system can play High with no problems.

And what do you mean by "unnaturally long turn endings"? Give some detail time wise for perspective and how far into the game you are as well. It's all in the details and you've given next to none.
 
I play on Large world, Perfect World map with 6 AI players. From the very beginning there is a slight but irritating stutter and I have to wait about twenty seconds between every turn, even between first and second turn.
 
I play on Large world, Perfect World map with 6 AI players. From the very beginning there is a slight but irritating stutter and I have to wait about twenty seconds between every turn, even between first and second turn.
The slight stutter is from a special coding we use for low end users called graphical paging.

This is after all a 32 bit single thread game engine that is over 10 years old, and as such the processing for each turn is not as fast as New current games on the market. It can only use up to 2.9GB of memory and is very dependent upon CPU speed. The mod alone is over 1.67GB in size bigger than Civ IV BtS itself.

I run an i7 2nd gen 2600k 3.4GHz cpu. I have 8GB of DDR3 main ram at 1066Mhz. Video card is a Nvidia GTX 550Ti 1GB DDR5 vram. And I have no real problems. Expect turn times to be in the 10sec (early game) to 1 minute + range (mid to late game). Put your graphic setting for BtS at least at medium or High as i stated before.
 
There are a lot of things being processed between turns, even from the beginning of the game. Patience is a prerequisite virtue to play C2C.
 
The slight stutter is from a special coding we use for low end users called graphical paging.

It can only use up to 2.9GB of memory and is very dependent upon CPU speed. The mod alone is over 1.67GB in size bigger than Civ IV BtS itself.

I run an i7 2nd gen 2600k 3.4GHz cpu. I have 8GB of DDR3 main ram at 1066Mhz. Video card is a Nvidia GTX 550Ti 1GB DDR5 vram. And I have no real problems.

I have 6GB of RAM so I should be OK right? I also have an i7 3610qm at 2.30ghz (max clock is 3.3ghz I think) and an Nvidia GT650m with 2GB of vRAM.

I also tend to play on low graphics but should I then crank that up to medium, bearing in mind what you said?
 
Keep in mind that I'm dedicating very little of my time to this, so I don't want to foster false expectations.

Sorry for the vague bug report, I was being lazy. It's been awhile since my QA days and I forgot to avoid reporting something until I have a useful description. To be honest, I'm abandoning that report...laziness.
 
Keep in mind that I'm dedicating very little of my time to this, so I don't want to foster false expectations.
I have none. But if someone with your skillset was to really get interested and come onboard the team it would be a very nice relief to see the team expand and widen our net of addressing issues and imbalances.

Sorry for the vague bug report, I was being lazy. It's been awhile since my QA days and I forgot to avoid reporting something until I have a useful description. To be honest, I'm abandoning that report...laziness.
lol... I'll keep an eye out for the issue. It's good to bring things up even if it's not with enough supporting data to hunt it down, even if its just a suspected issue, because later we may see it and be able to confirm it and start hunting it down. Makes the situation possibly easier to be caught later.
 
Happy birthday StrategyOnly:bday:

(I did get the date right didn't I?)
My wife says according to FB it's today:
Happy Birthday to our Mod's founder, StrategyOnly! Have a great one bud! You deserve it. :bday::dance::cheers:
 
Happy birthday, StrategyOnly!!!:bday:
 
Top Bottom