Brad Wardell's Blog


So anyway, we were talking and…

Published on Wednesday, January 16, 2013 By Brad Wardell In Elemental Dev Journals

Here’s a weird thing.  Stardock turns 20 this year.  That’s 20 years since I incorporated it back when I was in college.  My mom was the one pushing me. She was afraid I’d get sued by someone. I told her that was crazy. No one would ever sue us.  Cough.

I was playing FTL and if you don’t already have this game, you really should get it.  It’s a reminder that a great game can be made by just a handful of people.  It serves as a great exhibit for our internal game projects to exclaim “It’s about the game mechanics!”

We’re going to be announcing a lot of new game projects this year.  The first one will undoubtedly be the upcoming expansion pack / DLC (what do you call these things nowadays anyway) for Elemental: Fallen Enchantress.  The theme of it is to evolve the overall game design of Fallen Enchantress to help bring the role playing elements closer to the civilization building elements.  Sometimes, FE feels like it’s trying to be multiple games at the same time and as such, never fully develops a single overarching theme.  That’s what the expansion is being designed to address. 

Speaking of Fallen Enchantress, we’re hoping v1.2 comes out next week.  There’s a lot of AI updates in it and a lot of usability fixes (path finding got a lot of love).  That should (no promises) get out there next week.

Pick 5 THINGS for FE 1.3

Published on Saturday, January 12, 2013 By Brad Wardell In Fallen Enchantress

With v1.2 just about ready to go out, it's time to think about v1.3.

Before people start making feature requests, I would like to emphasize what I'd like v1.3 to be about: Playability glitches.

A playability glitch is hard to really classify. It's not a crash. It's some feature that doesn't work as you'd expect or as you would assume was intended. And if you play a game for hundreds of hours, they become maddening.

So what I would like to use this post for is to ask the regulars here to post five (and only five so that people have to put some thought into what really bugs them) things you'd like to see us "fix" about Fallen Enchantress.

I'll post my 5 later in the thread but I don't want to bias things with my own pet peeves.

!!! Update !!!

We read through this thread carefully and tried to implement as many of these things as possible.  Here are a few of the things that got special attention for 1.3 which should be going into internal beta soon:

  • Pathfinding.  You should notice that when you have a unit in a city and tell him to go somewhere else that it'll get there.  Same for a lot of other pathfinding that seems wonky. I don't know if it's perfect but it should be better.
  • AI winning. This may turn out to be more controversial (or more to the point, we may have to nerf this as it may be a case of "be careful for what you wish for).  The AI is a lot better now at pursuing *victory* conditions.  The AI, overall, is substantially better and more interesting.
  • Pacing. This is a general issue that I saw people bring up in various forms. 
  • Greater city differentiation. Conclaves vs. Towns vs. Fortresses have had their benefits / penalties magnified.
  • More interesting map generation in terms of resources.
  • Tile selection. This is one that we'll have to see how well the fix works. It's a hit or miss thing (seems to be camera related). Some users have reported that selecting a tile doesn't always select the tile they think they're clicking on.
  • Diplomacy. A lot of people talked about this.  Now, there's only so much we can do in an update but basically the AI's behavior should be a lot less schizophrenic. 

That's not the only change in 1.3. There's the usual assortment of bug fixes and balance changes. But those the above are the things that got the most engineering hours.

So now what?

Published on Friday, January 11, 2013 By Brad Wardell In Business

I am having a bit of a conundrum. On the one hand, I’ve been promising my family to work fewer hours and managed to do that to a large extent over the last couple.  On the other hand, last year was such a good year and this year looks even better that it presents so many exciting and varied opportunities….if only there were more hours.

The accountants haven’t turned over the final numbers but broadly speaking, it appears our sales overall increased by about 3X over 2011, which, in itself, was a pretty good year.  This means lots of capital to invest in new ventures.

The temptation is to go back to the old habit of just working crazy hours.  But that’s not what we’re going to do. Instead, we’ve recruited some new people and promoted some internal people to take charge of some of these new opportunities.

Bailey falls through the ice

Published on Thursday, January 10, 2013 By Brad Wardell In Pets & Nature

image

This morning I brought my dog Bailey to work.  As I was talking on the phone while she scampered around, she went out on the “frozen” pond. Moments later, I heard a crash and looked up and saw that she had fallen in.  For a moment, she struggled to get out of the water back onto the ice but then slipped and fell further and got stuck under the ice.

Without thinking (and now I understand better how people end up getting themselves killed when this happens on lakes), I jumped into the pond, dragged her out and carried her out out. 

You can see in the photo above where I took a few steps onto the pond (left side), made the jump to break through and where Bailey had initially fallen (bottom most part of the broken ice). You can then see where she had gotten trapped under the ice (middle) and the pathway we cut through getting out (to the top).

Definitely the coldest I’ve ever been. Thankfully my coworkers drove back to my house and got me a new set of clothes since I was drenched up to my neck in smelly, frozen pond clothes.

IMG_2225

Bailey was none the worst for wear and was (seriously) ready to go back out on the ice. Crazy puppy.

FE AI test updates

Published on Monday, December 31, 2012 By Brad Wardell In Fallen Enchantress

For those of you interested in seeing in progress AI updates I've been working on over the holiday you can try the latest build here:

 

https://dl.dropbox.com/u/8051911/FE-119frog.zip

Just unzip the EXE into your FE directory.

The biggest changes should be on larger maps. However, be on the look out for longer turn times since I've had the AI do more analysis to try to make it smarter.

Art game artists all insane?

Published on Tuesday, December 18, 2012 By Brad Wardell In PC Gaming

image

 

I was looking very closely at one of the city tiles today in Elemental: Fallen Enchantress and came to realize there is a ridiculous amount of detail that a non crazy person would never notice.

So if you zoom in close enough, you can see a dog staring at a pig being cooked. There is a baby Skath in a pen, and a woman appears to be imploring guests to wash their hands before eating. And the tents are actual (virtual) tents that could have things in them.

No one can see this stuff in a normal game.  So, game artists out there, are you people all crazy or is this specific to our artists? Winking smile

The Hobbit movie thread

Published on Tuesday, December 18, 2012 By Brad Wardell In Movies & TV & Books

We closed down shop last Friday and migrated to our local movie theater to see “The Hobbit”.

I’m very interested in hearing what others thought.  Here are my thoughts in no particular order:

  • I did not enjoy 3D 48fps viewing. It’s distracting
  • The movie could be best described as giving unlimited budget and control to the ultimate Tolkien fan and letting him indulge in that.
  • As a border-line obsessive Tolkien lore guy, I loved every single minute of the movie and would have easily sat through another 3 hours of it without blinking. There was not a minute I wish I hadn’t seen.
  • Non Tolkien fans or simply those who aren’t into indulging in Tolkien lore for the sake of indulging it will find the lack of editing off-putting
  • Radagast the Brown will become a meme, particularly with his “sleigh”.
  • I plan to see it again as soon as possible at 2D.

Update: Saw it in 2D

I actually preferred it in 2D as I felt like I was more free to watch the movie how I wanted to watch it rather than the 3D jarring my attention on whatever the directory wanted.

Destiny’s Embers: Sneak peek

Published on Monday, December 17, 2012 By Brad Wardell In FE Sneak Peeks

image

For those of you who have bought Elemental: Destiny’s Embers, we’re working on some new DLC for Fallen Enchantress just for people who have the book.

image
Up in the Henge is the fortress city of “Outpost”.

image
Exploring the caves

If you ever wanted to see what it would be to go on the adventure that Xander, Geni and friends went on, you’ll be able to see it. Ambrose, Mirdoth, Tandis, Nym and the rest will be there.

(in these screenshots I’m using Relias to travel the map)

Map Editor Hot keys

Published on Monday, December 17, 2012 By Brad Wardell In Elemental Dev Journals

image

(Map I made where my character starts out in the middle of an abandoned village)

 

For those of you who are taking full advantage of the map editor, here is a list of hot keys to help make it easier to make maps.

     {'B',           MFLG_CONTROL,   ELEMENTALUI_MAPEDITOR_KEY_SELECT_CHOKE_POINTS,      IMKEY_KEYBOARD, ENUM_VALUE,},
    {'C',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_COPYASSTAMP,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'D',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_KEY_TOGGLEDEBUGTEXT,            IMKEY_KEYBOARD,    ENUM_VALUE,},
    {'E',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_EXECUTE,                        IMKEY_KEYBOARD, ENUM_VALUE,},
    {'G',            MFLG_CONTROL,   ELEMENTALUI_MAPEDITOR_KEY_SHOWGRID,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'I',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_KEY_SAVEMAPIMAGE,                IMKEY_KEYBOARD,    ENUM_VALUE,},
    {'N',           MFLG_CONTROL,   ELEMENTALUI_MAPEDITOR_KEY_NEWMAP,                   IMKEY_KEYBOARD, ENUM_VALUE,},
   
    {'R',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_KEY_CLEARRIVERS,                IMKEY_KEYBOARD,    ENUM_VALUE,},
    {'S',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SAVESTAMP,                    IMKEY_KEYBOARD,    ENUM_VALUE,},
    {VK_ADD,        MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_INCREASE_STAMP_ROTATION,        IMKEY_KEYBOARD, ENUM_VALUE,},
    {VK_SUBTRACT,    MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_DECREASE_STAMP_ROTATION,        IMKEY_KEYBOARD, ENUM_VALUE,},
    {'O',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_CLEAR_OBJECTS,                IMKEY_KEYBOARD, ENUM_VALUE,},
    {'A',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_CLEAR_MAP,                    IMKEY_KEYBOARD, ENUM_VALUE,},

    {'1',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SET_PLAYER_STARTING_POINT_1,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'2',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SET_PLAYER_STARTING_POINT_2,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'3',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SET_PLAYER_STARTING_POINT_3,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'4',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SET_PLAYER_STARTING_POINT_4,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'5',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SET_PLAYER_STARTING_POINT_5,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'6',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SET_PLAYER_STARTING_POINT_6,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'7',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SET_PLAYER_STARTING_POINT_7,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'8',            MFLG_CONTROL,    ELEMENTALUI_MAPEDITOR_SET_PLAYER_STARTING_POINT_8,    IMKEY_KEYBOARD, ENUM_VALUE,},

    // SHIFT keys:
    // CTRL+SHIFT keys:

    {'N',           MFLG_CONTROL | MFLG_SHIFT,   ELEMENTALUI_MAPEDITOR_KEY_REGENMAP,     IMKEY_KEYBOARD, ENUM_VALUE,},
   
    // regular keys:
    {'A',            0,                ELEMENTALUI_MAPEDITOR_TOOL_GOODIEHUT,                IMKEY_KEYBOARD, ENUM_VALUE,},   
    {'B',            0,                ELEMENTALUI_MAPEDITOR_TOOL_BEACH,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'C',            0,                ELEMENTALUI_MAPEDITOR_TOOL_CLIFF,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    //{'C',            0,                ELEMENTALUI_MAPEDITOR_TOOL_SHARD,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'D',            0,                ELEMENTALUI_MAPEDITOR_TOOL_SELECTION_WAND,            IMKEY_KEYBOARD,    ENUM_VALUE,},
    //E
    //{'F',            0,                ELEMENTALUI_MAPEDITOR_TOOL_DUNGEON,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'F',            0,                ELEMENTALUI_MAPEDITOR_TOOL_FOREST,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'G',            0,                ELEMENTALUI_MAPEDITOR_TOOL_RESOURCE,                IMKEY_KEYBOARD, ENUM_VALUE,},
    {'H',            0,                ELEMENTALUI_MAPEDITOR_TOOL_STARTINGPOINT,            IMKEY_KEYBOARD, ENUM_VALUE,},
    {'I',            0,                ELEMENTALUI_MAPEDITOR_TOOL_ROAD,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'J',            0,                ELEMENTALUI_MAPEDITOR_TOOL_BUILDING,                IMKEY_KEYBOARD, ENUM_VALUE,},
    {'K',            0,                ELEMENTALUI_MAPEDITOR_TOOL_UNIT,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    //{'L',            0,                ELEMENTALUI_MAPEDITOR_TOOL_PROP,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'L',            0,                ELEMENTALUI_MAPEDITOR_TOOL_FLATHEIGHT,                IMKEY_KEYBOARD,    ENUM_VALUE,},
    {'M',            0,                ELEMENTALUI_MAPEDITOR_TOOL_MOUNTAIN,                IMKEY_KEYBOARD, ENUM_VALUE,},
    //N
    {'O',            0,                ELEMENTALUI_MAPEDITOR_TOOL_STAMP,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'P',            0,                ELEMENTALUI_MAPEDITOR_TOOL_ENVIRONMENT,                IMKEY_KEYBOARD, ENUM_VALUE,},
    {'Q',            0,                ELEMENTALUI_MAPEDITOR_TOOL_QUESTS,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'R',            0,                ELEMENTALUI_MAPEDITOR_TOOL_RIVER,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'S',            0,                ELEMENTALUI_MAPEDITOR_TOOL_SELECTION,                IMKEY_KEYBOARD, ENUM_VALUE,},
    //T
    //U
    //V
    {'W',            0,                ELEMENTALUI_MAPEDITOR_TOOL_WATER,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'X',            0,                ELEMENTALUI_MAPEDITOR_TOOL_DESTROY,                    IMKEY_KEYBOARD, ENUM_VALUE,},
    //Y
    //Z
    {'1',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_NORTH,        IMKEY_KEYBOARD, ENUM_VALUE,},
    {'2',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_NORTHEAST,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'3',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_EAST,            IMKEY_KEYBOARD, ENUM_VALUE,},
    {'4',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_SOUTHEAST,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'5',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_SOUTH,        IMKEY_KEYBOARD, ENUM_VALUE,},
    {'6',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_SOUTHWEST,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'7',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_WEST,            IMKEY_KEYBOARD, ENUM_VALUE,},
    {'8',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_NORTHWEST,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {'9',            0,                ELEMENTALUI_MAPEDITOR_ACTIVEDIRECTION_SAME,            IMKEY_KEYBOARD, ENUM_VALUE,},
    {VK_ADD,        0,                ELEMENTALUI_MAPEDITOR_BRUSHSIZE_INCREASE,            IMKEY_KEYBOARD, ENUM_VALUE,},
    {VK_SUBTRACT,    0,                ELEMENTALUI_MAPEDITOR_BRUSHSIZE_DECREASE,            IMKEY_KEYBOARD, ENUM_VALUE,},
    //{VKEY_UP,        0,                ELEMENTALUI_MAPEDITOR_BRUSHSTRENGTH_INCREASE,        IMKEY_KEYBOARD, ENUM_VALUE,},
    {VKEY_UP,        0,                ELEMENTALUI_MAPEDITOR_KEY_MOVE_CAMERA_UP,            IMKEY_KEYBOARD, ENUM_VALUE,},
    //{VKEY_DOWN,        0,                ELEMENTALUI_MAPEDITOR_BRUSHSTRENGTH_DECREASE,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {VKEY_DOWN,        0,                ELEMENTALUI_MAPEDITOR_KEY_MOVE_CAMERA_DOWN,            IMKEY_KEYBOARD, ENUM_VALUE,},
    //{VKEY_RIGHT,    0,                ELEMENTALUI_MAPEDITOR_BRUSHSTRENGTHFALLOFF_INCREASE,IMKEY_KEYBOARD, ENUM_VALUE,},
    {VKEY_RIGHT,    0,                ELEMENTALUI_MAPEDITOR_KEY_MOVE_CAMERA_RIGHT,        IMKEY_KEYBOARD, ENUM_VALUE,},
    //{VKEY_LEFT,        0,                ELEMENTALUI_MAPEDITOR_BRUSHSTRENGTHFALLOFF_DECREASE,    IMKEY_KEYBOARD, ENUM_VALUE,},
    {VKEY_LEFT,        0,                ELEMENTALUI_MAPEDITOR_KEY_MOVE_CAMERA_LEFT,            IMKEY_KEYBOARD, ENUM_VALUE,},
    //{VKEY_DELETE,    0,                unused,                IMKEY_KEYBOARD, ENUM_VALUE,},   
    {VK_NUMPAD1,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_SOUTHWEST,            IMKEY_KEYBOARD,    ENUM_VALUE,},
    {VK_NUMPAD2,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_SOUTH,                IMKEY_KEYBOARD,    ENUM_VALUE,},
    {VK_NUMPAD3,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_SOUTHEAST,            IMKEY_KEYBOARD,    ENUM_VALUE,},   
    {VK_NUMPAD4,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_WEST,                IMKEY_KEYBOARD,    ENUM_VALUE,},
    {VK_NUMPAD5,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_RANDOM,                IMKEY_KEYBOARD,    ENUM_VALUE,},
    {VK_NUMPAD6,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_EAST,                IMKEY_KEYBOARD,    ENUM_VALUE,},
    {VK_NUMPAD7,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_NORTHWEST,            IMKEY_KEYBOARD,    ENUM_VALUE,},
    {VK_NUMPAD8,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_NORTH,                IMKEY_KEYBOARD,    ENUM_VALUE,},
    {VK_NUMPAD9,    0,                ELEMENTALUI_MAPEDITOR_TDFACING_NORTHEAST,            IMKEY_KEYBOARD,    ENUM_VALUE,},

    {VK_CAPITAL,    0,              ELEMENTALUI_MAPEDITOR_AUTO_PLACE_CLIFFS_AROUND_LAND, IMKEY_KEYBOARD, ENUM_VALUE, },

Why are the discussions here so good?

Published on Monday, December 10, 2012 By Brad Wardell In Fallen Enchantress

This came up over the weekend when a friend of mine was talking about the forum poster quality here on Fallen Enchantress versus your normal "game site" forum.  The question was, why is the "signal to noise ratio" so good here?

As some of you are aware, we barely moderate. I can't remember the last non-spam account we banned. Locking a post is so rare that it's a big deal when we do it. 

So my question to you guys, especially those of you who are on lots of game sites, why is the discussion quality so high (or if you disagree, put that in as well).

Thanks!