Brad Wardell's site for talking about the customization of Windows.

image While a lot of Stardock’s development team has been interfacing with Gas Powered Games to continue to improve Demigod, the Elemental team continues forward.

Now a couple of things about Elemental that should be made clear:

  1. Elemental will be a single-player focused game.  It will have multiplayer but most of the development time will be spent on single player.
  2. Elemental will have a story-based campaign. While Sins of a Solar Empire and Demigod do not have story-based campaigns, it’s important to bear in mind that Stardock doesn’t develop those games. Galactic Civilizations II and its expansions all have story based campaigns.
  3. I don’t like traditional story-based campaigns.  I.e. we are not going to do a scripted campaign but instead tell the story through the campaign game that will play a little bit like Defender of the Crown (incidentally, designed by my friend Kellyn Beeck, VP of BizDev at Gas Powered Games).

Now, with those 3 points out of the way, let’s talk about modding.

In Elemental, we are building an engine that we are then “modding” into Elemental. The idea is that if we approach the game in that way, the game will, over time, become flexible enough so that players can mod it into all kinds of different land-based, turn-based games.  If we get our way, a modder could take Elemental and make RISK, or a Lords of Conquest game or all kinds of other things like that.

For those of you not familiar with modding let’s break this down into its elemental (no pun intended) parts:

  1. You have asset creation. That is, the ability to make things you can see in the game.
  2. You have item creation. That would be spells, armor, weapons, etc.
  3. You have resource creation. That would be everything from iron ore to magical gems to wood.
  4. You have gameplay scripting. We are using Python and that is where the rules of the game itself are modded.
  5. You have the AI scripting.  Again, using Python, that is where the AI behavior is modded.

For items 1, 2, and 3 you will have the built in modding tools (early version pictured above). What you see above is where the modder can create a particular tile in the game. Maybe it’s a dungeon. Maybe it’s a going to be a city improvement. Maybe it’s ruins on the map.  Who knows.

The plan is that players will be able to save these creations and post them to share with other players.  When these creations are saved, they can choose what “mod” they go with.  Elemental (for instance) would be the default choice that your creation could be used with.  But if someone made a different game mod, they could save it there as well.  That way, a mod could continue to be improved over time by the community.  Players would continue to use the bestiary (you’ll see that late Summer) to choose which mods they want to make available for themselves. 

For items 4 and 5, how flexible this will be will largely depend on time.  Since I code the AI in Stardock games, I’ll have to be careful to make C++ APIs in the game that are fairly generic that I can then call from python scripts. I don’t know Python right now so there will be a learning curve.  Users will be able to mod the scripts as they see fit for single player.  In multiplayer, the scripts will come from our servers in order to make sure everyone is playing the same game (it avoids all that desync pain you see in games when someone has modded something and forgotten). 

So that’s the direction we’re going.  Now, bear in mind here, what I’m outlining here is what are goal is. These aren’t “promises” because as with anything, economic reality may come into play.  But so far, things are going pretty well.


Comments (Page 4)
5 PagesFirst 2 3 4 5 
on May 02, 2009

Wee, Python ! You have me on board !

This sounds very interesting, especially that you can mod stuff like AI and resources. Higher level stuff.

As for multiplayer, I perfectly understand that focusing on singleplayer is a sacrifice from design point of view, and respect that. But please make it possible to mod multiplayer. By modding multiplayer, I mean please allow to run modded games on your multiplayer servers. Dominions3 developers are very active and even now continue to add new nations, items etc, but they do so with little regard to balance. The result is that the game is very rich in terms of lore and unit/item/spell variety, but suffers from balance issues. So the devs gave players ability to mod a lot of it, and it helped. But it's not possible to fix fundamental issues this way. You can only tweak unit stats, add or remove abilities, add/remove/change items, spells etc. Hopefully Elemental will allow more freedom.

If you outsource multiplayer balance and design to modders by giving them tools and allowing modded games on your servers, your game being focused on SP and balanced for it is a non-issue.

on May 02, 2009

Cool, I'm a software developer and while Java is my strength, I've looked at enough languages I think I can handle Python. 

A favor to ask of Frogboy and the dev team. In the beta, have a readme or something that says how to start Elemental in debug mode such that I can attach my debugger and set breakpoints in the Python code. It's something you'll almost certainly need to do anyway during dev and it'd give folks like me the chance to actually dig into problems in the Python scripting and find (perhaps even fix) issues.

Maybe that's a no brainer to do in Python. I know in Java I have to start the executable in debug mode so I can attach my debugger. I'm assuming Python is similar.

on May 02, 2009

ckessel's question about debugger instructions makes me wonder if the Elemental effort will include an update of (or replacement for) SmartException, which I never could get to work in Vista. Might be good to get those sort of dumps from non-coder beta folks also.

on May 02, 2009

Python is the definition of a no brainer.  You can practically read the stuff with no experience.

on May 02, 2009

What version of python do you plan on supporting?

I'm reading some stuff for python 3.0, and I've read that its going to be backward incompatible with any earlier verison. This is how they plan get rid of some problems plagueing the lanuage for a while.

Here is my source:
http://docs.python.org/3.0/whatsnew/3.0.html

on May 03, 2009

DivineWrath
What version of python do you plan on supporting?

I'm reading some stuff for python 3.0, and I've read that its going to be backward incompatible with any earlier verison. This is how they plan get rid of some problems plagueing the lanuage for a while.

Here is my source:
http://docs.python.org/3.0/whatsnew/3.0.html

 

I'm also playing around with Python3 in my hobby projects because it's more fun, while I only have 2.6 at work (which is fine). Actually there aren't many gotchas, mostly:

- print function and division, both of which can already be used in Python2.6 ( from future import division, print_function )

- synctatic sugar: set literals etc

- no more distinction between string and unicode  (you can read csv data using csv module without any additional workarounds...)

- new style classes (optional in python2.6)

- abstract base classes

My point being: unless you depend on some large code written in 2.6, it's really easy to switch to Python 3 or back.

--------------

I like Python3 a lot, but I think going with Python 3 right now might not be the best idea. While it's stable, some wrinkles are still being ironed out. It's also about 10% slower than 2.6, but that's to be expected, optimisations are added later. Hopefully switching from 2.6 to 3.0 won't be a problem for Elemental if it's sufficiently modular and well designed.

For those concerned about performance, Google (which now employs Guido van Rossum, Python creator) started a project called Unladen Swallow. They have plans to speed Python up 5 times within a year, using LLVM (Low Level Virtual Machine). No changes to code necessary, full compatibility is to be kept. Q1 2009 release is already out, and it already provides speedups of up to 25% One year may be too long to be viable for Elemental, but, again, if Elemental is modular enough it shouldn't be a problem to switch later. I hope.

http://code.google.com/p/unladen-swallow/

The conventional wisdom that interpreted languages must be slow by definition crumbles. There's a lot of research and modern concepts proven effective in practive (check out Unladen Swallow RelevantPapers section). Psyco already speeds up Python code about 6x on average (but unlike Unladen Swallow, it needs some extra stuff put into code, and there won't be versions for Python3 ). PyPy is an implementation of Python written in Python for research purposes. Parrot is a virtual machine tailored for the needs of dynamic languages, in contrast to Java virtual machine which is made for static ones. Parrot promises some crazy stuff, like writing a class in Perl, subclassing it in Python and creating an instance in TCL, or was it TK...

This progress is not exclusve to Python. CrossTwine supposedly speeds up Ruby 4x. http://crosstwine.com/linker/ruby.html

on May 03, 2009

After sins and demigod, I am ready for some single player goodness!

on May 03, 2009

If there will be indepth documentation to help noobs like me in wanting to make certain changes, I'm in love.

 

I just hope there are tools/programs to help do some of the tedious, easy stuff very quickly. Even making minor changes to civ4 required sifting through on my notepad, which became an absolute bore.

on May 05, 2009

Thanks for the update Frogboy, glad to hear the progress and details! Looking forward to trying out the modding.

Also glad to hear and see Demigod is doing well!

on May 07, 2009

Have you guys heard about Fall From Heaven II? It's a mod for Civ4 that turns the game into a fantasy world, complete with religions, spells and heroes. Get it here: http://kael.civfanatics.net/ (it's really, really awesome)

Frogboy, can I suggest you contact Kael (the guy who made the mod)? He is what you might call a 'pro modder', and we know he is interested in fantasy themed strategy games. I'm sure that he can give a lot of quality input regarding how the modding community works and what it wants and needs.

on May 07, 2009

Sound good

 

Elemental will be a single-player focused game.  It will have multiplayer but most of the development time will be spent on single player.

 

Mmm not sure i really like this.
Demigod is clearly a multiplayer game and single player is there just for "practice" and i'm ok with that approach, however usually single player focues game tend *not to work* well online.
Imho one of the very few strategy game that works well either single and multi is civ4+beyond sword+fallfromheaven2 which though being clearly single player focused can be quite enjoiable online.

 

Elemental takes from the immense burden on improving on a milestone of computer gaming (MoM) and i think its a given that the *minimum* requirement to be considered succesfull is to be at least as good (which 15 years later strange as it sound isnt so easy).
Now both MoM and MoO1/2 were single player game but multiplayer was IMMENSELY fun though not really balanced, can we at least expect something similar or multi will be an aftertough without any real polish?

Thanks for your time (before you ask.. i preordered in the very first day:P)

 

 

on May 07, 2009

I'd like to add since previous poster mentioned it aswell.

 

Fall from Heaven 2 (+ eventually Fall Further) is definetly one of the most enjoyable mod ever played.. basically alone make Civ4 a completely new game (also better imho) and if there is even the slimmest chance to get kael crew on board on elemental you should really do it.

 

Just to clarify if FFH2 would be sold as a complete addon for Civ4 i'd buy it instantly no question asked, is that good.

 

on May 07, 2009

As a developer who's already, for fun, written an interactive 3d engine powered by Python logic, I'm intimately familiar with the process behind this and I must say it pleases me greatly. The only issues I had trouble with were making sure exceptions didn't crash my program outright, but this was solved with some creative decorator usage. Python's an infinitely fun language that's both instantly accessible & easy to use, but also has powerful higher-language features as well (co-routines, metaprogramming, decorators, closures, etc). It's definitely re-vitalized my zest in programming over the past few years. I can't wait to see how Elemental turns out and will be keeping a close eye on development. That said, might as well pop on with Python 3.0 as it's the future of the language. The only thing I'm sad about with Py3 is that they're removing automatic tuple unpacking from argument lists. That will make some more complicated lambda expressions / mapping a bit more work.

on May 07, 2009

Gazing

Frogboy, can I suggest you contact Kael (the guy who made the mod)? He is what you might call a 'pro modder', and we know he is interested in fantasy themed strategy games. I'm sure that he can give a lot of quality input regarding how the modding community works and what it wants and needs.

 

fabio80mi


Fall from Heaven 2 (+ eventually Fall Further) is definetly one of the most enjoyable mod ever played.. basically alone make Civ4 a completely new game (also better imho) and if there is even the slimmest chance to get kael crew on board on elemental you should really do it.


 

 

read reply#45 in this thread

 

 

 

 

on May 07, 2009

Tamba
read reply#45 in this thread

We already know that many people doesn't bother reading the threads' replies but no need to point it... ops!

5 PagesFirst 2 3 4 5