Modding Custom AI Bot
I am wondering to what extent it is possible to write entirely custom AI for bots using the SDK? I am not talking about how difficult it is (I have programming experience and am actually considering this for a Bachelor’s thesis project, so I know what it involves algorithm-wise) to do… I’m just wondering to what extent the scripting language physically allows to do this.
From what I’ve seen browsing the wiki, the language seems to support quite a lot of features compared to other moddable games (such as Skyrim)… is it correct that I can create pretty much my own classes, datastructures, etc.?
And what can I expect performance-wise? How fast is the language?
From what I saw around the forums I think it’s not yet possible to upload scripted mods to the workshop, but that is no problem for me. I’m mainly interested in being able to get something running on my own machine for testing/experiments, being able to upload is no necessity.
I am no programmer myself and I’m not sure how much my answer will be of help, but Chiv SDK (based on Unreal engine’s SDK) should provide you the same possibilities as standard Unreal Development Kit. It uses its own language, UnrealScript. There are some AI-related files in <gamefolder>/Development/Src/AOC/classes with AOCAI prefix, so maybe examining these will help you determine if the language is good enough.</gamefolder>
I guess it is Possible…sure is a lot of work! I’ve manage to create a new game type extended from AOCCTF. Just remember there is AI Bot code everywhere in the code. If you want to see where. Get UncodeX and set it up in setting to the SRC folder inside Development. Have to rebuild the tree …then you can do a complete search for any class or better yet any word inside any Class. You will how extensive/ how many classes have AIbot code.
but Chiv SDK (based on Unreal engine’s SDK) should provide you the same possibilities as standard Unreal Development Kit.
Not true, and it’s not even a matter of abstraction.
You are limited in several ways in Chivalry’s SDK. For one, you are unable to load your stuff outside of a Gameinfo subclass, which means you also are unable to alter the front end code (menus, etc).
TBS’ native code is also out of your scope, and most of them don’t even have documentation.
As for the language itself, Unreal Script is horrible (good thing UE4 will drop it). It doesn’t know whether it wants to be a high-level general purpose language or a high-level glue language.
Considering the fact that it lacks certain features that you take for granted even in lower level languages such as C++, it fails as a general-purpose language. Hell, sometimes it takes a single line of C to do a certain job, while it takes 10 to do the same in Unreal Script.
Since only fully licensed projects have access to native C++, it also fails as a glue language.
Data structures can be created using classes or structs (which unlike C++, are not classes in Unreal Script, they are more akin to C structs).
What you want to do is doable. However, it’s a big waste of time as there are better things you could do with the SDK.
Moreover, you don’t see people developing code modifications right now, that’s because TBS killed it with the lack of mutators, autodownload and a very long release time which provided us with nothing that we hadn’t in Beta already.
You SHOULD consider using another game with a proper SDK for a thesis though. Source SDK 2013 is pretty nice and you can work with a general purpose language (C++).
Alright thanks for your comments :)