Brad Wardell's site for talking about the customization of Windows.
Published on June 17, 2009 By Frogboy In Elemental Dev Journals

image

For those of you not familiar with game development, most of the development is spent designing the engines and technologies that will be used by the game. In our case, about 2/3rds of the time is spent on that kind of thing. 

In many respects, this time is much like developing a traditional software application.  Elemental uses a graphics engine that has been developed over the past couple of years for Society.

Our previous games used an engine called Pear that was developed in the late 90s and enhanced over the years.  The new engine, called Kumquat, has all kinds of goodies (as you'd imagine).

One of the big differences in Kumquat from my personal coding perspective is its use of Python for scripting.  Our old engine wasn't scriptable so everything was written in C++.  Now, Stardock is a bit unusual that we don't tend to use scripts in our games. In Elemental, the only reason we're using scripting is to make it easier for other people to mod the game.

Anyway, now we're starting to put the pieces together to actually make "the game" as opposed to a series of technologies.  That means I finally get to start sinking my teeth into AI.

With Galactic Civilizations, I only got a couple of months to work on the AI and I had to do it basically on my own.  This time around, our team is large enough that I get to work on it longer and I have help.

Not that I don't mind writing functions like get the distance between two points or whatever but having others who can write the worker functions will save me a lot of time.

One other difference in Elemental was the decision to have multiplayer support. There's a single player reason for this - I want to see how people play the game before the game is released so that I can incorporate clever strategies into the AI.

Those of you not familiar with Stardock developed games know that from my personal perspective, the only point to these games is the AI.  Personally, I think it's great that humans want to play the game too but I'm in it for the computer players.  My fun on GalCiv was always watching the different AI personalities fighting each other to see who would win.  But then again, I'm a pretty weird guy.


Comments (Page 2)
5 Pages1 2 3 4  Last
on Jun 17, 2009

Simply awesome stuff. The ability to dig into the AI scripts and actually use my developer skills as part of the alpha/beta is a big reason I'm really interested in being part of the alpha/beta.

on Jun 17, 2009

More people and more time spent on AI great! Ill be toying more with the AI as I get more CS Classes done.

on Jun 17, 2009

Lost_WLd
Neat stuff.

*Makes a note to start using camelcase in function names*

That's funny because I believe wide_names are preferred over camelCase in the Python community

on Jun 17, 2009
That's funny because I believe wide_names are preferred over camelCase in the Python community 

That seems to be the case for function names, though classes are mixed case. However, it also says to essentially stick with whatever style the project you're on is using. Given Elemental is coming from a C++ background, that'd be the camel case convention.

http://www.python.org/dev/peps/pep-0008/

 

on Jun 17, 2009


My fun on GalCiv was always watching the different AI personalities fighting each other to see who would win.  But then again, I'm a pretty weird guy.

As single player, you could have an option (goodness, everything is solved by the all mighty options) in which you put the AI in charge of your empire/kingdom so it plays for you while you go to work/sleep/study/watch/... until the game ends or you take the control again. It would feel like some kind of autoresolve game instead of battle. (I'm partially joking, of course)

Thank you for the update, Frogboy.

on Jun 17, 2009

Every Heroes of Might & Magic since the first one; both Age of Wonders, so obviously, I'd like to help beta this.  How do I make sure I'm in the lotery please?  (I have Galactic Civilizations II, DemiGod & Sins).  I guess my friend, who has no SD games has no chance to get in (insert boos/hisses)?

on Jun 17, 2009

Ah functions takes me back to the good old computer science days but business is the ultimate evolution of just about anything. 

on Jun 17, 2009

PurplePaladin
Every Heroes of Might & Magic since the first one; both Age of Wonders, so obviously, I'd like to help beta this.  How do I make sure I'm in the lotery please?  (I have Galactic Civilizations II, DemiGod & Sins).  I guess my friend, who has no SD games has no chance to get in (insert boos/hisses)?

Everyone who pre-orders the game will be able to help beta test. The lottery is only for the alpha. Stardock usually has 3 beta rounds, not including any alphas or gammas.

So you and your friend both will be able to beta as long you both pre-order.

on Jun 17, 2009

Denryu

Yes wouldn't it be cool if this launched a whole new type of multiplayer - no human interaction allowed, it is just "my AI vs. your AI" or even better "my AI vs your and your and your and your AI".

There are games out there that do this.  They are a blast (As long as they are supported to keep the game balanced).

Sammual

on Jun 17, 2009

The AI has to be one of the top priorities.  Also, the AI has to be good at avoiding every exploit the human comes up with- especially since this will be primarily a SP game.

 

 

on Jun 17, 2009

Frogboy, you stated that before the actual implementation of behavior of AI, the game should learn basing on the actions taken by humans. I wonder how it will be done. Basically: will you use some AI algorithms to determine best solutions, or you will do it by yourself? That said I would like to ask, what is your opinion on Artificial Neural Network (ANN) being incorporated into the game (ie. the AI)? I was thinking about implementing it into a strategy-game project (Open Source) I've been working on. The main reason I am asking about it is that recently Chris Taylor said that they will implement this 'feature' into Supreme Commander 2. That made me thinking: if one could put such algorithm into a mature title like SupCom2, then maybe it's worth a discussion?

on Jun 17, 2009

red1939
Frogboy, you stated that before the actual implementation of behavior of AI, the game should learn basing on the actions taken by humans. I wonder how it will be done. Basically: will you use some AI algorithms to determine best solutions, or you will do it by yourself? That said I would like to ask, what is your opinion on Artificial Neural Network (ANN) being incorporated into the game (ie. the AI)? I was thinking about implementing it into a strategy-game project (Open Source) I've been working on. The main reason I am asking about it is that recently Chris Taylor said that they will implement this 'feature' into Supreme Commander 2. That made me thinking: if one could put such algorithm into a mature title like SupCom2, then maybe it's worth a discussion?

I haven't done much AI coding, but I've read up on it from time to time since it's an area of interest for me. In a nutshell, most all AI is rule based though the term "rule" is a little loosely defined. You program the AI to make decisions the same way you, as a human, would make them. AI's generally have a set of priorities that guide what rules to use and AI variations are often, at least in part, based on different combinations of those priorities (e.g. an AI that weights economics over warfare).

A true learning AI is rare in games. One, it's hard to program correctly for the parameters the AI would need to learn. Two, to teach an AI you have to have thousands upon thousands of complete iterations that the AI can learn from to decide which actions were good or bad and that all has to happen before it initially ships. Even then, you have to create some rules for the learning AI to decide what was cause and effect versus correlation. Did the fact the AI won a game mean the research path was good or something else? How does it decide what worked and what didn't? In most games, a learning AI simply not feasible.

One thing you can do is have different AI instances fight it out and look at the characteristics for which ones win. Through that you can determine "best of class" strategies for an AI to take. Though, if you don't have enough variation in AI instances or if the general AI rules have a blind spot (say, failure to focus on defensive city upgrades) then you can end up with the best AI's all having a similar flaw.

on Jun 17, 2009

I may be mistaken but it seems like with MP in the alpha, and likely all MP at this point will be on their servers, they will be able to "record" every game. If they have some learning AI, they would be able to feed all the data of a game and let the game start "learning" from watching human controlled games. Or this could just be wild speculation and this type of AI learning is not even possible, at least not at the game developer level.

I just can't help but think of "WarGames" and WoPR going thru all the possible outcomes of thermonuclear war...wouldn't it be cool for the AI to watch human play, analyze it and develop it's own counters to certain strategic patterns....

Or more likely, Frogboy will analyze the MP games and design his AIs accordingly. But it would be very cool if the former was doable.

on Jun 18, 2009

Personally, I think it's great that humans want to play the game too but I'm in it for the computer players. My fun on GalCiv was always watching the different AI personalities fighting each other to see who would win. But then again, I'm a pretty weird guy.

I don't think you're really all THAT weird, just a bit here and there... Personally, I would also like to see those battles and as it is now possible for players to change the AI, I hope we will also have the option to start an all AI game to test our changes...

Even better would be a real debug-mode so we can really check how an AI decides what to do in certain situations. I assume you'll need something likes this for yourself anyway.

on Jun 18, 2009

Sorry to reply to my own post, but I just noticed I have two usernames with different passwords (and Member No.)... Is there anyway to combine these?

5 Pages1 2 3 4  Last