Brad Wardell's Blog


My “crazy” politics

Published on Wednesday, January 4, 2012 By Brad Wardell In Politics

 

In “real life” I’m not particularly political. I don’t donate to candidates or political causes, I don’t put signs on my lawn. I’m interested in the discussion of politics in the same way that other people are interested in the discussion of sports.

If you’re come here from a link claiming I’m some sort of political lunatic, a few things to bear in mind:

When JoeUser.com started in 2001, I posted intentionally provocative articles. The idea was to get a discussion going.

As time went on and I became better known, this started to become a problem as people not familiar with JoeUser.com started to link to cherry picked posts and use them as forum fodder for my work as a software developer or business owner.

The analogy I would use is imagine if one of the writers from Cracked.com later became really well known years later and people, not realizing the nature of Cracked.com started using his articles as representative of what that person’s overall views are.

Now, I’m using an extreme example and for the record, I consider myself politically conservative. But hopefully most people reading this are intelligent enough to make the distinction between an article written on a discussion forum for the sake of getting a discussion forum versus a personal blog (JoeUser.com is a community blog site, it’s not my online diary).

Over the years, I’ve had to make private some of the earlier year posts because I got tired of having to explain how much of what I have written is tongue-in-cheek.  Such as…

  • No, I don’t support converting homeless people into food for the hungry even if I suggested it in a post back in 2002.
  • No, I don’t actually harvest a kidney from each of my children so I can drink poisons safely.
  • No, Social Services has never actually visited my house.
  • No, I don’t think Obama is Hitler.
  • No, I don’t think Bush is Hitler.
  • No, I don’t think Hitler is Hitler.
  • No, I don’t think liberalism is a disease.
  • Etc.

The reality is, there are people out there that are always looking for an excuse to be offended or outraged.  If you post enough things over enough time, you can always cherry pick something that you can use to pain very broad strokes about them.

GUI Championships 2012

Published on Wednesday, January 4, 2012 By Brad Wardell In WinCustomize News

Greetings!

I just wanted to give all skinners fair warning that we WILL be having a GUI Championships competition in Fall of 2012.

The categories will include:

* WindowBlinds skins

* IconPackager themes

* DeskScapes animated backgrounds

* Static Desktop backgrounds (traditional windows wallpapers)

* And Possibly, depending on when Windows 8 ships, skins for a new, unannounced, Object Desktop program

 

The challenges of moderation

Published on Tuesday, January 3, 2012 By Brad Wardell In Internet

Tom Chick, owner of QuarterToThree.com just finished a controlled clean up of his forums where several prominent users were shown the door.

Moderation is a very delicate and thankless art.  A community can easily be taken over by cliques of griefers without careful moderation.

I think JoeUser.com users can remember a certain user by the acronym of LW who was a very prolific and interesting poster but yet couldn’t keep herself from griefing those she disliked.

Over on Neowin.net, we’ve struggled with this issue for years on how to have a community that is interesting and fun but can keep the bi-polar crowd from getting out of control (as someone who tends to be a bit bi-polar, I understand the issue but you have to just shut the heck up when you’re in one of the extreme moods).

 

AI vs. Kir-Talax Episode 2

Published on Saturday, December 31, 2011 By Brad Wardell In FE Sneak Peeks

AI is now set to “Challenging”.

Challenging is a difficulty level that I’m trying to create where the AI doesn’t cheat but instead soaks up a bit more CPU.  The goal is to have something that in a 1 on 1 game will consistently provide a challenge.

In a game with several players set to challenging, winning becomes something that involves serious skill since the AI will make it a point to work together.

I’ve been working on a number of game mechanic tools that let players work together in more tangible ways.  When we worked on Sins of a Solar Empire: Diplomacy, we (Stardock and Ironclad) came up with the concept of treaties. I wish GalCiv had had this tool (hell, I wish WOM had it). FE has a number of treat options that will allow players to help friends and diss foes.

But for today’s tests, the goals are to see how well it plays ONE vs. ONE. 

These aren’t fair fights. I’ve gotten emails from people who are concerned that the game will be  “too hard”.  Challenging isn’t the default setting and there are lower levels of difficulty that provide new players a reasonable challenge without getting creamed (i.e. different algorithms get used).

In the XML, there’s a new AI feature called AIintelligence that at Normal is set to 1 and at easier levels is less than 1. I use this number to determine what functions get used. Up to 1.5, the AI plays “fair”.  After 1.5, I’ve written functions that let the AI do things that are less fair (like getting better start up conditions, better treasure, etc.).

For you old time 4X players, you can probably imagine all the kinds of things we can do with the AI here that aren’t normally doable in a typical strategy game.   Poor Jon Shafer, his Civ V AI stuff didn’t have magic available. We do.

Anyway, let’s start with game 47…

Game 47: Challenging AI

A few caveats:

(1) A lot of new art assets aren’t in my build. That’s why there’s so much brown.  So no “blasted lands”

(2) There’s only 1 tactical arena map. I see the same tactical battle over…and over…and over…please kill me.

(3) I don’t play fair. I am playing to kill the AI efficiently, not to “play” the game.

image

My starting position.

Exploring the wilds

image

AI stupidly sits by while I attack his city.

Victory in 60 turns.

Score: 21

Not a good showing.

Sovereign should have ducked into town. Why didn’t he?

Coding coding coding…

Game 48:

image

My start is pretty decent.

 

image

The AI is on a peninsula and has no problem sending forces home before me to reinforce. He’s bottled up.

..Fixed a bug with the way the AI determines what item it should equip…

This fix actually just made a huge HUGE difference to the way the AI champions and the AI sovereign function.

image

Relias proceeds to kick my ass.

Badly.

image

Now this is pretty ballsy, the AI has calculated that Relias can take us all out by himself. I don’t see how this is possible.

Relias tries to take us all on.

A bad move. I need to look at the calculations here as to why he’s running around on his own like that.

I try to attack him outside the city a bit later and the story is different.

image

Now, noticing the AI has a good lead here and should be sending more units after me.

Looking at a bug. 

It’s often difficult for me to tell whether a Unit is a Unit or whether a Unit is really an army. There are functions that tell this but because of all the performance optimization, there are some glitches in this area that I’m having to fix to make sure I have “live” data and not cached data.  You don’t want units to be recalculating their stats very often as it adds up very fast.

Ok fixed.

oh.

Hmm.

It worked.

image

Oh f..ck.

Defeat in 63 turns.

 

Ok. enough for tonight.

Odd motivations

Published on Friday, December 30, 2011 By Brad Wardell In PC Gaming

This whole Ocean Marketing thing has me flummoxed. Now, it’s certainly well known that I have no problem bringing down the hammer on customers who think their purchase entitles them to abuse me.  But the whole thing I got out of the Ocean Marketing thing was that this guy clearly didn’t like the people he was supposed to be serving. It doesn’t make sense to me.

People who make stuff inherently want customers to be happy. It’s not just a financial transactions, it’s important that they be happy. 

When it became clear that Elemental: War of Magic was a big disappointment to people, it wasn’t enough to just “make good” on it (i.e. fix it).  It was important to us that our customers like us and the only way to do that was to not just give away some freebies but deliver something that was good to the point that people would go “Woha, they did me right.” 

The motivation is that customer happiness matters.  If you’re just a stock holder, maybe you don’t care. But if you’re actually involved in producing, publishing, marketing, etc. the people you are doing that for matter a lot.  Otherwise, why bother?

Marketing fail at Ocean Marketing

Published on Wednesday, December 28, 2011 By Brad Wardell In PC Gaming

I’m not going to pile onto the events mentioned at PA today.  What really surprises me is how quickly the guy (Paul) got nasty to people.  I get abusive emails on a near daily basis (Ranging from “you suck” to “I hope you get cancer and die!”). It’s not a matter of having a “thick skin” even, it’s just a matter of picking your battles. What exactly was there to get mad about?

And on a side note, how do you get into gaming PR and not know about Penny Arcade???

AI vs. Tar Froglar Games: Episode 2

Published on Wednesday, December 28, 2011 By Brad Wardell In FE Sneak Peeks

Lots of changes have been put in the past day while I wait in my SWTOR queue (Kaas City, character: Talax, Sith Marauder)…

Anyway…

These are a series of 1 on 1 battles.  When the AI is sufficiently challenging on Normal, I’ll test our the harder difficulties and then go to multiple players.

Sufficiently challenging means being able to survive 100 turns consistently against me on a small map.

Game 40: 11:30am, 12.28.11

image

Result:Victory in 96 turns. Nothing very interesting. Fixed some AI glitches, nerfed constitution bonuses.

Game 41:

image

Wow. Started with two champions near, green valley with a river.

Unfortunately, monsters killed the NPC. That’s a problem. Will have to fix monster AI since that kind of defeats the purpose.

Aborted to fix.

Game 42:

image

Found a second champion near by that only required “recruiting” to get. So I b-lined to that.

Foolishly went on a dangerous quest (really need these quests to have labels as I got my clock cleaned).

Heh, found a bug with the Administrator ability which, presently, reduces 25% from training/construction.  It stacks.

image

Everything in 1 turn.  I’ll fix it…after this game…

image

AI is starting to get pretty good at putting together defenses while expanding.

Now to see if I can still steam roll him. Note all the archers. Standing there waiting isn’t an option.

Tactical test

image

Well not quite a steam roll. Took multiple armies led by champions but the deed is done.  That took 360 turns.

Will do one more to see if it was a fluke.

Game 43:

This time I’m playing as Kir-Talax (character I made up) who is Emperor of Magnar. Let’s see how I do as an Empire.

image

Found Altar fast this time and took his first expansion city.

Relias is pissed. He came right at me.

image

My sovereign and champion are really weak having just lost a battle to a spider related quest. This may be closer than it seems.

Hmm.

image

Way closer than it seems. This is where computers have an advantage, they can calculate their odds of victory better than us.

image

I do have some pretty decent spells and armor early on.

Rematch…

image

This time he bit off more than he could chew.

Time to go for his capital…

image

Little pigs, little pigs, let me come in. It’s just me and my apprentice.

…

image

Casting time…this is how we were able to have really powerful magical spells without debalancing the game completely.

Casting a fireball

The town is mine but only after losing my Apprentice.

image

After some back and forth, we’re down to his last town. There is an issue with champions dying too often still.

image

Curse spell in what might be the final battle.

But I lose. Sad smile

On the other hand, there’s something…right about building a Slave Pen in Athica (former capital of Altar).

Lots of very close back and forth for that last city.

I recruit a new apprentice…

image

Hopefully this time I’ll kill him.

image

In this game, the big problem the AI is having is he’s now outclassed in weaponry and armor. It’ll be interesting to see the tech difference after this game.

In Fallen Enchantress, metal is a big deal. It’s out there, it’s not “rare” but you gotta have it to build the good stuff.

image

image

Yea, that sucker punching him early on did him in. But he held on really well. I’d say it’s time to turn up the juice to…Challenging level AI.

But not until I do some tweaking. Gonna had some new functions for handling sucker punching and delivering them. Winking smile

My score: 28 points.

Game 44: 6:30pm CHALLENGING AI

So I’m pumping the computer AI to “challenging”. At this level, he’s identical to the human player still except there’s a few more APIs that get used (a little more CPU gets used).  Those APIs largely revolve around recruiting champions more aggressively and more intelligently handling quests. In the XML, these algorithms are based on  <AIIntelligenceFactor>1.5</AIIntelligenceFactor> which is my own voodoo I use to determine what functions I’ll use.  Go over 1.5 and it might include cheats so for future modders, never go over 1.5 if you don’t want the AI to potentially be “Cheating” (where cheating would include an imbalanced map, getting champions placed in slightly closer to AI starting locations, etc.).

Now, keep in mind that this doesn’t mean the AI is “done”. I’m focusing on algorithms but a lot of the XML isn’t even hooked up.  I can’t, for example, really have the AI use spells intelligently yet. When you see Relias hasting himself and others you’ll know it’s starting to get better in that area.

We’ll see how many turns it takes me to win.

image

 

image

Relias must be nearby as he found me (he doesn’t know I’m here, just got lucky).

image

Fun vs. Bastard: The AI could totally wreck me. My sovereign is out exploring and his champion and armed units is 2 tiles away from my capital. This is the kind of thing that game AI coding has to take into account.  Post-release, I can do what I did with GalCiv and let modders add in “Bastard AI” but there’s no way I’ll get to it prior to release. Or probably not anyway. And besides, would that be fun? Most people would just reload the game. What’s the point?

It isn’t until turn 125 that I feel confident in attacking him with 2 high level champions and my sovereign as my main force.

image

This could be interesting.  We win, but only my sovereign survives. The champions do survive too (they’re revived) but they’re now injured.

Nevertheless I take my army to Relias.

image

Relias casts Haste. Yay, good sign. It’s looking like it’ll just be he and I by the time we kill off all of each other’s units.

image

Victory in 160 turns.

Score: 18.

You can see where the AI is blowing it in this graph. Ridiculously sloppy use of magic means that when he needs it, he doesn’t have it.

Time to tweak.

That’s all for tonight. Winking smile

AI: Testing Difficulty Levels

Published on Tuesday, December 27, 2011 By Brad Wardell In FE Sneak Peeks

Fallen Enchantress has several different levels of difficulty. The AI doesn’t “cheat” in the sense that it plays by a different set of rules. The difficulty rules have to do with what resources the players get.  At Normal, the AI is the same as the human player which is, arguably not fair to the AI (since humans tend to load saved games and have, one presumes, gotten familiar with quests, mob milling and other strategies. 

I tend to think “Challenging” is the fairest to the AI since all the AI really gets there is a little HP boost.

Anyway, today I’m testing out a series of 1 on 1 battles to see how easily I can cream the AI at different levels.  To make it fun for me, I usually try to minimize the number of turns it takes to crush it. 

My strategy:

Find a champion to join me, go monster hunting to raise level. Find AI and kill him.

Game 17: Normal AI 1 on 1, small map.

It is, admittedly, hard for the AI to deal with rushes. Not to mention, it’s hard strategically to decide when to attack an enemy city versus defending one of your own.  Each play through I end up adding new parameters to the various AI functions to have it spit out, I hope, more intelligent responses.

Game 17 is the result of many many hours of this kind of iteration.  I typically beat the AI within 50 turns (depending on starting locations – the AI had graduated to random maps at this point).

Result:

Victory in 36 turns.

…

(2 hours of coding later)

Game 18: Normal AI…

image

This one took a lot longer to win because the AI managed to snag two champions early and bottled me up. So I had to build up more first.

It did still expose some dumb AI decision making in the sense that it over defended it city area at the cost of expanding its empire.

image

So this would be the first real test of the tactical combat improvements.

So my strategy here was to stand back and cast haste on my units. Have my archers weaken them and then mop up.

Relias wasn’t in this battle (the enemy sovereign) which would be his doom. Without any champions in the city, it was easy. After that, whack.

In Fallen Enchantress, there aren’t many champions (I had none, just my sovereign in that game). But let me show you how powerful they are:

My sovereign is an army unto himself.

 

…

More coding…

(game 19 aborted)

Game 20: Normal AI

image

This game I got a particularly good spot.  4 grain, 4 materials. That’s really hitting the jackpot (a normal good city would be like 3 grain, 2 materials).

Victory in 65 turns.

…Iteration

(it’s a real challenge to tell the AI when it should expand and when it should hunker down without it requiring tons of work and CPU time).

Game 21: Normal AI

image

Not quite as nice as my last game but still decent.

The problem, once again, is that it is very difficult for a 1 on 1 contest to end any other way when I’m intentionally mounting up for an attack.

However, the thing is, the game design should be such that it’s relatively easy, early on, to keep players from just doing this.

I think one problem is my use of an early game weapon enchantment (burning blade) that simply grants a numerical bonus to attack rather than a %.

On the other hand, what’s stopping the AI from using it?

…

coding coding coding…

Really REALLY need put some time into having the Spell data hooked up to the AI better. They’re all set at 5.

Game 24: Normal AI

image

Victory in 70 turns.

Strategic spell coding…

25 aborted…

Game 26: Normal AI

image

In this game, it took me 40 turns before I found the other player.

Victory in 46 turns. I think there’s a bug with faction prestige for AI players.

…

Coding…

Game 27: Normal AI

Win after 90 turns

AI still casting stupid strategic spells.

Sigh.

…

coding

…

Game 28: Normal AI

image

Not a bad starting location except I’m right next to Wildlands.

Getting better.

Took 30 turns to find AI. AI had 2 cities and was effectively using them against me when I did my sneak attack.

Took 100 turns to win.

Fixed some bugs in the way spells are evaluated and distances evaluated.

 

[To be ccontinued…8:30pm]

Game 29: Normal AI

image

Up against a mountain. But good resources.

…

This time, when I encounter Altar, very early on, they’re slightly ahead of me (power rating 6 to 5).

image

This time, they can’t be just knocked over.

My concern now is that rushed for Civics to get Rush build and they spent their money.

I can’t take them though. So no riding rough shod this time. The question is, will they be able to expand faster than me?

…

The other thing the AI is struggling with is how much to be worried about monsters. On the one hand, you don’t want the monsters to take out the AI players enmasse but on the other, you need the AI to take some risk.

image

This time, my attempt to rush them has cost me the lead. Altar (AI) has taken an early lead.

And worse, my champion died in battle (they can die, it’s just extremely rare).

image

GRRR!

Monsters took out one of my towns.

 

Dangerous borders

image

OK. This isn’t good for me.  I’ve never seen this before. I normally kill the AI before he gets horses.

My capital just got taken by monsters.

Getting placed near wildlands means more goodies but you gotta defend them better too. I didn’t.

This just get worse..

image

Son of a bitch…

image

And so where my capital is they sent in pioneers to take it.

I’ll take it back.

And I did.

Barely.

Relias (AI) vs. Me.

1 on 1.

Tactical.

image

I win.

He hasn’t picked up as many good weapons as I have.

And he hasn’t shopped enough.

So he’s definitely not anywhere near perfect.

But right now…he is winning.

[10:50 PM]…

[Reminder: all tactical battles are on the same brown  map for now in my build]

image

…

And here…come the archers. Sad smile

So it’s just me (and pioneers) against his small army.

He never had a chance.  I’m Sauron!

Unfortunately the damn Shrill Lord took out the city I had captgured earlier.

City destroying Shrill Lord

 

I started another city there…

Shrill Lord got it again.

I’m gonna kill that thing!

Quickie video of how powerful my sovereign is (too powerful?)

Sovereign vs. archer army

My opinion here is that my sovereign has too much HP. I like that he can mow down units, but it’s kind of crazy that he has over 120 HP (compared to just a few for others). Should probably be about half that with the player packing health potions and such.

[12:00am] TO be continued…

So there are 5 cities in the world at this point. I have 2, the AI has 3.

The problems with the AI that are affecting its play in this particular game include:

(1) Its researching isn’t very good. This is a known issue that is due to the AITraits not being hooked up yet. This means its armies aren’t as big as they could be.

(2) AI is too timid to send a major force around my strong point (I don’t have a choke hold) to attack my vulnerable rear city (I have a weak city and a strong city but the strong city is relatively close to their capital and they’re not sending units to attack the weak city because that would leave the capital city potentially vulnerable – but not really, they have a lot bigger army than I do).

 

image

I probably shouldn’t quibble too much since it’s not looking very good for me.  The issue here is that players don’t usually have the opportunity to build up overwhelming force like this.  If the monsters hadn’t taken out my capital, I’d not have let them get this far.

..

OK, I’m completely surrounded with only 1 town. It’s a bit of a stalemate because my sovereign is just so powerful.

…

OK, the AI finally won. 

image

The AI is getting better but the monsters were as much the AI’s helper. You can see where we were neck and neck right until one of my cities got taken down by the Shrill Lord.  So really it wasn’t a 1 on 1 battle, it was AI + Shrill Lord vs. me.  Still, progress.

Now to spend the next couple of hours implementing fixes and additions to the AI based on what I saw.

Good night!

1:42 am, signing off.