Brad Wardell's Blog


This land is…clean

Published on Tuesday, February 8, 2011 By Brad Wardell In Elemental Dev Journals

image

Debugging AI is tough. Is the AI stupid because of a bug? Is it stupid because the AI developer was stupid? (in my case, that’s usually why). Or is it stupid simply because the player is doing something that the AI didn’t know how to handle.

So thanks to the forums, one thing that popped up was that the AI sovereigns were being unusually stupid by not cleaning up the goodie huts near them. Why weren’t they? There’s a fairly good algorithm for scouting the FOW and then going after goodie huts once it knows of them.

But it wasn’t.

Why?

image

The answer was that I was using a function called pUnit->GetPosition() which returned x,y coordinates. I thought (wrongly) that it returned the coordinates in tile form (i.e. what tile on the board it was in) but it wasn’t. It was returning the pixel position. So when I passed this into my various functions, it came up telling me that I was in enemy territory and to run away. Hence, the sovereign would run to a city and stick around there.

While not a crippling issue by any means, it is one of those things that would give a human player a significant advantage over the computer players, especially early game.

Frog-2009 is looking to stay

Published on Friday, February 4, 2011 By Brad Wardell In Personal Computing

For years I got a new desktop machine annually.

I have a naming convention based on what their role is. And not only was there no N-2010 (no new work laptop, work desktop, home desktop or ultra portable) but there probably won’t be a 2011 one either (other than the recently acquired MacBook Pro).

A big part of the reason is that nothing is really making use of these latest/greatest desktop machines. As people have reported with the MacBook Air, even a relatively low end machine with a SSD can feel very snappy.  That’s what I’ve been doing with my X-2009 machines – adding SSD’s to them which gives them a new lease on life.

Sadly, I haven’t even upgraded their video cards. There hasn’t been anything released to compel me to. The last time I upgraded a video card for something specifically was for Half-Life 2. But this machine handles L4D 2, SC2 and other such games without a problem.

It’s no wonder the PC makers are increasingly flailing about making strange new quasi-PC or Android tablet type machines.

So what is happening? In my view, we’ve reached the part in the exponential growth curve of performance (Moore’s law) where it’s becoming increasingly difficult to recognize the performance differences between a brand new machine and one that is 18 months old.  This will only become more apparent as time goes on.

Big cut in energy bill

Published on Thursday, February 3, 2011 By Brad Wardell In Personal Computing

As I mentioned last month, I started monitoring our energy usage very closely.

It turned out we had two key areas that were running away with power.  The first was keeping the pool room warm. That was costing us a fortune. And by warm I mean like 80 degrees (it’s supposed to be about the same temp as the water).  The other was the recirculating hot water which was using a lot of gas.

Using this knowledge and making lots of other adjustments, I cut our energy bill by 45% this past month! W00t.

Things that make me happy

Published on Thursday, February 3, 2011 By Brad Wardell In Life Journals

When things are tough, what are your sources for coping? Here’s a brief list of mine.

  1. My wife
  2. My kids
  3. My sister-in-law
  4. The people I work with
  5. Learning new “Tech”
  6. Internet Communities
  7. Learning new things
  8. Helping others
  9. Passing on skills to others
  10. Reading a good book.

Lua vs. Python

Published on Thursday, February 3, 2011 By Brad Wardell In Elemental Dev Journals

In previous journals we’ve discussed the intention to create a modding layer that would use Python as its scripting language.  Python is slower than Lua in terms of interpreted languages but there’s nothing stopping us from having C++ source that people could use to in addition or instead of a scripting language for performance sensitive elements of a game.

With that said, let’s hear from those familiar with both on what they think of either one and why.

The Stardock Game Roadmap 2011

Published on Tuesday, February 1, 2011 By Brad Wardell In Elemental Dev Journals

This week I’ve been presenting internally our company business plan for 2011. Part of this is the Stardock Customer Report 2011 (which we’ll be making available publicly soon) along with our road map on the studio games (this doesn’t count future titles from our partner Ironclad who developed Sins of a Solar Empire nor does it address next steps in the Demigod franchise.

This journal entry will likely only be of interest to either techies or biz types. So if you’re looking for interesting game feature stuff, you’ll probably want to skip this.

The Road Map

Essentially every studio has a road map. They just don’t make it public for obvious reasons.  Since we’re privately held, we can pretty much do whatever we’d like and one of the things we like is to keep our fans up to speed on what the heck is happening here.

So below is the road map for the studio developed (Stardock Entertainment’s studio) titles.

image

Kumquat

Kumquat is just our internal nickname for the engine. It was called this in honor of former Stardock developer Mike Duffy who created the predecessor “Pear” which we licensed from him after he left to start his own studio. Pear is what all Stardock games from 1997 through 2003 used (Entrepreneur, The Corporate Machine, LightWeight Ninja, Galactic Civilizations I).  It was a fantastic game engine for its day but was 3D.

Kumquat is a new engine that was developed originally for Society which is the free to play MMORTS that we’ve been slowly developing for the past hundred years or something like that.  We decided to have the first game that used Kumquat be a fantasy strategy game, namely, Elemental: War of Magic. 

Now, when War of Magic was being made, we obviously had very high hopes for how it would be received. So we pictured having Elemental: War of Magic – Expansion 1…2…3.  And then you’d have Elemental: War of Magic II and so on.  But when Elemental: War of Magic was released it was very buggy and even after the bugs were largely fixed, the gameplay wasn’t what we had envisioned it  being. We had cut or altered so many features from the original design to match what Kumquat could do – at the time – that we ended up with something that few were pleased with.

But work on Kumquat has continued non-stop and so in December it was decided that rather than continue the War of Magic line we would use the opportunity to create a new fantasy strategy game in the Elemental world that would succeed War of Magic and then just give that to everyone who bought War of Magic in 2010 it for free with steep discounts for anyone who buys it before it is released. That’s where Elemental: Fallen Enchantress comes in.

BG40_AirShrineElemental: Strategy Games

The effect of this is that we’ll eventually have War of Magic, Fallen Enchantress and <Untitled third branch>.   This isn’t really very different than what we did with Galactic Civilizations II with the exception of the intention to have them be stand-alone and thus allowing the separate entities to continue to be potentially developed on their own path based on what players ask for.  If the strategy games were primarily multiplayer games, we obviously couldn’t do this because you’d be fragmenting the player base. But these are primarily single player games that happen to have (fairly crummy) multiplayer support.

One nice thing about this is that it gives us, and players, a lot more design flexibility.  Fallen Enchantress is a pretty radical departure from War of Magic. Based on what I’m seeing, I suspect most people will prefer that by far to War of Magic but only time will tell. But in any event, we will be making a v1.3 of War of Magic that will be on its own code branch.

As a game developer, I can tell you that this is pretty exciting stuff.  Consider the challenges other strategy game franchises have. Some players would have liked to see Civilization V be more along the lines of Civilization IV. Others would have preferred it to be far more complex and others would have preferred to have it streamlined. 

Elemental: RPG games

Now, as some people may recall, after War of Magic’s difficult launch, we had to re-evaluate our staffing levels and reorganize. This meant some painful layoffs back last Fall which came from people slated for the RPG title.  After War of Magic, it was recognized that the game studio was being run like a hobby and not as an engineering process like our enterprise software unit. This meant we needed to bring in full-time designers and full-time project managers onto the studio.  Thus, the second studio team, designated for the Elemental: RPG, got largely zapped. This year we will begin to reconstitute this team as we bring in a lead studio developer and some senior developers to help ensure that we don’t have another War of Magic episode.

The Mod Layer

As some people may remember, I was planning to take a sabbatical last year. Clearly that didn’t happen.  I am still planning to do this sometime early this year. With Kael and Jon Shafer here now, I am comfortable that the games unit won’t need me to intervene.  This will let me create what I’ve creatively named “Mod Layer”. The idea is to create a piece of middleware between Kumquat and future games that would allow people to make games using mostly Python.  I’ve started the planning part of this with our DesktopX lead developer so that we can use Expression Blend to create “objects”, and then manipulate them via Python and render them in Kumquat. This way, modders can easily create a wide assortment of games that are either 2D or 3D and potentially portable to (at the very least) Xbox Live Arcade and Windows Phone (though I’d like to also do iOS but Xcode is the devil still so I may ask some Stardockians to make that part for me <g>).

Society Lives

Published on Thursday, January 27, 2011 By Brad Wardell In Society News

With the recent launch of Elemental: War of Magic, we now have the engine we need to start bringing the pieces together.

It's amazing how much has changed since we started the project.  Our radical concept of people playing a game "for free" but being able to pay for additional content has become much more mainstream and is now called "Free to Play".

We don't have any due dates yet but things are moving forward.

Some v1.2 notes

Published on Wednesday, January 26, 2011 By Brad Wardell In War of Magic

Greetings!

I'm going to put together a better preview soon but v1.2 is supposed to go into beta tomorrow. 

I can tell you, I think people are going to be pretty happy.  While v1.1 had a huge change log, v1.2 has a huge one too but in less obvious ways than v1.1. 

Here are some of the things i've been noticing:

1. The memory usage is dramatically lower. Hopefully, users who run out of memory will be far fewer than in previous versions.  This is an area that will be a constant battle since I see it as our job to push the map sizes and such as far up as we possibly can. So the smarter we use memory, the bigger the worlds.

2. There's a lot of little polish things. Things that have bugged me for awhile but seem to have been taken care of with this version. You'll see what I mean pretty quickly.

3. There's been work to tactical battles. The AI is using magic in battles and seems to be somewhat smarter.  I wish I had time to take this part of the AI over but Charles is doing a great job here and hopefully people will start noticing.

4. Performance is snappier. I can't tell you why, but it just seems to be there.

I haven't looked at balancing and such, I've been working on regular "Stardock stuff" and not the game this month but wanted to give you guys a quick report on what I'd seen this week.

Brings out the worst

Published on Tuesday, January 25, 2011 By Brad Wardell In Blogging

I play MP online and I hate to say it but it sometimes brings out the worst in me. I am a big believer in being a good sport but if someone’s being nasty enough online and they’re winning, I know how to drag it out a very…very…long time.

Making interesting worlds

Published on Tuesday, January 25, 2011 By Brad Wardell In Elemental Dev Journals

One of the challenges we’ve had in War of Magic has been making the world interesting.

On the one hand, you want a world that looks ruined. But on the other hand, you don’t want a world that looks boring. 

During the betas of War of Magic, we had rivers in the world. Unfortunately, they looked horrendous because they couldn’t easily change the way they looked based on the morphing terrain system.

For those of you not familiar with Elemental, in War of Magic, the terrain is totally morphable. It doesn’t just change shape but changes texture and such. We couldn’t get the rivers to look satisfying with this system and took them out. Unfortunately, this only made the world look even more uninteresting to players.

One thing we could/should have done was have paths and roads right from the start.

image

In Fallen Enchantress, a major effort is being put in to have truly randomized landmasses.  In War of Magic, the worlds are randomly generated but the land masses are not. Part of this was an issue of how long it takes to generate land (anyone who’s ever coded fractal code knows what I mean). It’s certainly not undoable. Civilization does it and there are some freeware tools that can do it as well. It just takes time and optimization (i.e. budget) which has been allocated for Fallen Enchantress so that we can get our roads, rivers, and randomly generated land masses.  For us, the challenge isn’t to create randomly generated maps (the editor does it already) but to make them fun and interesting and pretty (hence no rivers in War of Magic).

As War of Magic and Fallen Enchantress diverge, it’ll be interesting to see how different they end up being in the long-run because War of Magic will have its own source tree and continue to evolve on its own while Fallen Enchantress has its own path as well.