In Galactic Civilizations, Sins of a Solar Empire and Demigod, the difficulty levels of computer players were either hard coded or very hard to access for players.
In Elemental, the difficulty levels are in an XML file called CoreDifficultyLevels.xml
The game will read from the different difficulty levels and display them in game. Players can create new difficulty levels themselves if they’d like by changing this file.
In Galactic Civilizations, I only had 3 real variables to play with (and were all in a .h file). They were the AI intelligence, the AI money ratio, and whether the AI had FOW cheats.
The AI intelligence ratio was how often the AI got to use the “smart” algorithms versus the “normal” algorithms. The smart ones took up a lot more CPU but produced much more intelligent result (they are the halmark of what we used to refer to as the “SDS/AI” back in the OS/2 days).
In Elemental, we have a few more variables to play with such as whether the AI gets to use combat magic, how many points the AI gets to add to their sovereign (compared to the human player) and their starting funds.
What’s nice about a data driven difficulty system is that players can create their own difficulty levels as they see fit very easily. One of my favorites (that I would do in my personal builds of GalCiv) was to give the AI a ton of money but make it absolutely stupid so that I was just trying to make my way through hordes of poorly designed ships and terrible unit strategy.
With Elemental, I could see players creating all kinds of interesting scenarios because (and this should be remembered because it’s important) the keys are not file based. That is, you don’t have to put things into coredifficultylevels.xml. The game simply looks in directories based on the keys. So you could literally create a new difficulty level in a file called BobsSuperCustomLevels.xml and hand them out.
One AI promise from me personally to you guys
The AI in our games is only as good as I am. The better I get at the game, the better the AI will get. So while I’m working hard to make sure the AI in Elemental is good, know that it will keep getting better long after release. In the Starcraft 2 beta, I started out in Copper. Now, I’m in the Platinum league. Practice makes perfect.
Actually I agree with Raven.
Me too. Of all aspects of Elemental, the AI is the part I'm least worried about. Not because it isn't important - it's one of the most important - but because Stardock/frogboy have proven that they are among the best when it comes to TBS AIs. And perhaps even more incredibly, they have a track record of continually improving their AI in huge ways.
-during a game, so that the AI analyzes my Strategies&Tactics and adapts, so that I have to adapt to the AI's adaptations.
-from game to game, so that the AI's game continually improves the more games it plays -- just like player's game will (or should...).
To quote a Korean friend "If you have dream then you have future".
This. Moreso than trying to make the perfect AI I would love to see lots of variety. Some that are super agressive, some that build super cities, some that focus on spells and of course some that are more balanced. The one thing that kills AI more than anything is predictability. Not sure if you guys have the resources to make many personalties but that's what I would like to see.
anyways ... yea I definitely prefer 6 difficulty levels.
Something like:
Beginner (large AI penalty)
Novice (small AI penalty)
Normal (no handicap)
Challenging (no handicap)
Expert (small AI bonus)
Godly (large AI bonus)
These bonuses/penalties being purely economical, while Novice and Normal have the same AI intelligence, and Challenging and Expert have the same AI intelligence ... and then you can be a bit silly with beginner and a bit EVIL with Godly
Hehe maybe. The reason I say it will be better in a year is because of what I've seen Stardock do with Gal Civ 2. They constantly upgraded the AI. By the time the last expansion came out the AI went through a drastic change from launch.
That's an excellent idea. I would assume that, in a way, they are kinda doing this already to suite the "personalities" of the AI to match their background. Like one likes to rely on the sea and are master ship-writes. Another focuses on diplomacy and building alliances. I don't know if it's intentional, but it should basically be there by default.
It all comes down to how you tweak numbers once the hard programming is done. In XML, just by changing certain values between varying AI's you change their "personality".
As I want to compete in the metaverse and post topscores, A.I modding is not interesting to me.
I hope that Stardock makes it so people can't edit the A.I and then abuse it in the metaverse.
The AI in our games is only as good as I am.
This really isn't true. I hear this all the time from programmers. You're programming AI that can do a mind boggling amount calculations per second. AI can be very good in TBS games given enough time. Also, if you're programming the game, you should know all the tricks and what is most effective, so you *can* make it much better. People can make chess computers that can crush grandmasters if given enough time even if they aren't that great at chess.
A chess board has 64 tiles.
Its "AI" is a simple matter of calculating the value of different pieces and holding different positions.
Game AI does not remotely resemble chess. My AI doesn't have the luxury of looking through thousands of tiles. It would take hours for each move even on a modern PC. I have to implement strategies based on my judgment of what is and isn't a good tactic to take.
The main reason game AI tends to be rotten is because most developers aren't necessarily very good at their game.
Should an AI spend its resources on recruiting an NPC? Or building a new unit? Or upgrading its city? Or equipping his sovereign at the shop? Or giving resources to a friendly AI that is at war? There is no "mind boggling about of calculations" that can determine what is the "best" thing to do.
That's like saying you won't be content until flying to the moon is no more exotic than flying across the country. I hope you're prepared for a lifetime of disappointment.
This would definitely be great. It's been on my wishlist since the game was announced. The various AI personalities in GC2 is one of my favorite things about it, and I'd love to see them take it even further in Elemental.
And considering that when I was a kid we used fountain pens instead of ballpoint, slide rules instead of calculators, I first watched star trek in B&W not color let alone HD (or soon-to-be 3D), there were only 3 networks, electronics used tubes (all of them, not just the top-line), you could get a handful of candy for 1 penny, etc. etc. etc. -- I wouldn't bet on your "lifetime" statement, as I've still got a good 30 years to go (if my relatives are any indication).
Or maybe I just have more faith in programmers...
Danger! Danger Will Robinson.
It's possible to create systems that learn without necessarily understanding what they've learned, but such systems can produce very bizarre results if you don't give them well-structured training. Neural networks are one fairly well-known example of this type of system. A neural network couldn't execute the logic for an entire AI player (the set of inputs and outputs is too large to quantify in any reasonable way), but they could be interesting for simpler decisions, like deciding on and prioritizing high-level goals based on some representation of current known world 'state'.
The designer would still need to make a lot of choices as to how to quantify the state such as 'threat level from player A', 'my economic performance', 'available materials', etc. The designer would also need to specify the set of available goals, such as 'develop industry', 'build up army', 'build up tech', etc. The designer would also need to design how the different assigned weights to the various goals results in actions being dispatched on each turn.
The main thing the designer doesn't specify directly is any meaningful logic that updates the goal weights based on the state inputs, as this is determined by the neural network, which has been trained to roughly correlate particular sets of inputs with particular outputs. The designer still introduces bias in the way that input/output training sets are chosen, but you can have human players (not necessarily the designer) play the game to generate the training sets. Good players playing well become the primary training sets that initially tune the network. Done correctly, this can have interesting implications, such as the ability to adapt a player's own strategies (tit-for-tat type of play) and also the ability to train different 'styles' of play by observing different styles of human player.
The main problem with these systems is that they can be quite unstable and produce very strange results for inputs that are outside the scope of the original training set or that lie in certain 'special' places in the input set. I'm curious if they've ever been used in games.
Yep, this is very true. This is why it's much harder to create a decent AI for a strategy game than for a chess simulation.
Who says that's a flaw? I know if someone killed one of my offspring (interesting way to think of them), I'd hunt them down to the ends of the Earth or die in the process.
But yeah, being able to make an ai have qualities like that among others would be great.
Yea, human qualities in the AI vs number crunching AI ... human qualities in the AI WIN in fun factor every time!!
And I don't necessarily mean a human player ... but as if the AI were a human living inside the gaming world (caring about their offspring, or what have you)
And either way, the best part is that they can't Ragequit!!
One of the best parts of LAN (or voice) MP with old friends is hearing the lamentations of their women... errrr... hearing the wailing and gnashing of teeth when a battle goes against them. AI that teeth-gnashed and would be fun.
There are many great features available to you once you register, including:
Sign in or Create Account