Grrr. Instapundit more!
I read Instapundit.com religiously and it’s barely updated today (relatively speaking…).
I read Instapundit.com religiously and it’s barely updated today (relatively speaking…).
Well I’m taking the plunge and installing Windows Live Essentials. I’ve been a big fan of Windows Live but as has been the tendency with Microsoft these past few years, they let Live die on the vine a little bit and I found myself migrating to Google apps more and more.
What Microsoft needs to do is relearn what made them so successful in the first place: Commitment. Microsoft was notorious for sticking with things until they got it right. Now, heh, even I don’t worry about Microsoft “stealing” ideas from us because I’m confident we’ll outlast them. Some exec there will get promoted or transferred or retire and the project will just fade away.
Developer Journal on new AI capabilities for Elemental: War of Magic v1.1
World Difficulty: Normal
Map: Tiny
All players (10 opponents) have “normal” intelligence instead of Pariden
Goal: Elimination of all AI players as quickly as possible.
If you guys see anything wrong with the strategy I employ, let me know.
Early Game:
Build town, recruited a couple NPCs, sent sovereign out to gather goodies.
Observation: Need more choices in what to build early on.
First rule in this game: Any sovereign I can kill, I will kill.
Ok, Verga by himself can take out Relias and friends…
Ack, at war with a lot of players now thinking I was going to steamroll.
I still haven’t figured out why that sort of thing happens. It shouldn’t.
Building a pioneer. (Winter, 166 AC)
Built “Toad Ville” near an ancient temple.
Ok, AI sovereign is stuck. Need to make them intelligently learn to teleport out. Let’s see how this works..
Fixing a deadlock I caused… Grr.
Ok, deadlock fixed.
Grr. It is really really hard to nail down what the battlerank should be. I thought I had Verga but nope. He killed my whole group.
Going to try doing it via tactical (loading a saved game to try it again to see).
Well crap, Magnar came after me!
This isn’t going well.
I really hate Verga.
GOT HIM!
I KILLED VERGA!
Magnar’s forces have come for me.
This could go either way.
Heh.
With Magnar thrown back, I’m in a much better position.
Magnar is still a threat but my capital (and last city) is no longer in immediate danger.
Building up again.
Need more war music, emailing Mason.
Getting low on candy.
Next…
I am starting to gain momentum.
Pariden shows up.
Okay, it’s almost midnight. Time to check in my changes and head home.
..updating…
I’ve spent the better part of last week working on the Elemental AI. Without going into too much detail, here are some notes of what has been done and what needs to be done still.
Starting out playing as Relias for the Altar.
One of the things I noticed when I was playing was that after awhile, the monsters become simply fodder for experience and gold. The low level ones just don’t keep up. So I made it so that intelligent monsters (like bandits) will tend to tame/combine up with other monsters into bigger and bigger groups as the game goes on (basically as they find each other).
This resulted in a problem in the game I’m having..
Monsters can and WILL attack and destroy settlements if they think they can do it and if they are lead by an intelligent monster.
And so MY participation in the game came to an end.
But the AIs could still play each other…
Year: 170 AC
Turn 184 AC (around 60 turns later)
By the year 222 AC, the world is claimed:
So let’s see what they’ve been doing…
It’s a lot better than it was but it has a long way to go too. Now, I’m playing with the AI on “normal”.
Admittedly, I did get killed but if I hadn’t gotten killed, I would have been able to wipe them out.
As I’ve mentioned in previous blogs, I don’t like game design. I like to mod other people’s games much more. That’s what got me into game development in the first place, the love of modding or taking other people’s concepts in a different direction.
It’s probably one of the reasons I enjoy debugging so much (and hence, multithreading is so fun for me to work on).
One of the areas I desperately want to improve the computer players on has to do with spell casting. Ideally, I’d like it all data driven in XML and then tweaked with Python. But in the nearer term, I just want to make the computer players play Elemental extremely well. And that means, looking at the kinds of things that the computer players can easily access:
There are a lot of interesting APIs available to the AI to look at spells. But like Cypher in “The Matrix”, I prefer to look at all the data at once and see what strikes me as useful.
I know, as a human that Arcane Weaponry is useful. But what kinds of things can I access in this spell that will indicate that it’s useful to the AI and how it might best be used?
As you’ve probably gathered, there’s a lot of subjectivity involved. An author bias. As I get better at the game, read the forums, etc. I can incorporate these experiences into biasing the AI in certain directions.
I finally threw in the towel on Starcraft this week. As a single player game, it’s amazing. Game of the year as far as I’m concerned. It’s multiplayer design is phenomenal as well. It’s the single best game purchase I made in 2010.
And yet, playing online, against humans, has demonstrated why I just cannot stand multiplayer games in general. At various times during the beta I was ranked between "bronze” and “diamond” leagues. In my experience, the difference between silver and gold is pretty small in terms of player quality. Above that, you are starting to deal with a much higher quality of player.
The problem is, at silver and gold levels of Starcraft, the players you’re up against are overwhelmingly “all in” starting strategists. That is, they expect to win or lose the game in the first 5 minutes, which, to me, as a father of 3 nearing 40 years of age, is an anathema. I want to play the damn game.
The key to Starcraft is “scouting”. You scout to try to figure out what strategy they’re going to employ. This works in theory -- if you’re willing to devote inordinate amounts of time to the meta game that is Starcraft multiplayer. The meta game consists of scouting YouTube and various other sites to see what the latest fad opening cheese tactic is.
Playing against Zerg? Check to see if they’re doing a Baneling rush. Mutablob? Or are they going to do the extra roach cheese rush? Or something entirely different.
Playing against Protos? Photon canon rush? remote base? Probe hiding in your base?
Playing against Terran? Mass marine + peon rush? Mass Reapers? Rush for cloaked banshees? Or any of the myriad of other all-in strategies.
Scout. Scout. Scout. That’s the alleged answer but it misses the point. If you want to play the game, counter or no counter you still lose. If you fail to counter, game is over in 5 minutes. If you successfully counter, they quit and game is over in 5 minutes.
I don’t even know what Blizzard could do about this because we are playing two different games. I am playing a game of Starcraft, they are playing the Meta game of Battle.net rankings.
I get more pissed off when I counter all-in strategy than when I fail because I don’t even get the satisfaction of taking the fight back to them. They quit immediately when their all-in attempt has failed and move on to the next game.
But that frustration is rivaled by the feeling that if I don’t want to be victim to the latest all-in strategy I have to keep up with it. The extra Roach trick, for instance, is really hard to spot from “scouting” and very hard to counter (and if you’re wrong about which strategy they’re going to employ – something the “scout” people ignore, you end up crippling yourself).
Probably the only realistic thing that Blizzard could do is have those at Bronze, Silver and Gold Leagues have a somewhat randomize set of start-up conditions so that players can’t literally play out a recipe strategy they read on the net. But I don’t see that happening.
I love Starcraft. I love it so much that I get frustrated that I can’t just get to play the actual game. I’ll have to stick with LAN parties for now I guess.
On behalf of Stardock, I’d like to wish the entire Elemental community a Happy Thanksgiving! We’re very thankful to have you as participants in this ongoing journey to creating the ultimate fantasy strategy game.
Wherever you are today, our thoughts are with you. Have a great day!
Welcome to the first of an ongoing series for people interested in game development.
Tonight, I’m trying to figure out why an outlawis just standing there instead of either a) running away,
attacking, or c) just doing something.
So here is this outlaw. He’s not doing anything. Why?
First step was to rename him into something easy to identify in the debugger -- “Dumb Outlaw”.
Now in the debugger I wait…
He’s trying to go to tile 57, 51.
So why isn’t he moving???
It turns out, it’s because when I spawned the unit, I fenced them in. I randomly gave them a range in which they could wanter. Well, some units got a fence of 0 and so even if I told the unit to go far away, it didn’t matter because it wouldn’t go beyond its fence.
With Elemental: War of Magic v1.1 BETA now out, you can see the direction we’re heading with the game. Global mana has made a huge positive impact on game play and having your population being put to work (literally) not only provides a great game mechanic but connects the player to the game more closely.
As you can imagine, such significant game play changes require a lot of new AI coding to make it effective. With Kael joining us to relieve me as the Producer on Elemental, I have more time for working on the AI (I am still handling the role of senior lead developer on the game which is a position I’m looking to fill – hint hint).
A 5 step process
The process I use to make good AI works roughly as follows:
Step #1: Make the AI multithreaded.
This is the most important thing because it allows the developers to focus on making the AI effective without worrying about time so much. Games with single-threaded AI have painful late games where you can wait a long time between turns.
This part was accomplished in the v1.1 beta. It still has to be debugged (90% of crashes are due to this) since you have to make sure the AI isn’t monkeying around with main game data.
Step #2: Play the game at a basic level
This is pretty obvious. Can the computer players do everything that the human can do? This is something that I’m working on this week. This can be effectively described as playing the game without worrying about opposing forces.
Step #3: Play the game at a competitive level
This is where it plays the game knowing that there are others trying to thwart it or destroy it.
Step #4: Play the game at the meta-game level
This is where it gets good at handling diplomacy, its dynasty, trade, and maximizing resources.
Step #5: Eliminate stupid AI tricks
Stupid AI tricks are simply little holes or little exploits that really need to be explicitly looked for and eliminated.
So for those of you who have v1.1, can you list THREE (no more, no fewer) things that you see the AI do that are either stupid or result in its destruction and what you would do if you were them?
I’m looking forward to not running into the 2 gigabyte limit anymore on development.