.com.unity Forums

.com.unity Forums (http://forum.shrapnelgames.com/index.php)
-   Space Empires: IV & V (http://forum.shrapnelgames.com/forumdisplay.php?f=20)
-   -   interview with Aaron Hall (http://forum.shrapnelgames.com/showthread.php?t=23990)

abkaiser May 24th, 2005 10:40 PM

interview with Aaron Hall
 
Greetings all,

I've just posted an interview with Aaron on my website. Thought I'd advertise it here, as I'm guessing a few of you might be interested:

http://www.andybrain.com/extras/aaro..._interview.htm

Thanks,

Andy

Ed Kolis May 24th, 2005 10:46 PM

Re: interview with Aaron Hall
 
Hey, cool... maybe this will get some more publicity for SE5!

narf poit chez BOOM May 24th, 2005 11:31 PM

Re: interview with Aaron Hall
 
Weeee!

abkaiser May 25th, 2005 03:58 PM

Re: interview with Aaron Hall
 
Quote:

Ed Kolis said:
Hey, cool... maybe this will get some more publicity for SE5!

That's one of my hopes exactly. Aaron and the game series deserves all the support we can give it.

Here's to being *very* excited about the new game!

Andy

Caduceus May 25th, 2005 09:31 PM

Re: interview with Aaron Hall
 
What does this mean?

Quote:

Though our plan for SE5 is to make the AI scripts external!


Fyron May 25th, 2005 09:41 PM

Re: interview with Aaron Hall
 
It means placing the functions used by the AI to determine actions in user editable text files instead of being hidden within the game code.

Ed Kolis May 25th, 2005 09:44 PM

Re: interview with Aaron Hall
 
Pretty sure that means "put 'em where the modders can get at 'em" http://forum.shrapnelgames.com/images/smilies/wink.gif

In other words, instead of plugging numbers into predefined algorithms like you do in SE4, you could actually write your own AI code in some sort of scripting language (maybe Python or Javascript?)

pseudo code follows:
<font class="small">Code:</font><hr /><pre>
if enemy.shipCount &gt; 100
{
for p in planets
{
if p.buildRate &gt; 5000
p.build("doomStar")
else
p.build("spaceYard")
}
}
else
{
for p in planets
p.build("mineralMiner")
}
</pre><hr />

Or, if you're in a particularly sadistic mood, you could try this AI:

http://www.comedycode.com/showcode.cfm/code/28.html

edit: drat, Fyron was faster... stupid examples http://forum.shrapnelgames.com/image...ies/tongue.gif

boran_blok May 26th, 2005 05:18 AM

Re: interview with Aaron Hall
 
would be damnd great.

Aiken May 27th, 2005 01:12 PM

Re: interview with Aaron Hall
 
Superb code Ed http://forum.shrapnelgames.com/images/smilies/laugh.gif

Though, if-elif-else's are nice for simple finite state machines, they're not sufficient to write something decent. I seriously hope it will be possible to code a bayesian networks (or even implement a genetic algos!!) with this scriptining language.

/me crosses fingers

abkaiser May 27th, 2005 01:28 PM

Re: interview with Aaron Hall
 
Quote:

aiken said:
Though, if-then's are nice for simple finite state machines, they're not sufficient to write something decent.


I'll sidetrack slightly here and say you *can* do cool stuff with if-thens. It's similar to what chess software like Chessmaster uses - you're just comparing your move with other possible moves, and seeing which scores higher. The difference is - do you have a static routine or a recursive one? From what I understood from Aaron, static routines will perform as we see in Space Empires today. Recursive routines will be able to reach exponentially more complex levels of competition. In AI terms, this comes out to AIs with brutally effective long term plans that can change dynamically (and still maintain effectiveness) as opponents react.

Anyway, that's why I asked him the question: I want to see how "deep thinking" Aaron intends/wants to make the AI. It's obvious he cares a lot about it, but changing from an if-then to a resursive lookahead design would be major, major work. You'd also be introducing complexity that could affect game speed, requiring tighter CPU and memory requirements.

Andy

Ed Kolis May 27th, 2005 01:49 PM

Re: interview with Aaron Hall
 
Who says recursion wouldn't be possible? As long as he lets us define functions, couldn't we do something like this:

<font class="small">Code:</font><hr /><pre>
function plan(n) {
if n &gt; 0 {
plan(n-1)
// plan ahead for turn now + n
}
else {
// do stuff for this turn
}
}
</pre><hr />

We'd just have to make sure not to code any infinite loops http://forum.shrapnelgames.com/images/smilies/wink.gif

abkaiser May 27th, 2005 02:03 PM

Re: interview with Aaron Hall
 
Quote:

Ed Kolis said:
Who says recursion wouldn't be possible? As long as he lets us define functions, couldn't we do something like this:

<font class="small">Code:</font><hr /><pre>
function plan(n) {
if n &gt; 0 {
plan(n-1)
// plan ahead for turn now + n
}
else {
// do stuff for this turn
}
}
</pre><hr />

We'd just have to make sure not to code any infinite loops http://forum.shrapnelgames.com/images/smilies/wink.gif

It depends:

1) We wouldn't be using a commercial development package for this. Like you said, the AI parser/compiler would be done using tools Aaron and the dev team provide, so that functionality is up to them.

2) Would they even want to implement recursion for us, with all the implications we've both mentioned?

3) And how much power do they want to give to recoding the AI versus more limited customization? Space Empires isn't open source. I could even see someone coming up with a really whiz-bang AI mod and selling it for profit.

Andy

narf poit chez BOOM May 27th, 2005 02:37 PM

Re: interview with Aaron Hall
 
Quote:

aiken said:
Superb code Ed http://forum.shrapnelgames.com/images/smilies/laugh.gif

Though, if-elif-else's are nice for simple finite state machines, they're not sufficient to write something decent. I seriously hope it will be possible to code a bayesian networks (or even implement a genetic algos!!) with this scriptining language.

/me crosses fingers

Huh?

Ed Kolis May 27th, 2005 03:20 PM

Re: interview with Aaron Hall
 
Don't worry, I have no idea what Bayesian networks are either... perhaps they're something like neural networks???

Genetic algorithms = code that evolves like a living species.

abkaiser May 27th, 2005 03:45 PM

Re: interview with Aaron Hall
 
Quote:

Ed Kolis said:
Don't worry, I have no idea what Bayesian networks are either... perhaps they're something like neural networks???

Genetic algorithms = code that evolves like a living species.

My limited understanding: A Bayesian network uses mass amounts of data to predict a situation's probable outcomes, and therefore determine how to behave. Similar to looking for a "law of averages" on a really big scale.

That's all I can tell you - Not being a programmer, I don't know how this is applied to game theory.

Andy

Aiken May 27th, 2005 05:36 PM

Re: interview with Aaron Hall
 
Quote:

abkaiser said:That's all I can tell you - Not being a programmer, I don't know how this is applied to game theory.

Allows AI to effectively use incomplete information about its enviroment to make decisions in uncertain situations with many possible outcomes. Good for long term planning.
Drawbacks are serious requirements in computational power and need for primary accumulation of info.

Not a coder too - used it for urban development model.

More: http://www.niedermayer.ca/papers/bayesian/bayes.html

Will May 27th, 2005 08:18 PM

Re: Bayes Nets
 
Technically, bayesian nets would not be used for an AI. All they do is generate probabilities, based on known data. The AI would only come in when you make decisions based on these predicted probabilities.

I guess you could kludge together an AI that "learns" what actions to take using Bayes nets, by observing the data availible to a human player, and noting the probablilities of certain actions. This could create the interesting possibility of an AI that plays just like a particular human player. Only the AI would still not be able to generate their own strategies, only go off observed strategies.


All times are GMT -4. The time now is 05:16 PM.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©1999 - 2025, Shrapnel Games, Inc. - All Rights Reserved.