[Feature] Turkic Civilization

Feedback!

First of all, the wording of the UP is very confusing. After playing for a bit I think I figured it out, but it's not immediately obvious what "at peace" and "at war" mean, since we're always "at war" with Barbarians. If I understand correctly, the behavior of the Barbarians change according to whether the Turks at at war with any major civ? But independents don't count? It's a little weird and convoluted, and it's made even more confusing by the fact that Oghuz can attack other civs without being at war. I think it'd be better if the UP did not depend on peace/war status. Anyway, during my game I always wanted to be at war because I wanted the hordes to join me.

Second, am I the only one who gets a python exception at the start of every turn? Sorry, I forgot to get a screenshot or a save, but it happens systematically every turn after the first 10 or so. It doesn't seem to affect the game other than requiring me to click OK a bunch of times.

Third, is it intended that no cities flip in the 600 AD scenario, but all of Central Asia flips in the 3000 BC scenario? Also the number of starting units is superior in 3000 BC. This makes the starting situation in 3000 BC much better. On the other hand, Persia was more weakly defended in the 600 AD scenario (independent cities with archers vs. strong Sassanid Empire with crossbows and heavy spearmen).

Fourth, has anyone been able to get 6% of the world by 900 AD? That seems downright impossible to me. (Then again, these kinds of goals always feel impossible until they don't.)

Fifth, the culture UHV seemed a bit bugged but I think it's the same thing as what was already reported. I didn't pay too much attention.

I only played the early game, but their early game is quite fun! Not sure how to become a mighty Seljuk-level powerhouse, though, it feels capturing cities quickly gets difficult (i.e. when defenders get crossbows).
 
Thanks for the feedback. I'm currently working on the third Turkic goal. I also am aware that the Turks don't start with any additional cities they would flip in 3000 BC in the 600 AD scenario. However assuming they do get the same cities I think the 600 AD scenario is much easier because the world is much more developed and Persia is easy to take. I think I further need to adjust the scenario to suit the Turks more, but the challenge ist mostly designed for the 3000 BC scenario.

Also please be on the lookout for the Python exception and send me a screenshot or PythonErr.log when it happens.

As for the UP, it is intended to encourage you to be at war but also the effect is too strong if you could use it at peace as well. That would only encourage people to amass a strong army while at peace and then attack with it. The way it works now is that you're already on the offensive while you receive a steady flow of reinforcements from the Steppes which I think is fun and thematically appropriate.
 
In my experience, the world is less developed in the 600 AD scenario, but perhaps that depends on whether Sassanid Persia is still around. The "pillage improvements" goal was easier in 3000 BC because Persia was full of improvements, but their cities were much more difficult to take. In the 600 AD scenario, one city that is very difficult to take is Kashgar, which starts with walls and crossbows. Is it intended that it neither flips nor be easily conquered?

The UP is thematically cool, yes. But the condition of being "at war" leads to issues. For instance, if I'm engaged in a conquest of Persia and then Persia collapses into independents, suddenly I'm not "at war" even if I'm still conquering cities. That feels wrong. The solution, of course, is to declare a phony war to some faraway or harmless civ, such as Tibet.

May I suggest rewording the UP to replace "at war" and "at peace" by "during wartime" and "during peacetime"?

And here's an idea to simplify the UP: When attacked, mounted Barbarian units are automatically defeated and, during wartime, will join your armies. (This removes the "cannot enter territory" element.)
 
I meant more developed mostly regarding the Taklamakan part of the Silk Route, where you get cities with cottages on the oases and so on. Persia is also different in that it is easier to take but less developed in the 600 AD scenario which you could argue makes it a wash, but I think conceptually Persia should present more of a challenge to conquer given the historical timeframes. On the other hand it is deliberately easy to take to help Arabia capture it. I don't know how to resolve this problem, maybe Persian defenses will only be buffed for a Turkic HI.

And yes, Kashgar is supposed to flip to you (or start under your control, rather) as are the other cities in the Turkic flip zone.

Your proposal would simplify the UP but would also make the Turks (even if AI controlled) absorb most steppe barbarians. That these barbarians will avoid Turkic territory and go attack e.g. China is an intended element of the UP. It's hard to make the Turks work as they historically did when they are everyone's first line of defense against barbarians.

I'm not opposed to reword "at war" to "during wartime" but can you elaborate why you think this provides more clarity? It sounds mostly synonymous to me.

I also feel there should be a clause in their that prevents the phony wars against lesser powers you mentioned, maybe it should at least be your neighbour. On the other hand that further complicates the rules.
 
Okay, to clarify, in the 600 AD scenario, neither Kashgar nor any other cities flipped/started under my control. I had to conquer Samarqand, Merv, and fail to conquer Kashgar using only my starting stack in Orduqent. I don't think that's intended.

Your proposal would simplify the UP but would also make the Turks (even if AI controlled) absorb most steppe barbarians. That these barbarians will avoid Turkic territory and go attack e.g. China is an intended element of the UP. It's hard to make the Turks work as they historically did when they are everyone's first line of defense against barbarians.
Right, that's what I thought. Maybe Barbarians should never enter Turkic territory, then. I think what I don't like with the current setup is inconsistent behavior of the kind "We won't attack you during peacetime, but if you're at war with anyone, we will, unless of course you attack us, in which case we'll surrender and join you."

To me, "at war" seemed to imply "at war with Barbarians", while "during wartime" feels more general.
 
Last edited:
To me, "at war" seemed to imply "at war with Barbarians", while "during wartime" feels more general.

I`ll add that I too was confused by the initial wording of the UP, although I took "at war" to mean attacking barbarians. That's probably my own exam-boggled mind, and I figured out the correct interpretation two minutes later, but it was a brief moment of confusion. "While at war with a major civilization" is the most accurate phrasing to what the UP actually does, but it's also probably far too long.
 
Okay, to clarify, in the 600 AD scenario, neither Kashgar nor any other cities flipped/started under my control. I had to conquer Samarqand, Merv, and fail to conquer Kashgar using only my starting stack in Orduqent. I don't think that's intended.
Oh I know, when I said "supposed to" I meant that that's how it should be but I didn't take care to make it so yet.

Right, that's what I thought. Maybe Barbarians should never enter Turkic territory, then. I think what I don't like with the current setup is inconsistent behavior of the kind "We won't attack you during peacetime, but if you're at war with anyone, we will, unless of course you attack us, in which case we'll surrender and join you."
I know it doesn't exactly make sense but such a rule would only make it harder to catch them.

To me, "at war" seemed to imply "at war with Barbarians", while "during wartime" feels more general.
I`ll add that I too was confused by the initial wording of the UP, although I took "at war" to mean attacking barbarians. That's probably my own exam-boggled mind, and I figured out the correct interpretation two minutes later, but it was a brief moment of confusion. "While at war with a major civilization" is the most accurate phrasing to what the UP actually does, but it's also probably far too long.
Oh, I get it now. I guess I don't think of barbarians in terms of "at war" but I see what you mean.
 
New update:
- fixed third UHV goal (hopefully finally)
- Turks start with cities in the 600 AD scenario
- reworded Turkic UP description
 
New update: added Turkic capital to 600 AD scenario
 
New update: added Turkic workers to the 600 AD scenario
 
So the problem is that you only get the UP when you are at war with a neighbouring civ but not when you are at war with independents. You want to eliminate frivolous declarations of war against distant civs and can't switch it to at war with independents because then you could always have the benefit even in times of relative peace. Also, you want the UP to reflect having reinforcements from the steppe. What if the condition is not that you have to be at war but that you have to have a certain number of military units in enemy territory (even independent)? Then the precondition that you be executing a war while accepting reinforcements from the steppe is met. It solves the problem of declaring frivolous wars and makes conquering the independents when there are no other neighbours more reasonable.

Also, this way if you lose the necessary number of units and the barbarians cease to join your ranks, it's like they saw your empire as weak and decided to go their own way.
 
That's an interesting concept, but hard to put in rules and explain clearly when exactly the effect would be active. I will look into what's possible.
 
Sadly for me things do not work as intended:
- pillaged improvements are not counted
- mounted barbarians attack me and pillage my land, kill my workers. Only in round 2 three horsemen joined me (at war with persia). Hunnic Horsemen and turkish Oghuz attack me instead.
- from the beginning I got this error message: error in begin player turn event handler bound method...(disappears extremly fast, possibility to read/copy it from elsewhere?)

I may have done something wrong with the branch change:
- I updated the develop branch (via pull)
- switched to turkic branch (via switch/checkout)
- started the mod with the normal .exe

Have I done something wrong?

Thanks for adding new civs to this great mod! :worship:
 
Thanks for testing. Seems like you did everything correctly. Updating the develop branch isn't even necessary, and you might want to try pulling the turks branch to make sure you are on the latest update.

For the error message, do you have logging enabled (see first post in the bug reports thread)? If so, the error will still be in Documents/My Games/Beyond the Sword/Logs/PythonErr.log.

I will test improvement pillaging. Do you have a save where mounted barbarians invade your land? Were you at peace at the time?
 
When I try to pull the turks branch, this happens:

warning: Cannot merge binary files: Assets/CvGameCoreDLL.dll (HEAD vs. 1ba2b65a9be657c940cfbca006a6d162aa1f59c9)
 
Sadly for me things do not work as intended:
- pillaged improvements are not counted
- mounted barbarians attack me and pillage my land, kill my workers. Only in round 2 three horsemen joined me (at war with persia). Hunnic Horsemen and turkish Oghuz attack me instead.
- from the beginning I got this error message: error in begin player turn event handler bound method...(disappears extremly fast, possibility to read/copy it from elsewhere?)

I may have done something wrong with the branch change:
- I updated the develop branch (via pull)
- switched to turkic branch (via switch/checkout)
- started the mod with the normal .exe

Have I done something wrong?

Thanks for adding new civs to this great mod! :worship:

Try updating the turkic branch instead of the develop branch. Switch to the turkic branch, do a pull and select the remote branch turks.

EDIT: crosspost
 
Definitely an outdated version on my side. This happens when I pull origin/turks


From https://github.com/dguenms/Dawn-of-Civilization
= [up to date] turks -> origin/turks
= [up to date] MeuhV1-Platybuilder -> origin/MeuhV1-Platybuilder
= [up to date] Other2 -> origin/Other2
= [up to date] appveyor -> origin/appveyor
= [up to date] cnm-indirection -> origin/cnm-indirection
= [up to date] denominations -> origin/denominations
= [up to date] develop -> origin/develop
= [up to date] dynamic-names -> origin/dynamic-names
= [up to date] epgquota-develop -> origin/epgquota-develop
= [up to date] feature/sync-with-google-sheets -> origin/feature/sync-with-google-sheets
= [up to date] fix-byzantine-bribe -> origin/fix-byzantine-bribe
= [up to date] fix-conqueror-crash -> origin/fix-conqueror-crash
= [up to date] fix-makefile -> origin/fix-makefile
= [up to date] hrcivics -> origin/hrcivics
= [up to date] hrpedia -> origin/hrpedia
= [up to date] hrtechs -> origin/hrtechs
= [up to date] master -> origin/master
= [up to date] pr/173 -> origin/pr/173
= [up to date] python-constants -> origin/python-constants
= [up to date] religion -> origin/religion
= [up to date] religion-spread -> origin/religion-spread
= [up to date] resources -> origin/resources
= [up to date] stored-data -> origin/stored-data
= [up to date] turkic-gps -> origin/turkic-gps
Auto-merging PrivateMaps/RFC 600 AD.CivBeyondSwordWBSave
CONFLICT (content): Merge conflict in PrivateMaps/RFC 600 AD.CivBeyondSwordWBSave
Auto-merging CvGameCoreDLL/CvUnitAI.cpp
Auto-merging CvGameCoreDLL/CvUnit.cpp
Auto-merging CvGameCoreDLL/CvPlayerAI.cpp
Auto-merging CvGameCoreDLL/CvPlayer.cpp
Auto-merging CvGameCoreDLL/CvGameCoreUtils.cpp
Auto-merging CvGameCoreDLL/CvCityAI.cpp
Auto-merging CvGameCoreDLL/CvCity.cpp
Auto-merging Assets/XML/Text/Unique Powers.xml
CONFLICT (content): Merge conflict in Assets/XML/Text/Unique Powers.xml
Auto-merging Assets/Python/Victory.py
CONFLICT (content): Merge conflict in Assets/Python/Victory.py
Auto-merging Assets/Python/StoredData.py
CONFLICT (content): Merge conflict in Assets/Python/StoredData.py
Auto-merging Assets/Python/Stability.py
Auto-merging Assets/Python/RiseAndFall.py
CONFLICT (content): Merge conflict in Assets/Python/RiseAndFall.py
Auto-merging Assets/Python/RFCUtils.py
CONFLICT (content): Merge conflict in Assets/Python/RFCUtils.py
Auto-merging Assets/Python/GreatPeople.py
Auto-merging Assets/Python/CvRFCEventHandler.py
Auto-merging Assets/Python/Barbs.py
Auto-merging Assets/Python/Areas.py
CONFLICT (content): Merge conflict in Assets/Python/Areas.py
Auto-merging Assets/Python/AIWars.py
Auto-merging Assets/CvGameCoreDLL.dll
CONFLICT (content): Merge conflict in Assets/CvGameCoreDLL.dll
Automatic merge failed; fix conflicts and then commit the result.
warning: Cannot merge binary files: Assets/CvGameCoreDLL.dll (HEAD vs. 1ba2b65a9be657c940cfbca006a6d162aa1f59c9)


git did not exit cleanly (exit code 1) (3837 ms @ 23.04.2018 20:58:32)
 
Back
Top Bottom