Roll Call! (Post here to let others know you show up from time to time)

How many people do you think regularly visit the Civ4Col Mod forum?


  • Total voters
    25
Like most git hosting services, SF has a free basic package and paid packages with more features. What makes SF stand out is the unlimited space for files. GitHub is limited to just one GB, which really isn't much if you start adding graphics.

What do you mean click on "it"? The submodule? I don't know what you mean when you say the submodule, nor when you say hash. Am I missing some files? Or am I clear to proceed with the 3rd page of the guide?
How can you even ask that :nono:

Spoiler :
Cousin Itt from Addams Family

In your screenshot, you have the main repository called Medieval_Conquest. There is another one called sourceDLL. Root of modules can be identified by the fact that they have their revision/branch in parenthesis. When the root of a module is selected, the branch selector applies to that branch. If no module is selected, or a non-module is selected, the branch selector applies to the root (Medieval_Conquest). You need to switch both sourceDLL and Assets/Python to use the correct branch, in this case it would make the most sense to use develop.

I'm sorry is this is hairy complicated. From time to time I wonder if it can be made more simple, but simple has to be rejected if it loses functionality.
 
Like most git hosting services, SF has a free basic package and paid packages with more features. What makes SF stand out is the unlimited space for files. GitHub is limited to just one GB, which really isn't much if you start adding graphics.
Makes sense.

How can you even ask that :nono:
Spoiler :

Cousin Itt from Addams Family

Lol! :crazyeye:

In your screenshot, you have the main repository called Medieval_Conquest. There is another one called sourceDLL. Root of modules can be identified by the fact that they have their revision/branch in parenthesis. When the root of a module is selected, the branch selector applies to that branch. If no module is selected, or a non-module is selected, the branch selector applies to the root (Medieval_Conquest). You need to switch both sourceDLL and Assets/Python to use the correct branch, in this case it would make the most sense to use develop.

I've identified the two submodules you're referring to. In the screengrab below you can see I have them both expanded.
https://www.flickr.com/photos/147607101@N05/31965590354/in/album-72157679109116635/
Right now in the branches panel in the bottom left, both are set to master - origin. I do not know how to change that to something else. I see everything else is set to develop - origin. How do I change those and what does that do? Why is it important?

I'm sorry is this is hairy complicated. From time to time I wonder if it can be made more simple, but simple has to be rejected if it loses functionality.
Lol.

Functionality shouldn't be lost for the sake of simplicity. Explaining complex things can be difficult. Understanding them even more so if not explained. So I appreciate your efforts and your guidance!
 
Local branches are just that: local. Origin is the git word for "remote server". You can open origin just like local branches is open and then you can double click on whatever branch you like. You are then asked if you want to track it locally, which will move it to local branches. You should always be able to double click on a local branch to switch to that one, or quite possibly you can right click on a branch and select in a menu.
 
So here is what I see. I right clicked the master-origin and set the tracking to origin/develop. But on the branch panel it still says master <177 (whatever that means) origin/develop.
Did I do that right? Pic below (it's big).
Spoiler What I see :
gitscreen4.jpg
 
This is what you're showing upon right click:

Spoiler 1 :
switch_branch.jpg


and this is what I'm seeing upon right click:

Spoiler 2 :
gitscreen5.jpg


Your's says "Switch Branch" at the top, and mine says "Check Out..."
 
So... I got it to work. The SmartGib method is to double click the desired branch name in the Origin menu as you said. Did that for both.

I obtained... somehow (I can't say)... the source code and the missing folder for Colonization which Steam neglected to put in my download despite me paying for the game. I put that in its proper directory. Before that I was getting boost and python are missing errors in Visual Studio when trying to compile.

I ran the compiler as you said and got the build to succeed! Excellent! Upon loading the game, the starting screens looked and loaded beautiful.

And then... it crashed and forced me to restart the machine while loading after clicking play (after choosing civ and world):
Got some message that looked like this.
assert failed cv_liberation_city !
 
I really need to look into that liberation city assert. I think the bug there is the assert check itself, but I will not remove it until I'm sure.

If the game crashes, control-alt-delete should be good enough. Also the game will crash if you attach a debugger (like hitting F5 in MSVC). The reason is that steam prevents people from cheating (auto aim, unlimited money etc) and simply crashes games when it detect suspicious behavior. Sadly it has a false positive on mod developers. Also general rule is to play in window mode because it makes it much easier with asserts and crashes.
 
You're right. I ran in windowed mode and had a much easier time dealing with the issue. Here is the text of the error.


Assert Failed

File: ..\DLL_Sources\.\CvGame.cpp
Line: 363
Expression: getLiberationCity() != NULL
Message:

----------------------------------------------------------
 
Is there a way to disable Steam's interference do you know?
Don't use the steam version :cry:
Game developers can tell steam to disable it. However it looks like they didn't care about it and just went with the default. It doesn't look like we can do anything about it at all. I highly recommend going with the GOG version if you should buy the game today. Not only is it without the DRM and anti-cheat, it's also 20% cheaper on GOG and surprisingly that's taking into account that it's on sale on steam and it's the regular GOG price.
 
I wish I had seen the gog version first. :( I'll have to buy it.


What is the DRM?


When I am trying to play MC on my maxed out macbook pro retina 13 inch 2015 model and with all graphics set to low and animations frozen, the fan kicks on high speed. But it is silent and cool on the same settings with other mods, even RandR. Is that my fault or is it MC? Nothing intensive is going on on the screen. Just the first town. No animations. Nothing.


So if I wanted to edit C++ for RandR. I'm thinking I would edit in Notepad++. Because they have all the .cpp files in a folder called DLL Source, can I just load that with my edited files into the Visual Studio and make an edited RandR anytime I want? Is it that easy now to edit the code?
 
I wish I had seen the gog version first. :( I'll have to buy it.
Maybe, but you don't have to rush to get it. Just don't try to attach the debugger.

What is the DRM?
Digital Rights Management. It's a fancy word for copy protection and in this case anti-cheat.

When I am trying to play MC on my maxed out macbook pro retina 13 inch 2015 model and with all graphics set to low and animations frozen, the fan kicks on high speed. But it is silent and cool on the same settings with other mods, even RandR. Is that my fault or is it MC? Nothing intensive is going on on the screen. Just the first town. No animations. Nothing
Considering that M:C use less resources than RaR, odds are you messed up something. I suspect you compiled a Debug target. There are 4 possible targets:
  • Release - optimized as much as possible
  • Assert - same as Release, but with assert checks added, which will slow the game down a bit
  • Debug - really slow, but unlocks some features with the debugger
  • Profile - for profiling the code (read: figure out where to optimize the code)
Avoid debug as steam prevents you from using the debugger anyway. Odds are that you will never need Profile, so forget about that one as well. Since your goal right now seems to be speed, Release seems to be the right choice.


So if I wanted to edit C++ for RandR. I'm thinking I would edit in Notepad++. Because they have all the .cpp files in a folder called DLL Source, can I just load that with my edited files into the Visual Studio and make an edited RandR anytime I want? Is it that easy now to edit the code?
You would need to set up a MSVC project for RaR in order to compile it. One benefit in MSVC (in projects only) is that it has an awareness of the code. For instance if you have a line saying something like pUnit->getUnitID(), then you can right click on getUnitID and select (get definition) and it will jump to where the code for the function in question is written. This feature alone is worth enough to justify setting up proper projects in MSVC.
 
Considering that M:C use less resources than RaR, odds are you messed up something. I suspect you compiled a Debug target. There are 4 possible targets:
  • Release - optimized as much as possible
  • Assert - same as Release, but with assert checks added, which will slow the game down a bit
  • Debug - really slow, but unlocks some features with the debugger
  • Profile - for profiling the code (read: figure out where to optimize the code)
Avoid debug as steam prevents you from using the debugger anyway. Odds are that you will never need Profile, so forget about that one as well. Since your goal right now seems to be speed, Release seems to be the right choice.

I re-compiled as a release. This time around I had no error messages interrupt the game load. However I still have the same problem with the fan. Came on full speed with nothing going on. One thing that sticks out to me, maybe it's not the problem, you'd know, is that when I build, it says I am building as Win32:

screen.jpg


see next to Release. I couldn't change that.

I also have a Win64 machine. Is that creating a clash? There was one warning during the build in the console:
Code:
1>LINK : warning LNK4089: all references to 'KERNEL32.dll' discarded by /OPT:REF

And here is the full text of the build:
Spoiler Full Text :

Code:
1>------ Build started: Project: Colonization Mod Collection, Configuration: Release Win32 ------
1>  Building source list
1>  Updating BasicInfos\CIV4BasicInfoSchema.xml
1>          1 file(s) copied.
1>  Updating Buildings\CIV4BuildingsSchema.xml
1>          1 file(s) copied.
1>  Updating CivEffects\CIV4CivEffectInfoSchema.xml
1>          1 file(s) copied.
1>  Updating Civilizations\CIV4CivilizationsSchema.xml
1>          1 file(s) copied.
1>  Updating Events\CIV4EventSchema.xml
1>          1 file(s) copied.
1>  Updating GameInfo\CIV4GameInfoSchema.xml
1>          1 file(s) copied.
1>  Updating Terrain\CIV4TerrainSchema.xml
1>          1 file(s) copied.
1>  Updating Units\CIV4UnitSchema.xml
1>          1 file(s) copied.
1>  Updating CIV4GlobalTypesSchema.xml
1>          1 file(s) copied.
1>  Running perl scripts
1>  Running fastdep
1>  _precompile.cpp
1>  CvArea.cpp
1>  CvArtFileMgr.cpp
1>  CvCity.cpp
1>  CvCityAI.cpp
1>  CvDeal.cpp
1>  CvDiploParameters.cpp
1>  CvDLLButtonPopup.cpp
1>  CvDLLEntity.cpp
1>  CvDLLPython.cpp
1>  CvDLLStructDataIO.cpp
1>  CvDLLWidgetData.cpp
1>  CvFractal.cpp
1>  CvGame.cpp
1>  CvGameAI.cpp
1>  CvGameCoreDLL.cpp
1>  CvGameCoreUtils.cpp
1>  CvGameTextMgr.cpp
1>  CvGameTextMgr_CivEffect.cpp
1>  CvGlobals.cpp
1>  CvHallOfFameInfo.cpp
1>  CvInfoProfessions.cpp
1>  CvInfos.cpp
1>  CvInfoWater.cpp
1>  CvInitCore.cpp
1>  CvMap.cpp
1>  CvMapGenerator.cpp
1>  CvPlayer.cpp
1>  CvPlayerAI.cpp
1>  CvPlayerCivic.cpp
1>  CvPlot.cpp
1>  CvPlotGroup.cpp
1>  CvPopupInfo.cpp
1>  CvPopupReturn.cpp
1>  CvRandom.cpp
1>  CvReplayInfo.cpp
1>  CvReplayMessage.cpp
1>  CvSelectionGroup.cpp
1>  CvSelectionGroupAI.cpp
1>  CvStructs.cpp
1>  CvTalkingHeadMessage.cpp
1>  CvTeam.cpp
1>  CvTeamAI.cpp
1>  CvTradeRoute.cpp
1>  CvTradeScreen.cpp
1>  CvUnit.cpp
1>  CvUnitAI.cpp
1>  CvXMLLoadUtility.cpp
1>  CvXMLLoadUtilityGet.cpp
1>  CvXMLLoadUtilityInit.cpp
1>  CvXMLLoadUtilitySet.cpp
1>  CyArea.cpp
1>  CyAreaInterface.cpp
1>  CyArgsList.cpp
1>  CyArtFileMgr.cpp
1>  CyArtFileMgrInterface.cpp
1>  CyCity.cpp
1>  CyCityInterface1.cpp
1>  CyDeal.cpp
1>  CyEnumsInterface.cpp
1>  CyGame.cpp
1>  CyGameCoreUtils.cpp
1>  CyGameCoreUtilsInterface.cpp
1>  CyGameInterface.cpp
1>  CyGameTextMgr.cpp
1>  CyGameTextMgrInterface.cpp
1>  CyGlobalContext.cpp
1>  CyGlobalContextInterface1.cpp
1>  CyGlobalContextInterface2.cpp
1>  CyGlobalContextInterface3.cpp
1>  CyGlobalContextInterface4.cpp
1>  CyHallOfFameInfo.cpp
1>  CyHallOfFameInterface.cpp
1>  CyInfoCivEffectBaseInterface.cpp
1>  CyInfoCivEffectInterface.cpp
1>  CyInfoInterface1.cpp
1>  CyInfoInterface2.cpp
1>  CyInfoInterface3.cpp
1>  CyMap.cpp
1>  CyMapGenerator.cpp
1>  CyMapGeneratorInterface.cpp
1>  CyMapInterface.cpp
1>  CyPlayer.cpp
1>  CyPlayerInterface1.cpp
1>  CyPlayerInterface2.cpp
1>  CyPlot.cpp
1>  CyPlotGroup.cpp
1>  CyPlotGroupInterface1.cpp
1>  CyPlotInterface1.cpp
1>  CyRandomInterface.cpp
1>  CyReplayInfo.cpp
1>  CySelectionGroup.cpp
1>  CySelectionGroupInterface.cpp
1>  CyStructsInterface1.cpp
1>  CyTeam.cpp
1>  CyTeamInterface.cpp
1>  CyTradeRoute.cpp
1>  CyTradeRouteInterface.cpp
1>  CyUnit.cpp
1>  CyUnitInterface1.cpp
1>  FAssert.cpp
1>  FDataStreamBase.cpp
1>  FDialogTemplate.cpp
1>  MD5.cpp
1>  Savegame.cpp
1>  Yields.cpp
1>  CensureInfo.cpp
1>  CivEffectInfo.cpp
1>  CivicInfo.cpp
1>  PerkInfo.cpp
1>  TechInfo.cpp
1>  BoolArray.cpp
1>  CyInfoArrayInterface.cpp
1>  InfoArray.cpp
1>  JustInTimeArray.cpp
1>  JustInTimeArrayTypes.cpp
1>  ModifierContainer.cpp
1>  MOD_JustInTime_Features.cpp
1>  SavegameArrayConversion.cpp
1>  Linking DLL
1>     Creating library temp_files\Release\CvGameCoreDLL.lib and object temp_files\Release\CvGameCoreDLL.exp
1>LINK : warning LNK4089: all references to 'KERNEL32.dll' discarded by /OPT:REF
1>      COPY "temp_files\Release\CvGameCoreDLL.dll" "Release\CvGameCoreDLL.dll"
1>          1 file(s) copied.
1>      COPY "Release\CvGameCoreDLL.dll" "..\..\Assets\."
1>          1 file(s) copied.
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========




You would need to set up a MSVC project for RaR in order to compile it. One benefit in MSVC (in projects only) is that it has an awareness of the code. For instance if you have a line saying something like pUnit->getUnitID(), then you can right click on getUnitID and select (get definition) and it will jump to where the code for the function in question is written. This feature alone is worth enough to justify setting up proper projects in MSVC.

Oh yeah, that sounds really cool. Seems like it can easily open and organize multiple files compared to Notepadd++. But it can only handle editing C++? Whats the process for setting up a project?
 
1>LINK : warning LNK4089: all references to 'KERNEL32.dll' discarded by /OPT:REF
That warning is normal. So far nobody knows for sure why it shows up, but it has always been that way and it works anyway. Considering that it has been normal and accepted from before I showed up, I haven't bothered to look into it. It's not like it would make a difference anyway ;)

Your fan problem is really strange. I can't tell for sure what goes on, but one theory is that I suspect RaR to stall quote often due to fetching data from memory. If a variable from memory is read and it's not in the CPU cache, the CPU will idle until it arrives. This means even a CPU with 100% load will usually idle some of the time. If M:C has less cache misses, then it will have less breaks, meaning the CPU will heat up more. I have done some work to reduce the memory usage in M:C, hence increasing the chance that the variable is already in the CPU cache. Nobody did that in RaR.

However that's just a guess. It sounds like I should do some profiling to see if I messed up something and made the game slower.

It's also worth mentioning that the AI will always try to use 100% CPU. If the fan spins up in M:C and not RaR during the AI turn, it really shows that the M:C has more efficient memory usage. However the CPU should be somewhat idle during your turn.

Try to start a game and just let the game run without doing anything. No new turn and no clicking around inside cities or anything like that. See how the fan responds to that.

I fully agree fan noise can be annoying. If the problem seems to be unsolvable through code optimization, then I guess I will have to look into making the game take cooling breaks to reduce fan noise and battery usage. That will slow down the game though.

The game exe is win32, meaning it only works with win32 dll files. Make it 64 bit and it won't work anymore.

Whats the process for setting up a project?
Step 1: click the makefile link in my signature
Step 2: read the entire first post
Step 3: download files from that post
Step 4: do what the post tells you to do
 
That warning is normal. So far nobody knows for sure why it shows up, but it has always been that way and it works anyway. Considering that it has been normal and accepted from before I showed up, I haven't bothered to look into it. It's not like it would make a difference anyway ;)

Good to hear!

Your fan problem is really strange. I can't tell for sure what goes on...

... Try to start a game and just let the game run without doing anything. No new turn and no clicking around inside cities or anything like that. See how the fan responds to that.

I fully agree fan noise can be annoying. If the problem seems to be unsolvable through code optimization, then I guess I will have to look into making the game take cooling breaks to reduce fan noise and battery usage. That will slow down the game though.
Spoiler Image :

Heat.jpg


As you can see here. It's my turn. I wasn't doing anything. I let it sit here for a minute and the whole time the CPU was dancing around 100 degrees C. Nobody else has reported this problem?


The game exe is win32, meaning it only works with win32 dll files. Make it 64 bit and it won't work anymore.

But obviously win32 games and files play just fine on win64 machines eh?

Step 1: click the makefile link in my signature
Step 2: read the entire first post
Step 3: download files from that post
Step 4: do what the post tells you to do

Hahahaha. :lol: Very concise! Good to see you've already tackled that.



I have done some work to reduce the memory usage in M:C, hence increasing the chance that the variable is already in the CPU cache. Nobody did that in RaR.

How did you do that and why didn't RayStuttgart think of it for R&R?
 
As you can see here. It's my turn. I wasn't doing anything. I let it sit here for a minute and the whole time the CPU was dancing around 100 degrees C. Nobody else has reported this problem?
No you are the first to report this problem. However remember that you have the development version, which has only been tested by a handful of people. If the problem is hardware specific, odds are that you are the first to notice this problem.

99 °C is insane. The computer shouldn't allow that. Make sure it is located somewhere where it can get plenty of air and placing it on something soft like a bed is a big no no. Try putting two books on a table in a way that will allow the computer to "float in the air" (obviously each end will rest on the books). Place the books to the left/right, not front/back. See if that allows the CPU to drop in temperature.

But obviously win32 games and files play just fine on win64 machines eh?
Sure. Most games are actually 32 bit. There are some benefits in using 64 bit, but with the exception of being allowed to use more than 4 GB of memory, many of them are overrated. G5 is the 64 bit PPC CPU Apple used (which is actually called PPC970, Apple invented the name G5 for marketing). G5 is interesting in the way that Apple actually recommended using it in 32 bit mode because it would be faster than 64 bit. Somewhat unusually they made the compiler able to use some 64 bit instructions in 32 bit applications, which would allow using most of the performance boosting features without using the slowdown features of 64 bit. Oddly enough feature was rarely used and it wasn't even used in software released by Apple.

How did you do that and why didn't RayStuttgart think of it for R&R?
Last part first: that's something which puts engineers apart from self taught hobby programmers ;) (I don't know Rays' education level though)

How is... lets say we want to know if team 4 has discovered a certain plot.

Vanilla approach (which is kept unchanged in RaR)
CvPlot contains a pointer to a bool array. This means the code is just
PHP:
bool bDiscovered = array[4]
What actually happens is this (CPU cycles are for your computer. I calculated them based on info in the screenshot)
  1. read pointer (133 cycles)
  2. calculate offset: 4*sizeof bool (32 cycles unless there is some clever optimization) (1 cycle because 4 is 2^2 and it's known at compile time, meaning the compiler should change it to bitshift. 32 applies to numbers, which aren't known until runtime)
  3. add offset to pointer (1 cycle)
  4. read memory at address from the pointer (133 cycles)
Total: 299 268

What I did to M:C. I realized that what I need is just 32 bits, not really 32 bools. This means the bool to tell if the plot is discovered can be stored as an unsigned int and the calculation looks like this:
  1. read int (133 cycles)
  2. shift right with offset 4 (1 cycle)
  3. bitwise and with constant 1 (1 cycle)
Total: 135 cycles (it increases slightly if MAX_PLAYERS is more than 32, but likely a 1 digit number of cycles)
On top of the less cycles being used, it also reads less chunks of memory into the CPU cache. Whenever new data is read into the cache, some other data is overwritten. This means say the data picked for being overwritten is the pointer in CvPlot. Next it needs to read some other data from that plot, but since it was just deleted from the cache, it has to be read from memory again. Keeping it in the cache saves maybe 100 cycles (not sure about the number, I can't see the actual number from the screenshot)


This means that even though those two approaches will do the same, the end result differs greatly. It's also worth mentioning that vanilla use "the recommended" approach because it is safe to use in multithreading (which everybody always use today, right :lol:), but what I changed it to will cause errors if two threads will write at the same time. However I know only one thread is able to write data here, meaning that will not be an issue for us. On top of being faster, it saves 4 bytes*number of teams and that's for each plot on the map. Do that with multiple variables and it adds up. Remember being 32 bit we have the 4 GB memory restriction. It seems like a lot, but at the same time it looks like C2C has run into it, meaning it isn't extremely far fetched to say we can encounter it.
 
Last edited:
99 °C is insane. The computer shouldn't allow that. Make sure it is located somewhere where it can get plenty of air and placing it on something soft like a bed is a big no no. Try putting two books on a table in a way that will allow the computer to "float in the air" (obviously each end will rest on the books). Place the books to the left/right, not front/back. See if that allows the CPU to drop in temperature.

It's on a cold flat tabletop in a room cold enough for me to where a sweater. I immediately can tell if a program or website is doing something it shouldn't, because the computer heats up, and that's abnormal for it to do.

Sure. Most games are actually 32 bit. There are some benefits in using 64 bit, but with the exception of being allowed to use more than 4 GB of memory, many of them are overrated. G5 is the 64 bit PPC CPU Apple used (which is actually called PPC970, Apple invented the name G5 for marketing). G5 is interesting in the way that Apple actually recommended using it in 32 bit mode because it would be faster than 64 bit. Somewhat unusually they made the compiler able to use some 64 bit instructions in 32 bit applications, which would allow using most of the performance boosting features without using the slowdown features of 64 bit. Oddly enough feature was rarely used and it wasn't even used in software released by Apple.[/SPOILER]

I see. Games just don't need to be 64 bit, so they stay at 32 bit.

Spoiler Your explanation of saving memory :
Last part first: that's something which puts engineers apart from self taught hobby programmers ;) (I don't know Rays' education level though)

How is... lets say we want to know if team 4 has discovered a certain plot.

Vanilla approach (which is kept unchanged in RaR)
CvPlot contains a pointer to a bool array. This means the code is just
PHP:
bool bDiscovered = array[4]
What actually happens is this (CPU cycles are for your computer. I calculated them based on info in the screenshot)
  1. read pointer (133 cycles)
  2. calculate offset: 4*sizeof bool (32 cycles unless there is some clever optimization) (1 cycle because 4 is 2^2 and it's known at compile time, meaning the compiler should change it to bitshift. 32 applies to numbers, which aren't known until runtime)
  3. add offset to pointer (1 cycle)
  4. read memory at address from the pointer (133 cycles)
Total: 299 268

What I did to M:C. I realized that what I need is just 32 bits, not really 32 bools. This means the bool to tell if the plot is discovered can be stored as an unsigned int and the calculation looks like this:
  1. read int (133 cycles)
  2. shift right with offset 4 (1 cycle)
  3. bitwise and with constant 1 (1 cycle)
Total: 135 cycles (it increases slightly if MAX_PLAYERS is more than 32, but likely a 1 digit number of cycles)
On top of the less cycles being used, it also reads less chunks of memory into the CPU cache. Whenever new data is read into the cache, some other data is overwritten. This means say the data picked for being overwritten is the pointer in CvPlot. Next it needs to read some other data from that plot, but since it was just deleted from the cache, it has to be read from memory again. Keeping it in the cache saves maybe 100 cycles (not sure about the number, I can't see the actual number from the screenshot)


This means that even though those two approaches will do the same, the end result differs greatly. It's also worth mentioning that vanilla use "the recommended" approach because it is safe to use in multithreading (which everybody always use today, right :lol:), but what I changed it to will cause errors if two threads will write at the same time. However I know only one thread is able to write data here, meaning that will not be an issue for us. On top of being faster, it saves 4 bytes*number of teams and that's for each plot on the map. Do that with multiple variables and it adds up. Remember being 32 bit we have the 4 GB memory restriction. It seems like a lot, but at the same time it looks like C2C has run into it, meaning it isn't extremely far fetched to say we can encounter it.

When you say things like that, I immediately think:

Spoiler Memes :
TeachMeMeme1.png
TeachMeMeme2.png


I feel like there is so much to learn! I'm devoting programming to a full time education right now as I am not currently working. Would like to become job ready asap.
 
I'm still here. I was probably very late to the party. I didn't start playing Civilization IV: Colonization until late 2011, and only updated it recently. I'm having fun playing the Religion And Revolutions mod, and I wish I could just share the fun I'm having playing it.
 
I'm still here, checking once in a while the activity on RAR (Religion and Revolution).

I believe RAR is a brilliantly executed project which really pushes the game concept to its best. Ray and others have left a beautiful product, and I'm glad Nightingale and Schmiddie are still putting efforts on it.

I come back once in a while because I still keep the secret hope that some day the project will be explored even further, even if I'm fully aware the game is aging and the community is getting smaller. I recall that back in the days RayStuttgart considered the idea to add Techs and Civics to the mod, even though I know how difficult it would be, I can't help myself thinking about it.

After all, brainstorming cannot harm so here's my 2 cents. Here's how I would see it about technologies : developping techs could be based on education points. As at the beginning, there's no education system in our colonies, so we would rely on trading them with other powers, and only later develop them by our own. This could be good to add more diplomatic depth to the game. It would follow the RAR game philosophy as well.

As for civics, it would make sense to trigger them with liberty bell production, through statesmen. It would give more freedom on the strategy adopted by the player. The 4 categories for Civics could be labor, economics, administration and religion, allowing different politics over time according to the way we want to develop our little empire.

Both concepts could be transfered from what has already been developped in Medieval Conquest mod. And for the matter I actually like a lot the idea to designate civics as "decrees". But anyway, I know the required developments would be huge so I'm not pressuring anyone on that! :)
 
Last edited:
Top Bottom