Wish list to Firaxis dev or next SDK?

SimCutie

Warlord
Joined
Dec 10, 2005
Messages
197
We now have experienced SDK programming for about a month.
You will have quite a question, info you want to know about, or need help from Firaxis on SDK utilization. And future wish list ...
Let's start jot down our request for info on SDK and idea or wish-list for next version of SDK. Any topic will do. If we have enough good idea or suggestion on SDK, we may contact Friaxis and let our voice be heard by them.
Such wish item or new idea are always come and go, So let's write it down here lest we forget it when we will have an oppotunity to accomplish it. This thead can serve as a memorandum or TO-DO list for such case.
 
1. Debug compatible build version of Civilization4.exe excutable.
Current executable will crash if run in debug mode. We need Debug build version of Civ4.exe with nessesary debugging symbol information and linked with debugging Runtime.

2. Font symbol.
My first wish is about font symbol. Font symbol is one of frequently modded item for various MOD. But SDK has virtually no provision for adding or manipulating font symbol.
3. Initialization stub.
Civ4 has many stage of initialization but we can not get our own init fuction be called by Civ4 exe at right time. I need to init my class just before main menu is displayed. XML loading time seems to be bit early. I want execute my init after all civ sub systems are inited but right before main menu is displayed.
 
I too have had trouble with thouse Font symbol thingies, the implementation is very confusing and not at all easy to mod.

Better Debugging is definatly a must, as my Mods grow more complex the lack of Debugging becomes ever more painfull.
 
Amomg some SDK API which is additionally exposed to Python by modder,
If I have to choose only one function that should be added to next version of Civ4 (virgin) DLL should be :
gDLL->getModName() which returns path of curently selected mod.
They should have gc.getDefineSTRING("MOD_PATH") ==> "Mods\<mod-name>\" in python.
Without it, it is very hard to figure out which mod is selected.
It is near crime of gross negligence by Firaxis that they didn't included it in first version of Civ4.
 
As we found out that Game Option and player Option does not work as intended even if we put addinitional option to it, This should be thing we request Firaxis to fix it.
With out proper option, we have to rely on our Custom Option screen which may be not suitable for game-specific or player-specfic option.
 
Email sent to Soren:

Hey Soren,

Some of the guys over at Civfanatics have posted some questions regarding the SDK. If you don't mind providing an answer for these, I'd appreciate it. BTW, I've just copy/pasted from the thread they made so some of the questions are written in that context. :)

1. Debug compatible build version of Civilization4.exe excutable.
2. Font symbol. My first wish is about font symbol. Font symbol is one of frequently modded item for various MOD. But SDK has virtually no provision for adding or manipulating font symbol.
3. Initialization stub.Civ4 has many stage of initialization but we can not get our own init fuction be called by Civ4 exe at right time. I need to init my class just before main menu is displayed. XML loading time seems to be bit early. I want execute my init after all civ sub systems are inited but right before main menu is displayed.
4. I'd like to see a bit more power over the inputs to the graphics engine - at the moment it's a bit restricted.
5. Amomg some SDK API which is additionally exposed to Python by modder, If I have to choose only one function that should be added to next version of Civ4 (virgin) DLL should be : gDLL->getModName() which returns path of curently selected mod. They should have gc.getDefineSTRING("MOD_PATH") ==> "Mods\<mod-name>\" in python.
Without it, it is very hard to figure out which mod is selected.

Thanks heaps Soren.

Dale
 
SimCutie said:
As we found out that Game Option and player Option does not work as intended even if we put addinitional option to it, This should be thing we request Firaxis to fix it.
With out proper option, we have to rely on our Custom Option screen which may be not suitable for game-specific or player-specfic option.

This used to work. I'll look into it and find out what broke. :)

Dale
 
Well, some bad news about the setup screens. They've been reverted back out of python and into the exe. Gone forever to adjustment. :(

I'm looking into other spots we could put the window. IE: while the map is being setup, our options interface pops up over the top. It's before the game, and in a spot where the user is usually waiting (or outside having a ciggie like me ;) ).

Dale
 
I suggested something like that in another thread. Ideally it should all happen while the loading screen is up, and it should certainly come before the dawn of man screen comes up. I think we should be able to set a python trigger to load a screen of options at this stage, but I'd have to check.
 
Yeah should be able to pretty easily.

BTW, I checked an old version of the SDK and game options were set in CvGlobals and parsed through to the exe. Now, I'm not even 100% certain that adding game options in CvEnums.h does anything useful. When I added a game option there I couldn't click the OK button to start a game. Wierd. But I'll keep looking to see if we can have invisible game options.

Dale
 
I would like the possibility of adding new diplomatic treaties. At the moment it is impossible.
 
Hmmm - I haven't been able to find the files which control it. Most of the other interface screens are in the Pyhton/Screens directory, but there doesn't seem to be one for the diplomacy screen.
 
sorry, but I found the pointer to the function for the interface:

Code:
class CvDiplomacy:
	"Code used by Civ Diplomacy interface"
	
	def __init__(self):
		"constructor - set up class vars, AI and User strings"
		if DebugLogging:
			print "Launching Diplomacy"
		
		self.iLastResponseID = -1

		self.diploScreen = CyDiplomacy()

diploScreen must be the interface, but where is the CyDiplomacy() function defined is the question. At least we know what we are looking for.
 
NUM_GAMEOPTION_TYPES and NUM_PLAYEROPTION_TYPES are hard-coded in
Civ4.exe. It is not just matter of Option screen display, but internal data space allocation. We can add few (less than 4) options , but if we add more than that, the Civ4.exe will crash intermittently. Make it varible number in Civ4.exe or at least, allocate enough space for it so that it will not crash when we add 10 options max. for each types of options.
 
Top Bottom