Sometime after July 4th we expect to have the Elemental modding beta. Modding isn’t something that we plan to work X weeks on and then finish. Rather, the modding budget involves full time Stardock developers assigned to it for the next 18 months.
The modding beta will comprise making available the core tools that modding will need. Namely:
This, however, is only phase 1 of modding. Our current strategy for modding will be to work with active modders to see what sorts of things they need us to expose to modding that we haven’t thought of.
The way things will be exposed (as previously mentioned) will be via Python and XML. It will be through Python and XML that players will be able to make their own AI, change the economics and balance and eventually create their own games.
I’ve mentioned in past that I plan to take time off after Elemental ships to focus on modding on my own time. I plan to use Elemental to make other games that I’d give away to others to help build up the mod ecosystem and help learn first hand what sorts of engine APIs need to be exposed. Temple of Apshai and an Ultima IV-style game are things that would be on my list.
The above is a video of Ultima IV. I am no artist so I would probably stick with that “style” of graphics.
I would imagine other modders would use Elemental to make a literal Master of Magic style remake or what have you.
Is Modding hard?
It depends on how much you want to do. The key tools are included with Elemental. The ability to make a map/level and then load it from your mod and load additional maps/levels in your mod and go back makes it relatively easy for someone to make “dungeons” or have cities be a simple icon that when they go into expands into a full blown city.
The character edtior is obviously a major part as well since you will want to be able to create people and save them.
If you look in your documents\my games\elemental\units you can see your units right there. There is an icons sub directory where the art for your unit is generated as a .PNG.
This unit is one I made and is just saved as a .PNG that you can use.
And of course, the item and building editors are very important since you’ll want to create your treasures and weapons and rings and potions and what not along with your castles and shops and whatever else.
How does Python and XML fit in?
We picked Python because it’s the modern-age version of BASIC. When my generation learned programming, we did it in BASIC. Nowadays, it’s ridiculous how much work it takes to get up and going with programming. I tried to get my son into programming and quickly realized that it’s far too much work to do anything.
With Python you get a very easy interpretative language. Easy to learn. By exposing APIs from Kumquat (our game engine that includes the 3D graphics rendering) people can quickly put “stuff” on the map.
Want to make a mod that’s a new game? You would create your guys with the character engine, the level with the map editor and then use Python to load up the guy and pick which animation you want and run him around based on mouse or keyboard input (all provided by Kumquat).
Our style of XML formatting is kind of old school and we admit it. We use it not for programming but for data structures.
If you look in games\data\English you can see how data driven things are (basically everything is stored in XML, no binaries).
In the current betas, there’s no modding allowed because we stream the data from our servers so that we can constantly tweak them without requiring a download. This will be taken OUT of the final version of the game since we don’t want to require an Internet connection to play the game. But during the beta, it’s a big time saver for us.
Post Release
During the modding beta, we’ll be selecting promising mod projects and assigning development resources to exposing Kumquat APIs (written in C++) to Python so that modders can do interesting things with them. We think it makes more sense to adapt ourselves to the needs of the modders than for modders to have to adapt to us.
I am still kinda confused. Example: Do I have to know Python if I would like to add a new race[faction]/new creatures, or it can be done via editing .xml files?n order to add a new race to the game for example?..or I can do that via editing .xml files?n order to add a new race to the game for example?..or I can do that via editing .xml files?n order to add a new race to the game for example?..or I can do that via editing .xml files?n order to add a new race to the game for example?..or I can do that via editing .xml files?
If you're just modding Elemental, you don't need to know Python.
But if you want to make a new game using Elemental, you would need to know Python.
I can't wait for the modding beta
This gives me great hope for a Warhammer 40K mod. Your army icon moves onto the city icon, and suddenly its a massive army pouring into a massive city ... prepping for a "Stalingrad" battle Imperial Guard style.
How much can a map be randomised? Can maps be procedureally created in real time while the game is actually being played? Can diffrent maps be used at the same time - say 2 maps up and down like Afterlife or an alternate world where things are different but you can only play on one map at a time?
Wow been a long time since I have seen a C64. Reminds me of playing Buck Rodgers and DND turn based boxed games on floppy disks. And for you kids out there I mean real floppy disks, not those 3.5 hard ones
And ahh basic also. How many of you programmers started by writing the guess the number between 1-100 program.
This is sounding pretty darn great! So is there going to be a list on the main menu that has Mods on it, and then when you enter that menu option and turn on some mods, it automatically loads up the mods so that if one of the mods changes the main menu list and background, the player will see it changed right away when the player leaves that mod list screen and returns to that main menu?
You mean extra planes a la MoM? Dungeons and cities like if it was some kind of RPG???? If that's true, you don't do it for Elemental due to lore/resources? Man, extra planes/dungeons/cities/secretlabs... Argh! Must... not... go... back... to... the... drawing... table... yet...
Does that mean that the data of the unit saved like in Spore inside the pic? Sharing creatures and other stuff in such way was the most cool stuff since sliced bread.
http://www.c-jump.com/ What? It's an interesting concept at least.
One of my biggest worries, being a newbie as I'm in modding terms (fiddling with textures and being a scavenger of the copy&paste doesn't count much... at least now I'm a code monkey unlike in the past), is that of AI. Anything new added to the game (be them new skills for tactical combat, a secondary source of magic, a different system to build cities...) needs to be correctly used by the AI. I read all your journals, Frogboy. I love when you share with us all that about how you work with the AI. And I'm really impressed and daunted by it. But i want to learn. If/Else estructures aside, how many tons of maths are involved to calculate things*? Some nice "Hands on approach to learning to mod the AI in Elemental"? It's for the good of the videogame industry! Really!
* I ubermegaultrasuck at maths... and physics, and chemistry, and language, and...
Awesome, thanks for the clarification!
At least release DTDs for each type of XML file. It will save us a lot of work to validate our mods.
Also a question:
Considering that AI is a big focus of the game, will the core AI source code that ships with the game, be accessible in python code?
Has anyone in the team tried using IronPython for a test mod to see if it works?
I am really happy to see this post. It just confirms what I've been told by others about the Stardock team *top notch *. I am really looking forward to both the game and modding in Elemental. I sure hope (if at all possible) the interface for the modding will be user friendly and not require a coders mind to find my way around.
One of the things that I have always found missing in other game modding is the ability to put class and level restrictions on custom items at the same time at a pre-determined level or condition.For example if I wish to make a ring catered to an elf archer most mods with have a section so that one can put a restriction so only archers or/and elves can use, however if I wish to make it so only a level 10 or above elf archer can use the item I find I have to code it all from scratch and well... I am just an average Joe what can I say. Will python (once I understand it) allow me to do this or will this already be made available in the standard Elemental mod maker? one other thing along this lines is the ability to edit hard coded spells (Magic) VERY useful when creating custom races and classes and monsters. Example if there is a spell that heals in elemental and I wish to make it slightly different say call it healing mist and will only heal as many HP as the caster has in heal skill rank will these kind features be available to do with out having to code it all from scratch using python?
I also would like to see the dynasty system have the ability to be applied to other things such as deities or clans or guilds etc. Even better some easy way to incorporate such system so one can determine which weapons, gear and magic can qualify and aspire to use as they level. *Vision* Great magic stiff usable only by Draconian bloodlines however to unlock its arcane magic one must be trained in the art of arcane magic and that is an inherit trait of the Elven race so a union between an Elf and a Draconian is needed in order to produce an offspring capable of wielding such weapon and tapping into its magic. The cool thing about all this is that it would never be a sure bet that you would succeed because for what I read about the dynasty antilogarithms they are supposed to be very well expanded and complex.
I guess, please make it so that the tools in the mod/tool set will be as detailed, expansive and variable as infinity(if possible) so "us" with an imagination that surpass the cosmos can create, create, create, create, and never run out of new and interesting material/ideas that can be implemented to the Elemental platform with out the daunting proses of coding and scripting. "Wizards are my friends in modding".
Thanks
Frogboy-
Would it be possible for us to get an example model file so that we can get an idea of dimensions etc. in our 3D programs (Maya, etc.) - This would be a real help for those of us who are already planning our projects (between games of Elemental and washing out the blood from all the eye-bleeding of course )
I've been lurking on this forum for a while, but this is the first time I've felt moved to comment. My big modding question is: can we mod AI behaviors? Adding new creatures, items, and buildings are all fine and dandy, but they are pretty much useless unless the AI can use them effectively. I know this is a very tricky area of programming expertise: if you look at any open-source or freeware strategy game, they always founder on writing the AI. Writing even a semi-competent AI is hard.
Strager - let me see what I can do.
Based on past experience with Stardock I would say, that yes, the AI will be able to use new modded items correctly. I believe this is a key factor in the design of elemental. At least at one point they were going to allow the player to choose which community created items would be included in the creation of the game world. I don't know if that has changed at all, but I know that having an AI that uses user created items, buildings, etc. would have to be a priority based on the modding plans described by Brad above.
Great news, Frogboy. For the first time in quite a while I'm excited about Modding again.
Is it my correct understanding that such things like: Map Editor, Character Editor, Item Editor, Building Editor, Conversation Editor ... is all possible without any skills at modeling OR manual XML modding?
(It would seem probable that a creature editor would need modeling and animation skill-sets)
One thing that SEEMS to be the case (correct me if I am wrong), is that finding the correct animations for a certain set of Models/Art assets can be some-what of a hassle. Is it possible that you are planning on some sort of optional, auto-animation system? That is, crude animation given to a model based upon several elements of said model (or character). Probably not ... but if there could be several default animations that are some-how "easy" to attach onto models, that would be really cool.
AKA a default bipedal animation (probably already in), a default lumbering quadruped, a default nimble quadruped, a default arachnid animation, a default 6-legged (bug) animation, a default flying animation (two legged), and a default flying animation (4 legged). Perhaps as well a default swimmer animation (2, 4, and 6 legged) without tail, and a default swimmer animation (2, 4, and 6 legged) WITH a tail, and a default burrower animation (4 and 6 legged).
These are listed primarily in order of increased difficulty (I would think) ... and obviously you will have relatively hard-coded animations for the various weapons ... I suppose the presence of these animations, and a way for it to be "relatively" easy to switch various animations in and out for a given model. (Especially if there is some way to simply attach the animation file directly onto the 3D-model art asset, and potentially a "Preview" of what it would look like, both close up and zoomed out to battlefield scale)
I currently have no practical skills or knowledge about these things, however IF the creature modeling editor is some-how a function of the game, or IF I learn how to be a modeler, (or to other potential modelers) I think such a thing would be useful.
That being said, is the Building editor, Item editor, and Map editor really an in-game function that is simple to use? That would be pretty cool (obviously several ways to edit things, with the more complex changes requiring more knowledge). I mean, most games had a pretty simple map editor, however Scenario Editors, Quest editors, ect all got quickly confusing :/ ... to the point where it seemed just as likely to simply learn to program (for all I knew).
This is normally the case, yes. I was thinking though that if they can somehow give us the ability to mix and match "Body Parts" like they did with "Starship Parts" in the ship editor in GalCiv 2 that we'd be able to make custom creatures and races pretty easily. The hardest part for them to be able to do this for us would most likely be the same challenges the makers of Spore faced when allowing creatures to be made. Spore does show us how-ever that it is possible to do. Perhaps Stardock is giving us a more basic version of something like that to work with.
For Basic modders this is fantastic news if that's the way they're going to do things. The hardest part about making more Advanced Mods is normally making new 3D assets and animations. In comparison Scripting can normally be learned a lot easier or even copy/pasted from another Script or part of the code.
From the one pic I've seen the building editor looks pretty simple. Well, as simple as building space ships in GalCiv 2 was.
I loved designing ships in GalCiv 2. It was one of the biggest draws to the game for me. From a programming perspective their "Building Editor" is a self contained 3D Modeling program running through the game's Engine.
Will it be possible to mod with C++ instead of python? Personally I hate python, but I understand its flexibility.
Its my understanding that C++ effects the more integral game mechanics ... the sorts of things that are "hard coded" or hard to change.
However, it seems to me that quests, and most objectified assets are either XML or Python ... at least if you want it to be at-tall modular. If, instead, you mod with C++ even the small details (if such is possible) it is my understanding that it will function as an entirely different game, and thus largely incompatible with any code other modders will make in XML or Python. That being said, I suppose you could create a sub-species of modders that code everything in C++.
ALTERNATIVELY ... you could work with people that know XML and Python, usually for a gigantic project that might actually need C++ development. In that case, you could provide the C++ skills and they could handle all the XML and Python details.
@ Raven ... I too rather enjoyed the Ship-Building in GalCiv. My first game at Gal Civ II was almost entirely making Dragon-Ships, and newer, bigger, and better Dragon Ships.
By the end of that game, I accrued some rather large "Dragons" for my space-fleet.
I really look forward to getting our hands on some of the tools.
I know I was trying to replace some of the assets on my own, but it wasn't working out to well because I don't have havok anything in my animation files (may have been other issues, but that's what I encountered most apparently)
man, if somebody made an ultima 4 mod in elemental, that would be pretty darn keen.
Excuse my possible ignorance (I know almost nothing about Python, except for a quick 1 minute trip to Wikipedia just now) but it looks like Python is compiled at run-time and interpreted by a virtual machine. Meaning that no, you won't be able to use any other language other than Python. The game will "read" any Python when the game is loaded and then manage the execution of all of the Python a la virtual machine.
This is awesome!
When you say mod Elemental is that like a custom campaign that you can load through the Elemental interface? But if I wanted to create a more stand alone game I would have to dig into Python?
How much and what quality of documentation can we expect?
Recently, I was rather disappointed with Torchlight's documentation. While back in the day Dungeon Siege 1 was pretty easy to mod and scripting was explained well, their documentation and tutorials covered every step from A to Z. A lot of the Torchlight documentation is missing a step or out of date with the editor version.
Will Elemental use Python 2.6.5? Or 3.1.2 (or whatever version of 3 is current at the time of release)?
Personally, I'm excited, I love Python and it was the first language I really learned to program in. Not to mention it has the advantage of being a fully developed, versatile and feature rich scripting language rather than a handicapped game specific language.
There are many great features available to you once you register, including:
Sign in or Create Account