Elemental: The dream

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

Frogboy

Join Date 03/2001
+1491

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/

Locked Post 95 Replies
Search this post
Subscription Options


Reason for Karma (Optional)
Successfully updated karma reason!
July 25, 2009 9:58:56 PM from Elemental Forums Elemental Forums

I hope things work out well for the engine.

Reason for Karma (Optional)
Successfully updated karma reason!
July 25, 2009 10:02:43 PM from Elemental Forums Elemental Forums

Best of luck!

By the way, is there going to be any plans on to help others learn how to program games? You keep mentioning that you want to make Elemental very modable. I'm just wondering how much control you plan on giving modders over this "base" program?

Reason for Karma (Optional)
Successfully updated karma reason!
July 25, 2009 10:06:01 PM from Stardock Forums Stardock Forums

Why all the C++ hate?

It deserves a chance too...

Reason for Karma (Optional)
Successfully updated karma reason!
July 25, 2009 10:25:49 PM from Elemental Forums Elemental Forums

Well, speaking as a non-programmer, I imagine that a lot of the modding community is more familiar w/ py b/c it is used for a lot of open-source stuff.

Reason for Karma (Optional)
Successfully updated karma reason!
July 25, 2009 10:42:35 PM from Elemental Forums Elemental Forums

I love C++.

I'm learning Python now.

The main advantage of Python is that it doesn't have to be compiled so a user can just make a few changes to the text file and it works right then and there.

Reason for Karma (Optional)
Successfully updated karma reason!
July 25, 2009 11:37:22 PM from Demigod Forums Demigod Forums

And that's a big advantage, especially for users who don't have beastly machines doing the compiling.

 

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 12:02:24 AM from Elemental Forums Elemental Forums

Looks like I got to learn Python, but I like the idea of using Python because like Civ 4 Elemental should be just as moddable.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 12:52:40 AM from Demigod Forums Demigod Forums

Hi Frogboy,

the idea to open up as much of the elemental engine to modding is a fantastic idea. We've seen some great mods grow into full commercial games over the years from the Quake / Unreal / Source modding communities so it would be lovely if a similar thing could happen for strategy gaming. Have you thought about how licencing of the Elemental engine / SDK etc might play out, or is this still a bit too early to speculate?

 

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.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 1:15:45 AM from Elemental Forums Elemental Forums

I love this dream, I hope it becomes a reality.

 

Sammual

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 1:44:15 AM from Elemental Forums Elemental Forums

Tourresh wishes he knew python instead of Lua.

 

I can't wait for all the syntax specific stuff of both languages to meld together in my mind so I constantly make stupid mistakes.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 2:08:45 AM from Elemental Forums Elemental Forums

This is great news.  I prefer Java, but having the ability to modify AI routines in any high-level language is nice.  Python is probably worth learning anyway.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 2:33:01 AM from Elemental Forums Elemental Forums

ugh i remember compiling stuff in c++ back when computers were so slow the word gigahertz wasn't even used yet. 

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 2:41:58 AM from Stardock.net (Stardock Games) Stardock.net (Stardock Games)

Hey Frogboy! How about opening up a new line of business in e-learning? C++, Python, modding... You already have the programmers right there (and instruction capable?), as well as Impulse for its distribution.

With all the possibiliites out there and in the works, I'm sure there's plenty of people willing to purchase that from Impulse. Audiovisual instruction makes this approachable to a wider audience and is a lot faster to learn (e.g. CBT Nuggets).

 

It's a great dream you have there.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 2:57:19 AM from Demigod Forums Demigod Forums

I am totally going to brush up on python now.  Very exciting stuff. 

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 4:01:28 AM from Elemental Forums Elemental Forums

@Frogboy, reply #5

The main advantage of Python is that it doesn't have to be compiled so a user can just make a few changes to the text file and it works right then and there.

About that. Given how quickly someone can change the code for python, the most time consuming part of making mods might very well be loading of the game. More so if you have a habit of making a small number changes to see how things work out.

----

Do you think its possible to have Elemental to do 1 or more of the following?

1) Have an in game editor so you could not only edit code in the game, but also load the changes so see what happens right away. You know, you start a battle but then you get the idea for a new spell. You write the thing up, load the changes, and then use the spell right away to see how things work.

2) Allow the users to minimize the game, tinker with the files, then unminimize the game and load the changes (like #1 but you don't use an in game editor to edit the python files). This would be useful to users who are already comfortable with programing outside of Elemental, and this would allow users to download other mods for use or reference. It would also allow the modders to go read online documentation to help them mod.

3) Have the option to play in a "god mode" (or whatever name sounds best). Basically you could add units, alter terrain, add/destroy nations, and/or do whatever stuff you want to do. This could all be done as you play the game. This could also be used by non-modders to spice up games and so forth, such as adding a very angry dragon in a middle of a battle field. Basically natural disasters because you were bored.

4) Allow modders to mod the user interface. If we don't get a "god mode" as describe in #3, I would like to be able to attempt to mod one in, complete with the angry dragon button.

----

If you do decide to add in 1 or more of my suggestions, you will probally want some means to prevent this stuff from being used during online play... unless of course the players agree to it.

Also, could you let me know what you think? Too much? Not what you're looking for?

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 6:18:45 AM from Elemental Forums Elemental Forums

Python is neat. 

Another issue with C++ modding is that for people who don't know it yet, it is a very hostile language. You're going to accidentally create a lot less buffer overruns and memory leaks in almost anything else.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 7:11:07 AM from Elemental Forums Elemental Forums

As long as we get some nice documentation about the game's functions and similar, it'll be fine. At least for the most basic things so we don't have to start blindly pocking things.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 7:49:54 AM from Elemental Forums Elemental Forums

Quoting Frogboy,
I love C++.

I'm learning Python now.

The main advantage of Python is that it doesn't have to be compiled so a user can just make a few changes to the text file and it works right then and there.

Quoting Wintersong,
As long as we get some nice documentation about the game's functions and similar, it'll be fine. At least for the most basic things so we don't have to start blindly pocking things.

Blindly poking things is the only true scientific method.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 8:05:57 AM from Elemental Forums Elemental Forums

It sort of looks to me like you're trying to do two things here: allow unlimited tinkering with the existing game (for which changing python files is a great idea), and allow someone to build something from the ground up on top of your engine. For the latter, surely people would need to be able to compile some code? I mean no disrespect to Python, which is a great tool for a lot of jobs, but I'd prefer some dlls with well thought-out public functions and a simple example project.

Also, isn't the Supcom engine designed for top-down when there are loads of units on the screen? Or am I missing the point there?

Have you seen the Unladen Swallow project for speeding up Python? Planning on making any use of it?

I like the direction this is going, and hope there will be people taking advantage of it. When I consider that tower defence was made in a map editor, the sort of flexibility you're offering is tantalizing.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 10:20:05 AM from Elemental Forums Elemental Forums

3) Have the option to play in a "god mode" (or whatever name sounds best). Basically you could add units, alter terrain, add/destroy nations, and/or do whatever stuff you want to do. This could all be done as you play the game. This could also be used by non-modders to spice up games and so forth, such as adding a very angry dragon in a middle of a battle field. Basically natural disasters because you were bored.

Well, the cheat system in GC2 has some of that functioality...... adding unit summons and terrrein morphing to that would go a loooooong way.... plus, you wouldn't have to create a new UI.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 10:22:16 AM from Elemental Forums Elemental Forums

This is beautiful.

I can tell you now what people will ask for in an expansion though.

(i) More spells

(ii) More creatures

(iii) More races + equipment / armour

(iv) More content

Basically ... they'll be after more canon content.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 10:42:06 AM from Elemental Forums Elemental Forums

Quoting Vordrak,
This is beautiful.

I can tell you now what people will ask for in an expansion though.

(i) More spells

(ii) More creatures

(iii) More races + equipment / armour

(iv) More content

Basically ... they'll be after more canon content.
Excellent deductive capabilities, there. You came to the conclusion that in an expansion, people want more. I would've never guessed.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 12:27:23 PM from Elemental Forums Elemental Forums

I am no pro in programming, but is it possible that making a game that cabn be fremade into any other kind of gamecould be taken by say EA and remade to a new game using your hard work and sold to make a new profit?

 

Just curious....

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 12:49:38 PM from Elemental Forums Elemental Forums

Surely the EULA of Elemental will include something in the lines of "You cannot make profit of it". Appart from something related to modding copyrighted things.

Reason for Karma (Optional)
Successfully updated karma reason!
July 26, 2009 12:59:40 PM from Elemental Forums Elemental Forums

Tourresh wishes he knew python instead of Lua.

I can't wait for all the syntax specific stuff of both languages to meld together in my mind so I constantly make stupid mistakes.

I actually read through the Python docs last week just for the coming Elemental release. If you're a decent programmer, you shouldn't have much trouble adapting. Python has some oddities with default values being persistent across method invocations, but if you think of them as similar to class level instance variables it's not so bad.

I don't quite grok the lambda stuff, but it doesn't look like it's a critical language feature. If you come from a Lisp background though, I'm sure it makes perfect sense.

Python's author lives in the 1980's in some ways though that I found amusing. He recommends no lines over 79 characters in length. Come on man, join the 1990's where we have more than 640x480 resolution monitors... . I don't think I've worked anywhere in the last 8-9 years that didn't have the recommended line length at 100 or 120 at this point in their style guide. Python's naming convention recommendations are very much different from the more dominant C/C++/Java/Mono/C#, which sort of struck me as an odd convention just for the sake of being different.

Reason for Karma (Optional)
Successfully updated karma reason!
Stardock Forums v1.0.0.0    #101114  walnut1   Server Load Time: 00:00:00.0000266   Page Render Time:

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

Copyright © 2016 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.