[MOD] Medieval: Conquests

I have sorted out what the problem is that caused the crashes in the two games I mentioned in post #714. On SMALL and TINY maps there is not always sufficient room for the generation of North and South Europe plots, even on STANDARD sized maps there is not always room for North Europe and South Europe plots to be added.

There seems to be a constraint that limits the width of the East and West Europe plots to 6 tiles width, then if there is sufficient room, North and South Europe plots are painted to the map, but in all my testing, the volume of North and South Europe plots is never very high.

The default world sizes are defined in CIV4WorldInfo.xml in the GameInfo folder. A tiny map is set by default to 22x36. On a blank map this would ostensibly generate a Europe plot patten like this:
Spoiler :
However, this is not the case. The East and West Europe plots will swell towards the center of the map. The East Europe plots are given the heaviest weight, so if there is not land obstruction, they may stretch and fill all the way to the west side of the map. This effect can be seen on maps generated by the Firaxis Caribbean map script. So a map with no landmasses would very likely be filled with nothing but East Europe plots, which clearly demonstrates the bias of the original programmer to create maps that replicate European colonization of the Western Hemisphere.

Anyway, the random generation of the land mass + the 4 spaces from land default for all Europe plots can result in maps that do not have sufficient room for North and South Europe plots on any map generated by any map script, so this is not a problem limited to FaireWeather, but includes even Firaxis map scripts like A_New_World. I tried several of the other map scripts at Tiny and Small sizes and the same holds true with them all at those sizes.

Altering the proportions of the default map sizes actually seems to exacerbate the problem. When I added:

Code:
def getGridSize(argsList):
	"Override Grid Size function to make the maps square."
	grid_sizes = {
		WorldSizeTypes.WORLDSIZE_TINY:      (8*4,8*4),
		WorldSizeTypes.WORLDSIZE_SMALL:     (10*4,10*4),
		WorldSizeTypes.WORLDSIZE_STANDARD:  (13*4,13*4),
		WorldSizeTypes.WORLDSIZE_LARGE:     (16*4,16*4),
		WorldSizeTypes.WORLDSIZE_HUGE:      (20*4,20*4)
	}

	if (argsList[0] == -1): # (-1,) is passed to function on loads
		return []
	[eWorldSize] = argsList
	return grid_sizes[eWorldSize]
to A_New_World.py, the maps generated were square, but the North and South ends of the land mass swelled disproportionately to fill an even larger area at the edges of the map, rather than remaining narrow. (Code borrowed from Planets.py, thank you Orlanth)

My working supposition is that the issue is the fractal world generator in the Firaxis Python files being geared to create land masses vaguely shaped like the the isthmus between North America and South America with portions of those continents at either end. Basically making two triangles like arrowheads touching at the tip with a heavy randomization of the peripheral edges.

My working conclusion is that every time a map is generated with a map script it is largely a "luck of the draw" whether that map will have sufficient room for North and South Europe plots. :(
 

Attachments

  • BlankTinyMap1.gif
    BlankTinyMap1.gif
    44.9 KB · Views: 1,043
Sorry I don't want to read all these messages.
Kailric: Does the AI know how use land routes to go to commerce screen yet?
 
@drjest2000
I started a new thread for map discussion here...

http://forums.civfanatics.com/showthread.php?p=12650250#post12650250

Feel free to start new threads for any of you ideas on Yields/Buildings ect..

Sorry I don't want to read all these messages.
Kailric: Does the AI know how use land routes to go to commerce screen yet?

Not yet, sorry been working on bugs and such. Well, the players units can find land routes just fine when you give them the command to "Travel to Fair" so making the AI do it also doesn't seem like that big of a deal.

I have some changes planned soon where I'll make the Silk Road a land route that you leave from the southern or northern edge of map and when I do that I'll see about getting the AI to work it as well. If you are still wanting to make that Europe map I'll make it a priority to make sure the AI can access trade routes through land routes because we could use a good Historically accurate Europe map.
 
Yes I'm willing to work on that scenario. But I think I'll wait till the AI can use the routes properly.
Not sure how the silk route feature fits in to the Europe map? Maybe it could be available at the Caspian sea or somewhere nearby it.
 
Known Issues
-Exiting to Main Menu will crash the game, this will be fixed in a update soon
I finally added the fix to git. One less problem to deal with.

However something is wrong in my end. The game lacks music in main menu, plays vanilla intro movie when starting a new game and it crashed when I tried to load a savegame. Something tells me I didn't add the rar files correctly. What is the correct way to update? I thought it was just copying the Assets/Art from 2.0b and then 2.0c into Assets. The rest of the files really should be in git.

Changing the bat file to be aware of those two additions is really tricky when I failed to do it manually :crazyeye:

EDIT: I reinstalled the git version. I managed to make a working install of 2.0c, but the git version still fails. Clearly something should have been committed, which isn't. The question is what is it :confused:

EDIT2: found the problem. I made a mistake when copying files. It seems to work now. The only problem left is that old savegames can't be loaded anymore. I wonder if I can fix that.

EDIT3: found the problem. It's in 2.0b and fixing it will break all savegames made since 2.0b. I will let this one pass and start a new game, but it appears that it could easily have been avoided breaking any savegames. If you add/remove pStream->Read() and don't know how to make it able to handle old savegames, then contact me. It's not that tricky to handle once you know how to do it.

Sorry about the constant idea spamming, I'm not trying to bury you with "work", just trying to get it hung on the forum before I forget the idea. I really am turning into an O.P. (old person). Retirement did the same thing to my grandparents and parents, they could think up more work for me in an hour than an army of Hardy Workers could get done in a year. Every time I'd visit, they would have a to-do list a mile long.... Now, I'm doing it too >_<
Next thing we know you will act like Plato and blame everything on everybody younger than you :old:
Getting ideas is important. Keep up the good work.

I am pretty sure that I recognize some of the models in M:C from Empire Earth 2 and Pirates! Both of those games are pretty heavy on graphics, Pirates! more so than EE2. I have Sid Meier's Trains and Pirates! around here somewhere, both of those games are pretty disappointing. Pirates is a lot like Civ4Col... they both feel a lot like half of a game. Steering a ship during combat in Pirates feels like trying to play Space Invaders with a broken joystick. I recall someone reviewing it likened it to "like watching a drunken monkey swing on a chandelier"... sadly, it was true.

In general, most games released after 2000 suffer from 3D overload. They're graphics intensive to make up for the fact that there is almost nothing really going on. MMOs are like that, a lot of sound and fury signifying nothing. Endless grinding and mining, oh look! A boss fight! meh...

Truth be told, the unit models shipped in Civ4 and Civ4Col are not really that much more complicated than the models in The Sims (2000) or Dungeon Keeper II (1999) or StarCraft (1998) or Warcraft III (2002) or Disciples II (2002). They are just low-poly models wrapped around an animation skeleton that any 12-year-old could make. So there is no particular good reason that they should be so mind-numbingly complicated.
I fully agree. It really has gone downhill with the gaming industry. They have forgotten the concept of gameplay, which is why I haven't ditched old titles like Master of Magic. That one is still rather good today, specially with the unofficial patch and it's not the graphics that makes it good.

Still I like Civ4col because it's so easy to mod. Sure vanilla wasn't that impressive, but it's a fair platform to make something impressive with mods. Firaxis might have released a half finished product, but unlike most games, they gave us the tools to finish the game to whatever we like. That's more than you can say about the other games you mentioned.

SO, I'm thinking, at least on my old heap, M:C crashing to the desktop may be "normal and expected behavior" >_<
Crashing a 32 bit application because it's executed on a 32 bit system sounds wrong. You really should get git and the debugger running to see what goes wrong. The same goes for me but seeing that I lacked time for even issues on 64 bit in the past week or two, how should I have paid attention to the 32 bit issues? :)
 
I fully agree. It really has gone downhill with the gaming industry. They have forgotten the concept of gameplay, which is why I haven't ditched old titles like Master of Magic. That one is still rather good today, specially with the unofficial patch and it's not the graphics that makes it good.

Still I like Civ4col because it's so easy to mod. Sure vanilla wasn't that impressive, but it's a fair platform to make something impressive with mods. Firaxis might have released a half finished product, but unlike most games, they gave us the tools to finish the game to whatever we like. That's more than you can say about the other games you mentioned.
amen brother! :cool: Master of Magic is a definite classic, and in many senses set a high bar for well-balanced and interesting strategic gameplay that much of 4X gaming hasn't yet been able to surpass. (I am excited though to see the upcoming Age of Wonders sequel as well as this MoM-inspired kickstarter.) I actually did not know of the unofficial patch - will have to try this out immediately! :king: Anyway, Civ4col is definitely much more moddable than other games particularly civ5, and its inspiring to see what this and other serious mods have achieved :goodjob:

Anyway, I agree it's by far the gameplay that's the most important point. Graphics for me really isn't the most important issue when it comes to civ4 modding - the bottom line is this is an older game, and if you want eyecandy you'll have to turn elsewhere; plus I'd much rather have interesting and well-balanced gameplay than to add tons of civs & units or be focused on their cosmetic appearance. Also, there are actually literally thousands of decent existing nif graphics to choose from when considering civ4bts mods, RaR, civfanatics databases. I put a large stash up on the 2071 sourceforge site though they're mostly SF there's also some good for general use, esp native-ish buildings.
 
The Downloads have been moved to their own thread...

http://forums.civfanatics.com/showthread.php?t=504925

The Git version has been updated and I'll upload a new update for official version soon


Git 2.0d

-quieting to main menu no longer crashes the game
- AI players will now use the Profession Peddler. They will also travel the map looking for trades and can now use land trade routes.
-If you set goods to Import AI traders will stop by your cities and offer their wares if they are carrying any that you need. You can trade techs/maps/goods/gold for wares. If the AI peddler has cargo room you can sell him wares as well.
 
I've been virtually "away" for a month attending some intensive classes. I was never able to get the repository of the development version playable, so I'm starting from scratch and being "vewy, vewy careful", to misquote the cartoon character who is my ideal in life.

Already on the downloads page I'm confused. Here are the gory details:

Spoiler :

The downloads page has:

"DOWNLOAD Version 2.0

***UPDATE***

Update to version 2.0b

Copy this over 2.0b
Update to version 2.0c"​

So what happened to update 2.0a? Is it included in the first download? Is it superseded by update 2.0b?

Also, to clarify, what do the following updates mean:

Does "Update to version 2.0b" mean "update version 2.0a producing version 2.0b" or "apply this update to version 2.0b to produce version 2.0c"?

The same question applies to "Update to version 2.0c".

This reminds me of one of those psychological pictures where foreground switches with background to produced a new image. I'm guessing that the person who wrote this (Kailric?) knows perfectly well what he meant, and, reading it back, can't envision the other meaning.

Anyway, could someone explain this to me and/or edit the download page. Thanks.

When I can get past this point, I have questions about the GIT script and what has made it break, for me.


If you are interested, here is what I've been doing for the past month:

Spoiler :

In case you’re curious, the classes I’ve been taking are in classical Buddhist philosophy (roughly 4th-century AD and earlier.) This is the beginning of the curriculum taught in seminaries to Tibetan Buddhist monks and lamas, only in English and without memorizing entire classical writings, as the Tibetans do. I’ve been studying this for about 15 years at a lower level.


I look forward to various of you telling me you skipped this part.
 
I will be starting in a week with introductory programming in Python :), can't wait.
Funny thing is that I never needed python until I started modding and then I needed the skill here and now and didn't have time to wait for training. I searched online and learned what I needed to know within an hour or two and then I started coding with in my own point of view acceptable result. After that I see little point in taking a nightschool course. It will likely end up like when I should learn matlab. I got the introduction that the calculations aren't done in the monitor, they are done in the box next to it (pointing at the tower). In fact it's done inside something called a CPU, but that's too advanced for this course to talk about. I *vanished* during the first break and signed up for the advanced matlab instead.



Here is a little video which can be quite interesting for people who wants to program :)
I don't always agree with him, but I do agree that once you know one of those well, the others aren't that hard to use, though they aren't trivial either.


Link to video.
 
Funny thing is that I never needed python until I started modding and then I needed the skill here and now and didn't have time to wait for training. I searched online and learned what I needed to know within an hour or two and then I started coding with in my own point of view acceptable result. After that I see little point in taking a nightschool course. It will likely end up like when I should learn matlab. I got the introduction that the calculations aren't done in the monitor, they are done in the box next to it (pointing at the tower). In fact it's done inside something called a CPU, but that's too advanced for this course to talk about. I *vanished* during the first break and signed up for the advanced matlab instead.



Here is a little video which can be quite interesting for people who wants to program :)
I don't always agree with him, but I do agree that once you know one of those well, the others aren't that hard to use, though they aren't trivial either.​


Thanks for the input, I'll check out that video as soon as my wife gets off the phone;)

I for one never actually went through any study or course book so I personally want to start from the basics and work my way up. I can do what I can do because I have a knack for copying what others have done and editing it to work for me. I know how to edit the DLL for Civ4Col but I do not know how to build my own programs from scratch, so that is what I am going to be working on learning over the next several months.​
 
Here is a little video which can be quite interesting for people who wants to program :)
I don't always agree with him, but I do agree that once you know one of those well, the others aren't that hard to use, though they aren't trivial either.

Do you think this guy would still list Python as one of the essentials? I'm an old pro programmer who has learned many more that five languages (but not Python.) I have the impression that Python and Perl are each lagging a little in the programming language sweepstakes, as APL faded years ago. Heard of APL? Probably not. It was the most cryptic computer language ever known to mankind and I'm deeply grateful that it's gone.

About Python's currency, what do you think?

Personally, I use Perl but I hate it, due to having been indoctrinated by Edsger W. Dijkstra many years ago. (Structured programming.) Object-oriented programming has been a completely new set of entries to the race, after Dijkstra's first burst into relative celebrity. You youngsters [brandishes cane here] think OOP is all there ever was. And stay off my damn lawn!
 
Do you think this guy would still list Python as one of the essentials? I'm an old pro programmer who has learned many more that five languages (but not Python.) I have the impression that Python and Perl are each lagging a little in the programming language sweepstakes, as APL faded years ago. Heard of APL? Probably not. It was the most cryptic computer language ever known to mankind and I'm deeply grateful that it's gone.
It's a little hard to say. Some people/companies do use it quite a lot. Personally I think it's a bit overrated, but it's far from bad.

I'm not sure I would agree that you can just move to Java from the others. Java is... different. I would also bash Java because the main selling point is the cross platform ability, but I have had more porting issues with Java than with C/C++. Also porting issues are harder to fix with when it comes to Java. It's slow and the purely objective way of coding has some drawbacks as it makes some stuff way too tricky to code. It's also closed source and controlled by one company, which is free to charge money for previously free features, which I view as bad for the home user, but a serious hazard for companies. Companies risk ending up with a $10k fee or $50k recoding bill and Oracle knows that. I never understood the hype about Java.

About Python's currency, what do you think?
Python's currency? What's the exchange rate of that? $1 for 2.7 python eggs? :lol:

Personally, I use Perl but I hate it, due to having been indoctrinated by Edsger W. Dijkstra many years ago. (Structured programming.)
I don't like or hate perl. However I don't write something in it unless it's because I write additions to something which is already in perl.

Object-oriented programming has been a completely new set of entries to the race, after Dijkstra's first burst into relative celebrity. You youngsters [brandishes cane here] think OOP is all there ever was. And stay off my damn lawn!
Funny that's not how I remember programming history, at least not my personal programming history. I touched basic in the 80's (never made anything useful), pascal and C in the 90's and I didn't touch OOP until around 10 years ago.
I do say that while C++ is the language of choice for tasks like M:C, I actually prefer C for microcontrollers. C lacks the strict type definition, which can actually be useful when coding something on a level where variables can be pin connections. C compilers are also preferable over C++ (long story short: C++ is way more complex and the compiler can screw up)
Oh and I skipped ASM and machine code, though machine code was for class only. ASM on the other hand can still be useful for certain tasks. There is a set of rarely used instructions which the compiler will never use.

[offtopic]
Now we know Mastrude came back :lol:

All this talk about programming and history makes me think of these videos


The last one has some interesting parts.
23:56 sounds like using the same name in XML more than once (those debugging sessions took maybe 10 hours to figure out what went wrong, but I learned a great deal from it)

Actually the whole talk about tests from 23:56 to 34:20 is quite interesting. He talks about ruby, but I view this part as quite general and I wonder if we can come up with something clever. FAssert() is something in that direction, but still not quite what he talks about. Ideas for such tests are very welcome :)

Also feel free to watch all of it, but it takes an hour. I selected the most important 10 minutes. Well the most important 10 minutes from an M:C point of view.
 
When a native chief offers to become a vassal, both you and he have the offer "become vassal". Shouldn't he show "become vassal" and you see "become lord"?
 
Hi Kailric!

Very nice mod! I've started to follow the development of it now. :)

Have you ever tried to change/increase the range of siege units? It could give some new tactical aspects to the military system.

To my opinion it is a little bit boring that siege/artillery Units only can shoot just into the adjacent field like infantry or cavalry. I've never liked this in vanilla or mods.

Would it be possible to increase the range of siege units so that they get a range of 2 or more?
 
Top Bottom