View Full Version : interview with Aaron Hall
abkaiser
May 24th, 2005, 10:40 PM
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/aaron_hall_interview.htm
Thanks,
Andy
Ed Kolis
May 24th, 2005, 10:46 PM
Hey, cool... maybe this will get some more publicity for SE5!
narf poit chez BOOM
May 24th, 2005, 11:31 PM
Weeee!
abkaiser
May 25th, 2005, 03:58 PM
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
What does this mean?
Though our plan for SE5 is to make the AI scripts external!
Fyron
May 25th, 2005, 09:41 PM
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
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 > 100
{
for p in planets
{
if p.buildRate > 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/images/smilies/tongue.gif
boran_blok
May 26th, 2005, 05:18 AM
would be damnd great.
Aiken
May 27th, 2005, 01:12 PM
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
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
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 > 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
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 > 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
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
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
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
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
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.
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.