The Forums Are Now Closed!

The content will remain as a historical reference, thank you.

Elemental: The dream

By on July 25, 2009 9:52:27 PM from JoeUser Forums JoeUser Forums

One of the things that will make Elemental different from anything Stardock has developed before is that we will view the release date of the game as the beginning of its life rather than the climax.

The reason for this is that a big part of our objective with Elemental lies in the engine underneath it.  It is our dream to slowly evolve Elemental to be so modable that a user familiar with Python 3.x will be able to use Elemental to create virtually any kind of land base computer game.

One of the things that some of you probably suspect but we can confirm from bitter experience is that while there are plenty of good 3D engines out there (Unreal, Gamebryo, Source, etc.) there aren’t really any modern engines (that we could find anyway) that are specifically designed for top down where there’s lots and lots of units on screen.

What I am hoping will happen is that over time, more and more of Elemental will cease being C++ and be moved into Python scripts.  The AI and some of the game logic will be first but eventually as much of the code that we can economically justify taking from C++ will be moved to scripts.

In this way, users would be potentially able to create all kinds of new games using the Elemental engine.  For first person shooters, this is nothing new.  Civilization IV is extremely moddable too.  Our goal here is to take an engine that was designed from the ground up as a 3D engine with full strategic zoom and a multi-threaded graphics engine and make it as generic as possible.

To learn more about Python visit http://www.python.org/

+892 Karma | 95 Replies
July 29, 2009 10:57:29 AM from Elemental Forums Elemental Forums

Quoting Frogboy,
I don't think mods would want to write their stuff in C++ to be honest.  The ONLY reason that mine are C++ is to make it so that people can have some surprise in how the AI works.

The more I use python, the more I like it.

I dream of a future where some modder is making an RPG with the Elemental engine. 

 

Heh, will a Graphical Roguelike of sorts be close enough?  Still have Python and a ton of other stuff to learn but that's the plan.  I reckon the Elemental engine has the potential to surpass the unique RAGe engine that Scallywag: In the Lair of the Medusa came up with, though that one is C++ Lib...

July 29, 2009 1:07:32 PM from Elemental Forums Elemental Forums

Quoting aRoobs,

re: python

I've been using python on and off for the last couple of years, mainly for scientific computing, and I'm increasingly delighted with it. After originally coming from a C/C++ background I find it really pleasant to have data types like tuples, lists, dictionaries and sets as a fundamental part of the language, with agreeable syntax. Some people seem to regard python as a scripting language, but from what I've seen so far it has better support for functions / functional programming / OO than C/C++/Java. It just doesn't place bizzare restrictions on what you can / can't do.

I could not agree more. Another language that doesn't get quite as much attention as it deserves is Javascript (or ECMAScript).
Its domain of application is still pretty much reduced to web browser thingamajigs, but closures, first-class functions, generators and overall great (but a bit unusual) object model makes it an awesome language. Besides, javascript interpreters have now fantastic performance (especially Google V8) and multithread support (SpiderMonkey).

July 29, 2009 2:56:48 PM from Elemental Forums Elemental Forums

No it doesn't, it's perfectly feasible to give the game support of mods in such a way that a mod is not integrated in the game but a seperate component which uses an API to access certain parts of the game and registers itself with the game so the game calls it when needed. In such a case multiple mods could use that API at the same time without the need of compiling either the game or the mods.

It would still require compiling at least once, but I get your point.

The game'd pick the mods from a list of dll's to load on the fly for instance. I've already seen programmers implement the same interface differently for the same object in 2 dll's and be surprised when the QueryInterface returned something unexpected depending on the products that were installed by the customer...

Such an architecture would likely be a real pain to merge mods with. Should you want two mods which change the same thing (and it happens very often), you would have to recompile, and hope the sources are available. With python, you just need to edit a text file. You'd also have to see how, in which order/priority your dll's would be processed (if several interfaces implemented, if a hook to main loop function is offered...). I see no reason to open an api in C++ over python frankly. In Civ IV, FfH2 made use of C++ for mostly two reasons as far as I'm aware:

1) The python api was limited and didn't allow to do certain things

2) Getting faster performance, mostly by removing unused python hooks from the C++

It's funny that both goals were self-contradictory. Had there been more hooks, there wouldn't have been a need to add C++ code. The simple existence of hooks slowed down the game, and whether those hooks are python or C++, the added logic was enough to cause noticeable slowdowns.

I dream of a future where some modder is making an RPG with the Elemental engine.

This has been made in Civ IV. Actually, a scenario of Fall from Heaven II, the 144th KRAG, is a roguelike, with random map regeneration when you go up/downstairs. And the scenario was limited to python and xml changes only. The guy also made a Sudoku in Civ IV...  This modder would probably have been unable to code his mods in C++ imo.

 

July 29, 2009 6:41:35 PM from Elemental Forums Elemental Forums

Quoting LDiCesare,


This has been made in Civ IV. Actually, a scenario of Fall from Heaven II, the 144th KRAG, is a roguelike, with random map regeneration when you go up/downstairs. And the scenario was limited to python and xml changes only. The guy also made a Sudoku in Civ IV...  This modder would probably have been unable to code his mods in C++ imo.

 

 

133rd KRAG(Google's pretty sure you'd be looking for Krav Maga lessons otherwise!), I'd never heard of this before either!  I really need to give thought to the base game that has this Fall from Heaven stuff along with this to it...

July 30, 2009 4:17:45 AM from Elemental Forums Elemental Forums

Yes, 133rd, not 144th . http://forums.civfanatics.com/showthread.php?t=309917

 

July 30, 2009 11:39:35 AM from Elemental Forums Elemental Forums

The more I use python, the more I like it.

I have heard this from so many people.  I think moving to python was a very wise choice.

July 31, 2009 2:23:05 PM from Stardock Forums Stardock Forums

I don't get the point about the need to recompile. Provided mods are treated as plugins that conform to a given API, when you download a mod, either you are given a set of compiled DLL, a set of python scripts, a set of jar files or even a box full of punching cards. You plug this in, it works. Now if two mods are aimed at the same part of the game, loading order will give you which one will work.

There was a reason I took the Win32 api as a sample, for there is another way. The way used today by every game which use an engine. Of course you can't run Doom and Quake on the same instance of the Id engine, however these two games can run in parallel flawlessly. If the aim is to provide an RTS engine, giving coder the way to pilot it is sufficent.

I believe there is two things here, one is elemental, which, as a game, allow modding, that is, modification of its internals, and the other being the RTS engine which doesn't allow modding but allow piloting. By asking for an API, i was thinking to the RTS engine, not to the game Elemental, which use this engine.

 

Keiyan

August 2, 2009 1:32:03 PM from Elemental Forums Elemental Forums

I don't get the point about the need to recompile. Provided mods are treated as plugins that conform to a given API, when you download a mod, either you are given a set of compiled DLL, a set of python scripts, a set of jar files or even a box full of punching cards. You plug this in, it works. Now if two mods are aimed at the same part of the game, loading order will give you which one will work.

That's the whole point. Mods very very often conflict with each other. So if you want both, it's pretty easy to adapt or pick the part you want if you use python. With dll's, it's not possible unless you know how to recompile stuff.

There's also the important point that compiling takes time and you develop much faster, despite the performance hit, using a scripting language. When making a mod, you can do a lot of (modfiy code/test if gameplay is ok) loops using a scripting language than you could if you had to compile/link every change.

August 2, 2009 2:29:55 PM from Stardock Forums Stardock Forums

LDiCesare
There's also the important point that compiling takes time and you develop much faster, despite the performance hit, using a scripting language. When making a mod, you can do a lot of (modfiy code/test if gameplay is ok) loops using a scripting language than you could if you had to compile/link every change.

If it is at the cost of your mod needing a 8-core/triple SLI rig to run, then I prefer the compilation method. There is a reason why the vast majority of games (and apps, by the way) is written in C++ instead of python or vbs...

Granted, modding time is higher, but achievable complexity is higher too.

(But I understand your point on the mod conflicts, this is a real problem)

Keiyan

August 2, 2009 3:27:56 PM from Demigod Forums Demigod Forums

Here's my question...  So if Elemental combat is turn base.  (I've gotten that vibe although I could be wrong, maybe it's real time?)      Would we be able to turn that combat into something like what we see in Total War?

August 2, 2009 3:34:17 PM from Elemental Forums Elemental Forums

About modding, we would need to establish community standards for things and it would be nice if we could keep the files in a zip or rar archive. Then maybe one of the real programmers in the community would make a program for checking things. 

August 2, 2009 4:14:34 PM from Elemental Forums Elemental Forums

So if Elemental combat is turn base. (I've gotten that vibe although I could be wrong, maybe it's real time?)
It is definately not real-time. I don;t think it's exactly turn-based, but its more that than RT.

Would we be able to turn that combat into something like what we see in Total War?
That's a definite "Myabe". Depends on how much of the engine they make public, and your own programming skills.

August 2, 2009 5:28:28 PM from Demigod Forums Demigod Forums

It would certainly be amazing if that was possible.  The game sounds amazing but my gaming chemicals tend to like destroying the enemy by thinking on the spur of the moment to out think my opponent

August 3, 2009 9:23:04 AM from Elemental Forums Elemental Forums

Quoting GW Swicord,

Quoting sciborg2, reply 1Will the AI code be public knowledge then?
Gawds above, below, and sideways, I surely hope not. Modding is interesting and all, but having the AI code out in public would inevitably lead to a bunch of tedious best-strat nonsense that could swiftly drain the life from the game for those of us who could care less about multiplayer and don't even think of 'winning' very often when we're off in the singleplayer sandbox.

In most cases I would agree but with Brad constantly adjusting the AI with all te 'suggestions' being given by the modding community I think we will have one of the fastest eveolving AIs around.  If terrain and special resources mean anything a mathmaticly 'best strat' would be hard to calculate in this case.

 

Sammual

September 2, 2009 2:58:21 AM from Elemental Forums Elemental Forums

python

September 2, 2009 4:48:11 AM from Demigod Forums Demigod Forums

Just make sure you go to python.ORG not python.COM

VERY different things. I made that mistake when I was a little kid .-.

Anyway, though I do enjoy Python, it does worry me a little bit: Civ IV is quite a slow game, and it's coded a lot in Python. I'm worried we may see something similar here in Elemental. I mean, Python has gotten faster, just like instant-reaction time/speed isn't super-important in a TB-game. But, still...

September 2, 2009 4:12:12 PM from Elemental Forums Elemental Forums

The concept of Elemental as a 4X engine is interesting, but I have a serious fear: I fear that the developers are focusing on Elemental as an engine rather than as a stand-alone game.

There are plenty of innovative engines out there, but good games must be built on them for the engine to be worthwhile. Look at the Half Life engine. It has great physics and all, but if the whole game was standing in a room and tossing boxes with the grav gun it wouldn't be that much fun.

Therefore my question is: is Elemental going to be a fun GAME out of the box, or will we have to wait for the community to build content for it? IMO, starting out with only 2 playable races already calls into question the whole "spiritual successor to MOM" line...

September 2, 2009 5:10:52 PM from Elemental Forums Elemental Forums

Therefore my question is: is Elemental going to be a fun GAME out of the box, or will we have to wait for the community to build content for it? IMO, starting out with only 2 playable races already calls into question the whole "spiritual successor to MOM" line...

 

Don't forget, a lot of the engine level features are what creates the game   This is a 4X; once you have a decent random map generator code (engine necessity) you don't need to much else as far as maps go (other than, again engine level, stuff to put on it )

 

As for there being only two playable races, don't forget we have two races, and multiple civs per race, not just two races.  Each civ being distinct, probably to a degree similar to MoM races.

September 4, 2009 9:44:10 AM from Elemental Forums Elemental Forums

I bet one of the human civs are like halflings, and one of the fallen races are like orcs.

I bet one of the human civs are like elves, and one of the fallen races are like Elvis.  Or maybe not.

 

September 4, 2009 10:41:22 AM from Elemental Forums Elemental Forums

Quoting StormSeed,
I bet one of the human civs are like halflings, and one of the fallen races are like orcs.

I bet one of the human civs are like elves, and one of the fallen races are like Elvis.  Or maybe not.

 

Drow baby!!!! 

Stardock Forums v1.0.0.0    #108434  walnut1   Server Load Time: 00:00:00.0000422   Page Render Time:

Stardock Magazine | Register | Online Privacy Policy | Terms of Use

Copyright © 2012 Stardock Entertainment and Gas Powered Games. Demigod is a trademark of Gas Powered Games. All rights reserved. All other trademarks and copyrights are the properties of their respective owners. Windows, the Windows Vista Start button and Xbox 360 are trademarks of the Microsoft group of companies, and 'Games for Windows' and the Windows Vista Start button logo are used under license from Microsoft. © 2012 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc.