A big question about SDK

boneys26

BTS Play session tester
Joined
Nov 24, 2005
Messages
839
Location
Coventry, England
Ok this isn't another thread asking when its comming as theres about 10 others any way.

my question is when it does come and modders start using it (hell i just got
3dsmax and I aint got a clue:confused: :lol: ) how easy will it be to add the units that people make? I know its a whole new thing with the SDK as you can change almost anything with it. So will it make it alot harder to add units or will it be about the same?

Also is anyone working on a Tutorial for it yet? as there has to be someone in here that knows all about how its going to work. isn't there?:sad:

Any way just thought I'll ask
 
It won't make any difference unless you are using the SDK to alter the way the xml works.

The SDK is just lines of commented c++ code. That's how it's going to work :p. I'd hope that somebody writes a brief rundown of what can be found where in it, though it may not be neccessary. If you don't know c++ it'll probably be quite hard for you.
 
boneys26 said:
Also is anyone working on a Tutorial for it yet?

Don't count on it. If you're an experienced programmer, you won't need it. If you're not, no amount of tutorials will likely make you get much mileage out of the SDK (other than by using other people's work). Using the SDK will be HARD and it's not intended for inexperienced users. If really you want to work with the SDK, become an experienced programmer first. (Tip: start with Python.)

The Great Apple said:
I'd hope that somebody writes a brief rundown of what can be found where in it, though it may not be neccessary.

It's not, really. Might still be useful if someone did it of course (don't look at me, I have enough on my plate as it is), but the code is well organised and pretty much speaks for itself (providing you're a C++ coder obviously).
 
So, is there any type of Windows interface on a app that lets you create an events file, develop a scenario and things like that? Or does anyone wanting to create or simply edit a scenario have to go out and learn python and work on the edits in a text editor?
 
Locutus said:
Don't count on it. If you're an experienced programmer, you won't need it. If you're not, no amount of tutorials will likely make you get much mileage out of the SDK (other than by using other people's work). Using the SDK will be HARD and it's not intended for inexperienced users. If really you want to work with the SDK, become an experienced programmer first. (Tip: start with Python.)



It's not, really. Might still be useful if someone did it of course (don't look at me, I have enough on my plate as it is), but the code is well organised and pretty much speaks for itself (providing you're a C++ coder obviously).

Well thats cleared a few things up for me any way as long as the mods are just as easy to install then thats fine :goodjob: its took me 2 months to get used to xml so next I'll try the python (if only i can get my head round 3dsmax first tho :( ) lol got everything i need i think. notepad ++, 3dsmax 7 , just need a program for .dds thanks guys:crazyeye:
 
wotan321 said:
So, is there any type of Windows interface on a app that lets you create an events file, develop a scenario and things like that?
No, though I think one is being worked on by the community (I'm not certain)
wotan321 said:
Or does anyone wanting to create or simply edit a scenario have to go out and learn python and work on the edits in a text editor?
Yes, that's it.
 
The Great Apple said:
It won't make any difference unless you are using the SDK to alter the way the xml works.

The SDK is just lines of commented c++ code. That's how it's going to work :p. I'd hope that somebody writes a brief rundown of what can be found where in it, though it may not be neccessary. If you don't know c++ it'll probably be quite hard for you.

I'll start posting sample code after the SDK releases just like I have for python. Personally I think thats the easiest way to learn, although I know different people learn in different ways. Hopefully it will help get people up to speed without to much frustration.
 
Just being able to combine other people's code and putting them into your mod is all I'm asking for. :)
 
wotan321 said:
Or does anyone wanting to create or simply edit a scenario have to go out and learn python and work on the edits in a text editor?

Yes, you pretty much have to learn it yourself (although there's loads of good tutorials and the like out there and there's always people in these forums that are willing to help, so you're not completely on your own). However, keep in mind that there's a big difference between Python and XML. XML allows you to mod anything you could mod in Civ3 and then some, while it's not really harder than a point-and-click editor. It's different, it may be a bit more work and it may have a slightly steeper learning curve, but it's not harder to do. Anyone who can read and write can mod XML files. Also, I'm sure someone will at some point in the future develop a point-and-click editor as well. That may just take a while.

Python is a bit harder. I do think that almost anyone who wants to do it can learn it, but it will take some time, it's something that requires actual skill, contrary to XML modding which an 8-year-old can do really, you just have to take some time to get used to it. On the flip side, Python is obviously much more powerful than XML.

Kael said:
I'll start posting sample code after the SDK releases just like I have for python. Personally I think thats the easiest way to learn, although I know different people learn in different ways. Hopefully it will help get people up to speed without to much frustration.

Yes, sharing your code and experiences is indeed an excellent way to learn, and in the long run can turn novice C++ coders into people who can actually produce meaningful SDK enhancements of their own. But that takes a lot of time, much more so with than with Python.
 
The Great Apple said:
It won't make any difference unless you are using the SDK to alter the way the xml works.

The SDK is just lines of commented c++ code. That's how it's going to work :p. I'd hope that somebody writes a brief rundown of what can be found where in it, though it may not be neccessary. If you don't know c++ it'll probably be quite hard for you.

I expect the same thing about the code, though a brief rundown (a couple sentences) in English on each C++ program would likely save a lot of time.
Now, are you sure this is exactly what we are getting, because you have seen the code and are working with Firaxis, or have had direct conversations with them, or are you making some educated guesses?

Like I said, I expect the same thing, basically by reading all the various posts and interviews with Firaxians, but I am wondering if you are one of the people beta-testing this.
I would guess Kael may also be one.
You might have an NDA that precludes you from even saying.
 
I_batman said:
Now, are you sure this is exactly what we are getting, because you have seen the code and are working with Firaxis, or have had direct conversations with them, or are you making some educated guesses?

Like I said, I expect the same thing, basically by reading all the various posts and interviews with Firaxians, but I am wondering if you are one of the people beta-testing this.
I would guess Kael may also be one.
You might have an NDA that precludes you from even saying.
Nope, I'm not. There are people who are, but not me.

Firaxians have said on several occasions that that it'll just be commented C++ code. The people who have mentioned having it have, while not saying it directly, implied this.
 
The 'documented' C++ code is a bit overstating things, there's not a whole lot of documentation in it (that's not to say there's nothing at all, just not too much of it) -- but as I said, the code is very well organised and the algorithms for the most part not horribly complex, you don't really miss it. Or at least I haven't.

Now, are you sure this is exactly what we are getting, because you have seen the code and are working with Firaxis, or have had direct conversations with them, or are you making some educated guesses?

Not TGA, but I have been a tester since the beginning and also worked as scenario designer during the development of Civ4, as such I've had first-hand access to the SDK for almost two years now. But the information TGA has is not exactly a state secret, Soren and other programmers (and to a very limited extent myself and other testers) have in various interviews and forum posts and stuff told people what to expect, so his information is accurate.
 
Locutus said:
The 'documented' C++ code is a bit overstating things, there's not a whole lot of documentation in it (that's not to say there's nothing at all, just not too much of it) -- but as I said, the code is very well organised and the algorithms for the most part not horribly complex, you don't really miss it. Or at least I haven't.



Not TGA, but I have been a tester since the beginning and also worked as scenario designer during the development of Civ4, as such I've had first-hand access to the SDK for almost two years now. But the information TGA has is not exactly a state secret, Soren and other programmers (and to a very limited extent myself and other testers) have in various interviews and forum posts and stuff told people what to expect, so his information is accurate.

I have worked on a fair bit of code before, mostly in university, but have seen that a decent program will have a few lines of comments at the beginning, stating the general purpose of that piece of code, and what the input and output variables are and their purpose.

It does not even sound like we will get that.
 
I_batman said:
I have worked on a fair bit of code before, mostly in university, but have seen that a decent program will have a few lines of comments at the beginning, stating the general purpose of that piece of code, and what the input and output variables are and their purpose.

It does not even sound like we will get that.

No, for the most part you won't, but then again, university-level coding is a looong way removed from real world coding. When it comes to comments, university programs usually require you to be anally redundant. E.g. if you have a function int MyClass::getUnitStrength() { return iUnitStrength } you're actually expected to document that -- anyone who speaks English instantly understands that, never mind if they know the first thing about programming. In the real world, comments are only used to provide additional information, stuff that's not obvious from the code. So the clearer your code, the less comments you need.
 
I spent some time trying to document the main game objects (e.g., units) and their corresponding AI objects. It's not up to professional standards but I'll post it after the SDK is released.
 
Locutus said:
No, for the most part you won't, but then again, university-level coding is a looong way removed from real world coding. When it comes to comments, university programs usually require you to be anally redundant. E.g. if you have a function int MyClass::getUnitStrength() { return iUnitStrength } you're actually expected to document that -- anyone who speaks English instantly understands that, never mind if they know the first thing about programming. In the real world, comments are only used to provide additional information, stuff that's not obvious from the code. So the clearer your code, the less comments you need.

Agreed, but in the commercial world, I HAVE seen a lot of crappy coding,

True, in university they want every line commented.
But conversely, the clarity you gave as an example is extremely rare in commercial coding.
The reality is somewhere in between, hence the need for a couple lines at the beginning of a program explaining its purpose.
 
Locutus said:
The 'documented' C++ code is a bit overstating things, there's not a whole lot of documentation in it (that's not to say there's nothing at all, just not too much of it) -- but as I said, the code is very well organised and the algorithms for the most part not horribly complex, you don't really miss it. Or at least I haven't.

Not TGA, but I have been a tester since the beginning and also worked as scenario designer during the development of Civ4, as such I've had first-hand access to the SDK for almost two years now. But the information TGA has is not exactly a state secret, Soren and other programmers (and to a very limited extent myself and other testers) have in various interviews and forum posts and stuff told people what to expect, so his information is accurate.
So am I to understand that as far as tools are concerned, the 3ds max plugin and the NIF viewer is all we're going to get, and the SDK will be all about the C++ code? No import plugin, no animation viewer, no UI dev kit, nothing of that nature?
 
I_batman said:
Agreed, but in the commercial world, I HAVE seen a lot of crappy coding,

You couldn't be more right there! Of course, that's true for the academic worldas well, crappy coding is everywhere :(

But conversely, the clarity you gave as an example is extremely rare in commercial coding.

That's not quite true. Often a lot of code is easy enough to read, but just crappy in quality. For one thing, easy-to-read code usually means unoptimised code and reversely optimised code is usually unreadable. If on the scale of million lines of code you don't optimise at all, you probably take a big hit on performance. And let's face it, when it comes to performance, Civ4 isn't gonna win any awards (although a lot of that is probably not in the SDK but in the graphics engine). More importantly, memory leaks are in my experience the #1 cause of software problems, most C++ code is rife with them. Clarity of code by no means guarantees absence of memory leaks (although it does make it easier to track them down if you want to, but often it's more of a time/money issue than anything else).
 
Rabbit said:
So am I to understand that as far as tools are concerned, the 3ds max plugin and the NIF viewer is all we're going to get, and the SDK will be all about the C++ code? No import plugin, no animation viewer, no UI dev kit, nothing of that nature?

Yes. But this is not news. Or at least it shouldn't be... People are expecting the weirdest thing from this SDK. I always knew it was a poorly chosen name (as did Soren), but I never figured it would be this bad...

But UI devkit? What were you expecting there? All the UI code is already right there in the Python folder, AFAIK Firaxis didn't use much in the way of external tools... Same for animation viewer, I know absolutely zero about graphics but I would assume 3D Max has all the animation viewers and other graphics tools you could ask for, that's what Firaxis used (presumably -- again, graphics n00b here).
 
Back
Top Bottom