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 3)
5 Pages1 2 3 4 5 
on Apr 30, 2009

Netaddict45
Annatar, everyone is going to need the same set of AI files in order for an AI to run the same on every players computer.  That does not necessairly preclude those files from being modded, only that those modded files would need to be approved and centralized, much like any other kind of mod input.  The SP is additional functionality so you can play around with minor changes until you are happy.

I don't think so. Remember an older dev journal where Frogboy wrote that the AI in Elemental MP will be treated like players? They wouldn't be *set* by the player, they would exist on the servers and be able to join people's games that allow AIs. Basically, AI in MP will be a virtual player, not a bot that you will be able to set up.

Granted that journal is quite old so I don't know if the plans changed, but that quoted bit seems to fit in with it.

Edit: Though I suppose it's also quite possible that some AI tweaks/mods might make it into the official MP AI, I guess it depends on how robust the modding stuff will end up. We know people will be able to pick and choose what mods they want, but would that include MP AI?

on Apr 30, 2009

It really doesn't sound like it. I am likely not going to be modding AI anyway, but from all of the above, it sounds like you will be able to make any AI you want to compete against in solo play (which is pretty cool) but all MP AI has to come from Stardock. Now, I am betting that if someone just came up with a Godly AI that Stardock would put it on their servers and it would be accessible in MP. But it sounds like any AI in MP has to come from Stardocks servers.

on Apr 30, 2009

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).

Pretty sure that is just referring to Stardock hosting whatever mods you put onto their system, and then when you play multiplayer with someone, it loads the selected mods via their servers instead of your PC. It sounds like an awesome system, so I can't wait to see what comes of those plans.

on Apr 30, 2009

You have gameplay scripting. We are using Python and that is where the rules of the game itself are modded.

You have the AI scripting.  Again, using Python, that is where the AI behavior is modded.

It's nice that gameplay and AI will be moddable but look at Civ 4 modding. AFAIK even some parts of Fall From Heaven mod were re-written so to use C++ instead of Python as Python is much slower.

And IIRC Lua is faster than Python.

 

P.S. I can't find reference about FFH but Speed Mod is a good example. Even calls from C++ to empty Python functions slow down the game significantly [MOD] Speed Mod

on Apr 30, 2009

I would be interested to know what led you to choose Python for your scripting? I have been playing with writing domain specific languages in Scala a bit recently, whereas at work I have to use all sorts of XAML stuff (yuck), Boo (nice) and Powershell (ugh), so it's a topic which is on the brain at the moment.

on Apr 30, 2009

I mean will the vanilla version of the game be any good? Or in order for it to be good will it be necessary to mod it? Somebody mentioned there will be only a few spells. Does this mean the game will have like 10 spells and the rest we will have to created?

I mentioned it (see reply #18). If I recall reading correctly, it was something like 10 unique spells per civ. So there're be a few per civ, but many in the game overall. However, I can't find the source of the info, so I could be wrong.

I'll edit this post if I find the source.

on Apr 30, 2009

Ellestar

It's nice that gameplay and AI will be moddable but look at Civ 4 modding. AFAIK even some parts of Fall From Heaven mod were re-written so to use C++ instead of Python as Python is much slower.

And IIRC Lua is faster than Python.

P.S. I can't find reference about FFH but Speed Mod is a good example. Even calls from C++ to empty Python functions slow down the game significantly [MOD] Speed Mod

Python was fast enough to script a third-person RPG (with perhaps the best real-time swordplay combo system I've ever seen in a game) as early as 2001's Severance: Blade of Darkness, and a 3D space sim, Star Trek: Bridge Commander, in 2002.  In both games, all of the actual game logic is in Python.  In 2003, Stackless Python (a variant) was used, and continues to be used to this day, for the server and client of EVE Online...

I don't know anything about the implementation of Python in Civ 4, or the work of the mod teams on that game, but they must be doing some *serious* grunt work in their code if they had no choice but to move into custom C++ libraries...  Bridge Commander modders don't have the luxury of being able to use C++, and they've managed to do some pretty amazing things just in Python...

on Apr 30, 2009

SimRex

Python was fast enough to script a third-person RPG (with perhaps the best real-time swordplay combo system I've ever seen in a game) as early as 2001's Severance: Blade of Darkness, and a 3D space sim, Star Trek: Bridge Commander, in 2002.  In both games, all of the actual game logic is in Python.  In 2003, Stackless Python (a variant) was used, and continues to be used to this day, for the server and client of EVE Online...

I don't know anything about the implementation of Python in Civ 4, or the work of the mod teams on that game, but they must be doing some *serious* grunt work in their code if they had no choice but to move into custom C++ libraries...  Bridge Commander modders don't have the luxury of being able to use C++, and they've managed to do some pretty amazing things just in Python...

IMHO Civ 4 is a better example as it's a 4X TBS like Elemental and it's game logic source code is available for everyone (both Python and C++ one). What's the point to compare apples to oranges (other genres to TBS) when you can compare apples to apples (Civ 4 and Elemental)? Obviously, 2nd comparision will give you much better results.

If Kael says "Personally I can run on huge maps full of AI civs at the same speed I used to do standard maps" just because he removed Python calls then IMHO it's worth it. BTW he's one of the developers of Fall from Heaven mod for Civ 4.

on Apr 30, 2009

One of the problems is that Civ 4 is a seriously shitty game from a performance perspective.  The ai munches an ungodly amount of cpu for what it does.  You can run more ai on a larger map in GC2 and have the turns flip by in a small fraction of the time.  Even just latency on action completion takes an inordinately long time, it's a clunker.

 

They probably figured it didn't matter that much since they were coding a tbs, I frequently wish them ill for it.

on Apr 30, 2009

I really don't understand modding.  Sure, it adds a lot of value to the game, but who has any time for it?  And the whole enterprise smacks of "working for free."  I mean, just look at Demigod, a game concept that was blatantly taken (stolen?) from a mod.  I guess the really creative modders may get jobs in the industry, which could ultimately pay for all of the lost hours spent modding.    

But for the record, I also wish to have an amazing and complete product from Stardock without any dependence on modding to enhance the game. 

on Apr 30, 2009

Question for Frogboy: Will we be able to import custom models to use in the editor?  (I really want a way to have guns late game aka magitech) Or will the item editor be strong enough I won't need a custom model for a gun?

Also, will there be 'extra' models in the editors for players that the base version of Elemental doesn't use(sort of like the marines in WC3)?

Here is a question for the future: Is there any chance that the collector's edition of Elemental will include a CD of the best user made content from the beta(would be a nice demonstration of what the editors can do for those that buy at retail)?

on Apr 30, 2009

Note, DOTA was not a new idea.

 

As far as modding goes, there's this funky thing called a hobby.  It's where you work without getting paid and tell yourself it's fun.  For some people, being a code monkey is fun.  For some people, editing textures is fun.  If they can't or don't want to get paid to make games, they can make them for free because they enjoy it.  Getting paid to do it takes a lot of the fun out by adding in irritants like schedules and deadlines, not to mention customers.

 

If there's something wrong with Elemental, Stardock gets a bunch of shit from us and has to fix it before we'll leave them alone.  If FFH2 is broke, the modders can tell us to fuck off and leave them alone because no one is paying them to give two shits what we think.

on Apr 30, 2009

Getting paid to do it takes a lot of the fun out by adding in irritants like schedules and deadlines, not to mention customers.
Amen.

Of course, modders have to accept limitations sometimes. Some things just can't be changed without a whole new engine.

 

on Apr 30, 2009

Getting paid to do it takes a lot of the fun out by adding in irritants like schedules and deadlines, not to mention customers.

And oversight. Complete creative control is a big part of why I enjoy modding and it's the part that really makes modding be for the fun of seeing your idea reach fruition rather than as work. Plus, for somebody like me who's still in college it's good coding practice and lets me get a feel for game design. I'd be working on my current mod for my own enjoyment anyway, so releasing it is just benefitting everybody else for something I'd do anyway.

on Apr 30, 2009

Ellestar

Quoting SimRex, reply 12
Python was fast enough to script a third-person RPG (with perhaps the best real-time swordplay combo system I've ever seen in a game) as early as 2001's Severance: Blade of Darkness, and a 3D space sim, Star Trek: Bridge Commander, in 2002.  In both games, all of the actual game logic is in Python.  In 2003, Stackless Python (a variant) was used, and continues to be used to this day, for the server and client of EVE Online...

I don't know anything about the implementation of Python in Civ 4, or the work of the mod teams on that game, but they must be doing some *serious* grunt work in their code if they had no choice but to move into custom C++ libraries...  Bridge Commander modders don't have the luxury of being able to use C++, and they've managed to do some pretty amazing things just in Python...

IMHO Civ 4 is a better example as it's a 4X TBS like Elemental and it's game logic source code is available for everyone (both Python and C++ one). What's the point to compare apples to oranges (other genres to TBS) when you can compare apples to apples (Civ 4 and Elemental)? Obviously, 2nd comparision will give you much better results.

If Kael says "Personally I can run on huge maps full of AI civs at the same speed I used to do standard maps" just because he removed Python calls then IMHO it's worth it. BTW he's one of the developers of Fall from Heaven mod for Civ 4.

The problem with the python implementation in Civ4, as compared to games that are coded in Python, is the process of shelling out to an external non-compiled slower programming language over and over again.  C++ is trucking along then recieves an order to stop, create a python instance run the instance, perform actions on the result, tear down the instance and go on (repeat over and over).

I wrote Speed Mod specifically to address this, cut out the python routines and got a significant performance increase.  It worked so well that Alex Mantzaris used the concept in Beyond the Sword and coded into the base game.  The only difference being that Alex is a much better programmer than I am so he created a system where odders could enable and disable the python functions as they needed them (so if there wasnt anything to do in python the engine wouldn't shell out to it).

Games that are running entirely in python dont have this issue.  Its like driving a ferrari compared to driving a moped.  Having access to both doesnt give you the best of both worlds. You just have a ferrari with a moped strapped to the back, then occasionally you pull over, take downt he moped and race around with it for a while.

So my feedback would be:

1. Scripting is good, Im glad to see that it will be included.

2. Source code access is also good, hopefully some of that will be shareable as well so that deeper mods can be done.

3. Shelling out from C++ to python has a significant performance cost when it is done a lot.  A python script that runs when an AI player is deciding what to build in a city and may trigger a few times each turn isn't much.  A python script that triggers during each combat, each unit death, or on each unit movement and could happen hundreds of times a turn on large maps could add significant latency to the game.

4. Im trying to walk the line between being technical and understandable.  Don't jab me to much for technical accuracy, hopefully the point comes across.

5. Im glad to discuss more if there is anything I can do to help (though honestly if you have buddies at Firaxis I would give Alex a call and get the real skinny from him, hes been fighting this since 2005).

6. I cant wait to play the beta!!!

 

5 Pages1 2 3 4 5