One of the first things we're going to be beta testing for Elemental is a new way of doing computer AI. As some of you know, the main reason I got into development in the first place was to write computer AI for games.
Elemental is an opportunity to try some new things. For example, the initial betas of Elemental are going to require the user to be on the Internet to play. The reason is that the computer AI won't be inside the game itself but instead be implemented as AI players on the Impulse game cloud that we're building.
So you would, in effect, start up Elemental like you would a multiplayer game except that the people joining your game wouldn't be people. They would be AI people. And the AI work won't just be in how they play the game but how they behave -- in the lobby and elsewhere with the goal to make them feel like real people (except not jerks).
These AI players will have their own Impulse accounts with their own standings in the rankings, their own achievements, etc. The code won't execute on your machine, it'll be all server-based.
The final version of the game, of course, will not require the user to be on the Internet. We will bundle a number of the AI players in with the game to play single player, off-line games.
But what I hope to do is to build a cloud of multiplayer AI players that I can constantly be updating and enhancing in near-real time based on the data I get back from them on how they were beat, what exploits were used against them, what chat messages were sent to it that it needs to respond to (I'll probably have it respond "no speako English" for the most part).
In the final version of the game, these AI bots will be out there ready to join on-line games. We will give players the ability to discriminate against the robots if they have some sort of anti-robot issue and don't want them joining their multiplayer games. But the match-making system otherwise won't know which players are controlled by humans and which are controlled by the robots.
The nice thing is that for people who are used to playing with strangers on-line, the robots will help fill out the on-line community with people to play against who are explicitly designed to play like people (well like decent people not the people who drop immediately).
I expect the first version of this to be included with Beta 1 of Elemental (i.e. this isn't some "future" thing) which we expect will be out this Spring.
Only MP in early beta testing, but SP will be in game (probably added around 4 or 5 moths before release) form how i understand it...
I wouldn't make any bets on schedule details at this point, but I agree that it now sounds like the 'full' public beta open to all pre-order customers will be preceded by an online-oriented 'pre-beta' or 'invitation-only alpha' or whatever. But I don't think those of us who want the game to be great without multiplayer/online stuff need to worry. Brad seems aimed at building a next-gen TBS single-player game with good multiplayer/online options, and not a multiplayer/online game with second rate single-player experience.
p.s. The forum code for quoting seems to have a reply number bug. The link might work, but reply 25 was a long while ago.
"Elemental: War of Magic" is NOT a RTS. It's a 4x TBS.That is all.
Well, if you read the OP post:
Hope this answer your fears ....
nevermind, pheonix said it for me.
What's the point to hide the source code from public? You miss a good opportunity to improve your AI with a community effort (like Civ 4 developers did when they implemented BetterAI mod improvements in Civ4: Warlords expansion). Since it's a standalone exe file, it's easy to let others modify it. You'll not be the first to publish the AI source code either - Civilization 4, Space Empires 5, The Battle for Wesnoth already did it.
(Not that I'd be against writing DLL style AI brains. Anything like that is a good idea, I'm just playing something of a devil's-advocate here.)
Maybe the competition is the main factor behind the decision, but I'm glad that the core is private because I wouldn't want to see folks around these forums boiling every last bit of surprise out of the game by publicly analyzing the algorithms to death.
Wow Frogboy you have some cool plans for this game. Must pre-order soon methinks.
Noone uses intricate algorithms in game AI because it's inefficient, and all these algoritms aren't new in AI development anyway. Algorithms aside, a specific implementation is useless for others anyway since it's game-specific. So, what exactly don't you want to show to competitors?
But more importantly, AI in most other games sucks not because others can't do a better AI but because there is no point to do a better AI. You can just add a new difficulty level where AI cheats a little more instead of improving AI and you get almost the same effect for zero development cost (Stardock did that exact thing with GC1 in one patch, for example). What's the point to waste money and development time if you can live without it?
I think a more likely possibility is that it will take extra effort to make it possible for others to change the AI. But i think that previous modding experience shows that community involvement is well worth the effort. Well, at least it is most of the time.
P.S. And don't joke with "human-like" please.
Are you human... no... are you a meatbag... YES!
Well, the AI in GalCivII doesn't suck and the AI in Elemental won't suck, since we have a dedicated AI coder for it (Frogboy who is the Frog!) ^^
He takes personal pride in creating the best AI who plays the best game without cheating (though that option is still available for seniored cracks that beat anything to death.)
So, what was your point again?
Yeah, why would the AI want to be meat-bag like, when it can have the efficiency of an... well... AI?
Well, is the problem to hide things or to try to have things efficient? Having the source code of the AI open to the public means:
- some scripting language for the AI and some interpreters. Bugs can be more difficult to track on interpreted things than on compiled ones
- scripted code can be less efficient than compiled code.
- it is easier to make distinct specific AI than a general AI that will handle correctly any allowed scripting code. And I am pretty sure that the modding community will always try to push boundaries outside what dev things that it can be handled
- the data you can manipulate throught scripted code are not the same/less efficient than with compiled ones since there are C++ libraries to handle complex data structures.
- handles must be made to link between the scripted code and the behavior. It is possible that some handles given at one time are no longer pertinent but must still be supported
- open API must be enough documented, not too complex and enough robust in order to be used by the personn who hasn't coded it and can't correct it
In computer, there are always tradeoffs as you have limited development power.
What's the point to hide the source code from public? Well, is the problem to hide things or to try to have things efficient? Having the source code of the AI open to the public means:- some scripting language for the AI and some interpreters. Bugs can be more difficult to track on interpreted things than on compiled ones- scripted code can be less efficient than compiled code.- it is easier to make distinct specific AI than a general AI that will handle correctly any allowed scripting code. And I am pretty sure that the modding community will always try to push boundaries outside what dev things that it can be handled - the data you can manipulate throught scripted code are not the same/less efficient than with compiled ones since there are C++ libraries to handle complex data structures.- handles must be made to link between the scripted code and the behavior. It is possible that some handles given at one time are no longer pertinent but must still be supportedIn computer, there are always tradeoffs as you have limited development power.
Hmm? I meant C/C++ source code, exactly as developer said. Why did you decide that i asked to translate it to some scripting language? It's nonsense.
A person who hasn't coded can't contribute to AI development anyway so it's an obvious waste of time to make it user-friendly for such persons.
Well, it does retarded mistakes so it isn't that good either.
Look in the mirror and say it again. In any case, if you don't understand my points then sucks to be you.
Sorry, my mystake. I didn't correctly understand at which point in the following sentences you were referring to :
Well, I don't know how good the AI in Elemental will be, but your incorrect about the AI in GalCivII.
It doesn't do "retarded mistakes". It's actually very efficient and good at the game, providing a challenge for most gamers on Though (the difficulty where it plays its strongest without cheating). It sometimes does things which don't look optimal, but most of the time there is a reason for it (or there was a bug causing it, happend too sometimes). But usually it doesn't do much that can be considered as wrong per se. (Of course it lacks the overall strategy and determination of a human player, but then which AI doesn't. Also good is relative. The GalCivII AI is very good compared to all currently existing TBS games.)
Hey, did you just try to flame? Or did you really don't understand my point in pointing out that your point was moot after my (pointy?) reply?
So I'll reword what I'd said: You argued that StarDock won't make a good AI because it's easier and cheaper to just give the AI bonuses (like the CivIV AI got) to make it competent and thus StarDock should make its AI routine open source so that the community can fix it.
I then said that StarDock won't be cheapskates and will ship the game with a good and competent AI. I.e. I argued that your basic premises were wrong (Elemental having a bad AI) and thus the point you were trying to argue obsolete.
Now about the sucking part, want a lolly?
I fear I wan't clear enough. The idea was to make the routines enough documented for being used by people external to SD that want to use them. After all, there will always be one point, in the case of open source AI in a non open source project, where there will be calls to undisclosed code.
We should not brag too much about the Frog. Larger game companies/developers could snap it up and steal the beloved Frog from Stardock. The world would be so much poorer with Frogboy working for EA....... God forbid having Frogboy destroyed working on Spore II or the SIMs!
One shouldn't forget that the Frog owns Stardock and is the only shareholder. So stealing the Frog from Stardock means first that another company must buy Stardock.
And the Frog has numerously stated that Stardock is not for sale ...
That's just jolly good to hear, old chap! Now I feel alot better!
Their point isn't to hide the code from the public, but their competitors. Stardock AI's are some of the most advanced, human-like players that I've ever seen. Why give corporate competitors a potential leg up on it?
I very much agree with you there. The least enjoyable thing that could occur would be for someone to expound every secret of the AI and it became bland. That said, ongoing extension by other programmers besides Brad would be entertaining.
So, how about scriptable AI then? Like lua, ruby, or python for a scriptable AI; this would keep the core private and let the users extend the game as they desired. Want an AI that only rushes bear cavalry armed with scimitars? No problem!
I don't think a script part would work very well with Brad's work, which is after all not scripted by intention.
But on modyfying the AI: Brad Wardell said that he may make certain parameters of the AI modable, so users could influence how the AI works, but on how much that will be, we'll have to see.
Edit: Broken comment system is broken.
IIRC, the way GC2 works relies heavily on detailed content in XML files that *are* player moddable. It might not be plausible to get an AI scripting tool for Elemental, but perhaps the XML files that the C++ routines use will include traits that you can tweak to change combat or city-building tendencies and perhaps even copy and modify to add a whole new AI to the set. It appears that the online side will include a growing number of AIs hosted by Stardock, so if they can add 'characters,' why shouldn't single-player folks be able to do something similar?
Great news. Look forward to playing against and with the BOTs.
With as much as Stardock loves AI, and I love you for it, I wonder whether you guys have experimented with any genetic algorithms, or whether you are planning to do so? Your server-living faux-human process sounds like a great opportunity to employ them to both create and hone your AIs: daily tweaking, very random actual human inputs, and a clearly defined generational goal to win. In such ideal circumstances I would imagine that genetically developed AIs would improve substantially more quickly than purely human-coded ones. And it sure it easy to change just a couple personality variables and see what happens after 20 generations.
There are many great features available to you once you register, including:
Sign in or Create Account