Brad Wardell's Blog


Installing Windows Live Essentials

Published on Thursday, December 2, 2010 By Brad Wardell In Personal Computing

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.

AI Test: December 1 – running blog…

Published on Wednesday, December 1, 2010 By Brad Wardell In Elemental Dev Journals

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.

imageI just find that funny.

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.

image I still haven’t figured out why that sort of thing happens.  It shouldn’t.

Building a pioneer. (Winter, 166 AC)

image

image What? No love at first sight?

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..

image

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).

imageShould be easy…right?

 

image

Well crap, Magnar came after me!

image

This isn’t going well.

image

I really hate Verga.

GOT HIM!

I KILLED VERGA!

Magnar’s forces have come for me.

This could go either way.

image

Heh.

imageWith 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.

image

Pariden shows up.

 

Okay, it’s almost midnight. Time to check in my changes and head home.

..updating…

Highlights of AI work in pictures

Published on Monday, November 29, 2010 By Brad Wardell In Elemental Dev Journals

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.

image

Starting out playing as Relias for the Altar.

image image

image

image 

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..

image

Monsters can and WILL attack and destroy settlements if they think they can do it and if they are lead by an intelligent monster.

image

And so MY participation in the game came to an end.

But the AIs could still play each other…

Year: 170 AC

image image

Turn 184 AC (around 60 turns later)

image image

By the year 222 AC, the world is claimed:

image image

 

So let’s see what they’ve been doing…

image

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.

Magic AI

Published on Sunday, November 28, 2010 By Brad Wardell In Elemental Dev Journals

image

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:

image

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.

It’s not the game’s problem, it’s a player problem

Published on Saturday, November 27, 2010 By Brad Wardell In PC Gaming

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.

Happy Thanksgiving!

Published on Thursday, November 25, 2010 By Brad Wardell In Elemental Dev Journals

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!

Elemental Geekout: Dumb Outlaw

Published on Wednesday, November 24, 2010 By Brad Wardell In Work Reports

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.

image

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”.

image

Now in the debugger I wait…

image

image

He’s trying to go to tile 57, 51.

image

So why isn’t he moving???

image

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.

Stupid AI tricks

Published on Monday, November 22, 2010 By Brad Wardell In Elemental Dev Journals

image 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?