Frogboy Frogboy

Elemental: A preview of the modding

Elemental: A preview of the modding

image

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:

  1. Making your own maps
  2. Making your own creatures
  3. Making your own items
  4. Making your own buildings
  5. Making your own conversations
  6. Packaging and sharing your mods within the game with others

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.

Tandis_0

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.

228,500 views 60 replies
Reply #51 Top

Yo,Do you guys have more lore?Love the lore that is "Excerpts from The Hiergamenon" but could use a page or two :D i just love lore so would be nice to know more about the World of Elemental...WOE World Of Elemental lol you can make a mmorpg xD jokin look at warcraft 3 was a good RTS till it turned into WoW

Reply #52 Top

Alright, downloaded Python and IDLE and went to the bookstore and got a beggining programming book for python. Though also looking for the anwser to the question 2.6 or 3.1 for the python version?

Reply #53 Top

Quoting XeronX, reply 52
Alright, downloaded Python and IDLE and went to the bookstore and got a beggining programming book for python. Though also looking for the anwser to the question 2.6 or 3.1 for the python version?

I remember the developers said that it wasn't going to use 3.x. Shouldn't make much of a difference, though. 

Reply #54 Top

Quoting vieuxchat, reply 37



Quoting thebest300,
reply 36
I have a lot of modding exp with triggers and mapping, not so much with code and most everything else. Is there a place for me in Python?


Yes, but you'll have a lot of things to learn. Not so hard, but some serious programming skills. (OOP is a good thing to learn)

<_<  I was holding out hope that I would not have to dive into the black hole that is code, even though its part of my programing class. O well, any tips for a new convert?

Reply #55 Top

@the best

You say that you already know how to use triggers, so you know how to use conditionnal thinking.

Do you know how to use variables ? How to use functions ? How to create functions ? Create classes ? etc.

How to learn python

 

PS:

If you want to do hard things, like a total conversion mod, you'll need to learn object-oriented programming. (I didn't see if you can code new events and such sweets). I really enjoyed learning c# with visual studio express, it's sooooo easy to code, and it let you learn a lot of things about OOP.

Reply #56 Top

Things I would like to see for modding

Zero Coding: If mods could be made by simply changing values, that would be great. I understand that this is much more limited than coding, but It could be interesting if you could do many things by only changing values. For example, beign able to create new spells without extra coding would be awesome.

Interface for XML File: I remember making a small mod for CIV 3 and an interesting things was the small program that allowed you to change the values you want. It is much more intuitive to use than to dig in an XML file especially if some fields are foreign keys to other entries.

Modular Combination: I want it to be possible to easily combine mods. For example, I could start a game I add the following mods:

- Extra events

- Different spell groups

- Double the movement speed of all units

- Extra victory conditions.

 

By the way, Ultima IV is a great game, if somebody wan't to make a remake of it using elemental graphics and a combat system a la "final fantasy tactics" (but faster), be my guess. 

Will the engine be flexible enough to create boardgames ? (like chess, go, or Twilight Imperium 3)

That could be an interesting idea if the engine can actually support any kind of board game components: Cards. tokens, pawns, tiles, etc.

Reply #57 Top

Quoting larienna, reply 56



That could be an interesting idea if the engine can actually support any kind of board game components: Cards. tokens, pawns, tiles, etc.

 If this was the case Elemental would be a sort of "Universal" platform for all sorts of gaming styles and age groups and as a bonus it uses an open source code (python).

Seems like a dream( at least to me) would love to be able to set up my PnP campaigns with out loosing that table top feel but be able to choose the real time skirmish mode to keep the young ones (happy, interested and wanting more). "If any one can pull this off successfully (judging by past work and what has been done already with Elemental) is Stardock and its team.

Reply #58 Top

I know squat about programming; I'm more of a hardware techie.  I did learn Basic as a teen though on a C64.

I'm gonna want to learn Python now just so I can mess around with Elemental, see if I can pick programming back up again.  :)

 

Reply #59 Top

I was discussing the Elemental editor with some friends and something came up that I thought would be worth mentioning.

When I (we) are modding on other editors/toolsets one of the most time consuming and (NOT FUN) parts is trying to see what we have "created" in game. Some editors will have a "test" button which fires up the game but minimizes the tool set. It would be nice to having the option of  the editor on one half of the screen and the other half the game so we can test in real time as we go with out having to save game, close editor, open game. play test game, close test game, re open editor, look for all our hand written notes and try to make the changes. Also it sure would be great to have a place to "Pin" notes on the editor so one can have an easy place to put notes such as incomplete script, ideas,text, plots, stories, etc. so that others helping can just look at an area and pick right up where the last person working on it did and know where they left of as well as a common place where that person can "pin" his notes, edits, script, etc.

 

So a hybrid split screen mode that functions simultaneously and a way to pin notes (kind of like Google earth has would be great as well.

 

Thanks

Reply #60 Top

Quoting larienna, reply 56
Things I would like to see for modding

Zero Coding: If mods could be made by simply changing values, that would be great. I understand that this is much more limited than coding, but It could be interesting if you could do many things by only changing values. For example, beign able to create new spells without extra coding would be awesome.

Interface for XML File: I remember making a small mod for CIV 3 and an interesting things was the small program that allowed you to change the values you want. It is much more intuitive to use than to dig in an XML file especially if some fields are foreign keys to other entries.

Modular Combination: I want it to be possible to easily combine mods. For example, I could start a game I add the following mods:

- Extra events

- Different spell groups

- Double the movement speed of all units

- Extra victory conditions.

 

Zero Coding: According to Froggie if you are going to mod Elemental, you won't have to touch Python. IE. you can add new races, creatures, items via modifying .xml files. However more complex stuff -like adding a new economy system- will be done in Python. I am not sure about spells for example, but imo it should be possible to add new spells/effects without touching Python, if those spells are "upgraded"/edited versions of some existing spells... Example 1: Fireball -> You create a spell called Delayed Blast Fireball, via changing some datas in the .xml]. Example 2: Summon X monster -> You change the summoned monster type in .xml -> Summon Y monster. However adding a completely new spell with a completely new effect will require coding skills probably, but I am just guessing.

XML "interface": It would be nice to have. [Civ3 is a good example, yeah..]

Modular combination: Hopefully it will be possible to combine -vastly different- mods. Combining 2 eco system mods is out of question of course. :)