Brad Wardell's Blog


This week’s “stuff”

Published on Wednesday, September 15, 2010 By Brad Wardell In Elemental Dev Journals

They’re staging v1.08 tonight with the hopes for a general release tomorrow (no promises).  The bulk of the team’s efforts have been on taking care of compatibility, performance, memory and stability both single player and multiplayer.

In the near term, multiplayer is on the box so this has to be delivered and we apologize for the delay. After the initial launch of Elemental: War of Magic, we went back and did a post-mortem on how things could be done better and through this has emerged an updated QA policy. This has in turn meant that the multiplayer launch, which was originally going to be just a flip of a switch has gone through considerable more QA (and will continue to go through more QA) to improve the general quality going forward.

That said, I want to emphasize that while Elemental supports multiplayer, it is not a game designed for it. It’s designed primarily to be played in a sandbox single player. We are interested in feedback though from the multiplayer community on things they’d like to see.

In terms of single player, we have made a number of changes to balance that should make things more enjoyable and make the computer players more challenging. The spells and such have gotten a work over to make sure they are behaving as we intend them to.

Also, we have a poll up for users based on what areas they’d like to see us enhance going into the future the most;

https://www.elementalgame.com/journals

We don’t have a specific time for v1.08 tomorrow other than “sometime tomorrow, EST”. Stay tuned.

Elemental: Making a Quest part 2

Published on Tuesday, September 14, 2010 By Brad Wardell In Elemental Dev Journals

image

Yesterday, I wrote the general outline of how to make a quest.

Today, we’ll get into the nitty gritty:

My QuestPackage has these objects in it:

  1. The Quest Definition
  2. The Quest Location
  3. The Goodie Hut (Quest Destination)
  4. Tile Design of the Location
  5. Tile Design of the Destination (the goodie hut)

Items 4 and 5 are generated by the tile editor in the workshop, I just pasted them in.

The Quest Definition

I.                    Quest  Definition

a.       Display Name

b.      Repeatable (will it be spawned multiple times? 1 yes, 0 no)

c.       TriggerChance (% odds that it will be triggered when the trigger condition is met)

d.      Image (PNG of the image)

e.      QuestClass (Minor or Major. Completing a Major quest ends the game)

f.        TriggerType (What causes this quest to occur, we support the Location as well as other triggers such as population, turns, etc. This can be used to create random events which we’ll talk about in the future)

g.       TriggerOrigin (where does the event occur?)

h.      SpawnRating (how advances is the quest on a scale from 1 to 10)

i.         Description

j.        ShortTextAccept

k.       ShortTextDeny

l.         RewardText (dialog title for your reward)

m.    RewardImage (picture of what you’re getting)

n.      SuccessText (text that comes up when the quest is complete)

o.      GameModifier (message the game to do something)

                                                               i.      ModType  (with the corresponding Attribute options)

1.       GiveItem (attribute is name of item)

2.       Unit (StrVal provides the key and if necessary <Value> provides the amount)

a.       TransferUnitStat

b.      StealUnitStat

c.       Lifesteal

d.      IncreaseDecreaseUnitStats

e.      AdjustUnitStat

f.        AdjustCasterUnitStat

g.       UnlockUnitAbility

h.      CharmTarget

i.         CurHealth

j.        CurMana

k.       ManaBurn

l.         GiveExperience

m.    UnitJoinArmy

n.      TargetMovesBack

o.      SummonUnit (UnitClass provides class name, StrVal provides title)

3.       Player

a.       Treasury

b.      SpellPointBonus

c.       AbilityBonus

d.      EssenceBonusForAllChampions

e.      UnlockResource

f.        UnlockImprovement

g.       UnlockTech

h.      UnlockUnitAction

i.         UnlockCityAction

j.        UnlockSpellbook

k.       UnlockDiplomacyWndAbility

l.         RaiseResourceCap

m.    UpgradeCityWalls

n.      ExposeCity

o.      ExposeSovereign

p.      ExposeGoodieHut

q.      SpawnQuestLocations

r.        UpdateSpawnRating

                                                                                                                                       i.      NPC

                                                                                                                                     ii.      CREATURE

                                                                                                                                    iii.      QUEST

                                                                                                                                   iv.      GOODIEHUT

                                                                                                                                     v.      CRYSTAL

                                                                                                                                   vi.      FOOD

                                                                                                                                  vii.      METAL

                                                                                                                                viii.      SHARD

                                                                                                                                   ix.      GOLD

s.       UpdateRecruitables

                                                                                                                                       i.      SPIDERS

                                                                                                                                     ii.      SHRILLS

                                                                                                                                    iii.      DRATH

                                                                                                                                   iv.      DARKLINGS

                                                                                                                                     v.      UMBERDROTHS

                                                                                                                                   vi.      DROTA

                                                                                                                                  vii.      DRAGONS

                                                                                                                                viii.      DEMONS

t.        MarriageProposal

4.       Map

a.  TransportUnit

b.  PlaceEnvironment

c.  PlaceTerrain

d.  GreaterRaiseLand

e.  RaiseLand

f.  LowerLand

g.  SetEnvironment

h.      ReviveLand

i.         DestroyObjects

j.        RandomTerraform

k.       SummonUnit

l.         CreateGoodieHut

m.    CreateResourceHoard

n.      CreateWorldProp

o.      Reveal

p.      BlockTile

5.       City

a.       SummonRandomGuardian

b.      PlaceEnvironmentOnCity

p.      QuestObjectiveDef

                                                               i.      ObjectiveID (defining its numerical ID)

                                                             ii.      NextObjectiveID (telling it where to go next or -1 if this ends the quest)

                                                            iii.      Description

                                                           iv.      GameModifier

                                                             v.      QuestConditionDef (what determines whether this quest is complete?)

1.       Class (Success of Failure)

2.       Type (what type of condition is it)

a.       ClearGoodieHut (TextData then used to say which goodiehut)

b.      KillMonster (TextData used to identify which monster)

c.       UnitKilled

d.      BuildImprovement

e.      ReturnItemToCapital

f.        ReturnItemToQuestLocation

g.       CheckForItem

h.      ReturnItemToOriginCity

i.         UnitLevelUp

j.        UnitEntersOriginCity

3.       Faction (if applicable)

4.       Flag (AllConditionsMet forces all conditions to be met for it to be a successful quest, RevealTarget is useful for showing the player where the target is)

QuestLocationType

This is used to define the tile that will be used as the quest location. You can (and probably should) use existing quest location types.

GoodieHutType

This is used if you want your quest to spawn a goodie hut to send the player to. You could always just do the “bring me 5 wolf pelts back to me and I’ll give you gold” type quest instead and make sure you are spawning wolves that have the item WolfPelt as their treasure.

Download

To download the full quest here it is:

http://dl.dropbox.com/u/8051911/Quest_UrgentMessage.zip

You will need to unzip the XML file into your elemental\data\english\core quests directory

(in the future, I have put in the request that a packaged quest can just go into the user’s quest directory)

Other Notes

The hardest thing about making quests right now is the difficulty in testing them. One typo in a quest can make it just not work. This is why I’m lobbying internally (or externally) to get a quest editor made that eases this but will require more documentation. As you can see from above, the quest system is powerful but we’ve only scratched the surface so far.

Object Desktop 2011 wishlist

Published on Monday, September 13, 2010 By Brad Wardell In WinCustomize News

The Windows "ecosystem" is complex these days. There's Windows XP users, Windows Vista users and Windows 7 users both in 32 and 64 bit versions which require their own versions believe it or not if you want to fully support it.

Our question to you, what would YOU like to see in the next major revision of Object Desktop?

If you don't have Object Desktop already, what are you waiting for?!

www.objectdesktop.com

 

Discussion: General Combat System

Published on Monday, September 13, 2010 By Brad Wardell In War of Magic

The latest poll shows that people are very interested in us taking a new look at the combat system (https://www.elementalgame.com/journals)

One of the biggest complaints we have seen is that weapons are 1 D N where N is the max the weapon does.

While 1 D N is the same system GalCiv II uses, the difference is that in GalCiv, a ship might have many weapons which would tend to equalize the overall damage.

Simply put, there is too much luck involved in Elemental's combat.

The purpose of this post is to discuss other ways combat could be done.  What suggestions or preferences do you have AND how would you communicate (visually) to the player how such a system would work?

Elemental: Making a Quest

Published on Monday, September 13, 2010 By Brad Wardell In Elemental Dev Journals

One of the requests from https://forums.elementalgame.com/396283 was to show how quests are done.

Let’s walk through making a simple quest.

Title: “An urgent message”

Objective: Bring Dennis’s Note to the Master of Hounds

Reward: Token of Man’s Best Friend

Step #1: The Quest Location

First, I load up the Builder’s Forge in the Workshop and make a suitable location. This is the home of Dennis Lacros. Dennis has been doing his part to help rid the area of wolves.  He does this by working with a series of Hound Masters who are supplying him and others like him with hounds bred to fend off wolves and make the countryside safer.

He has asked if you can deliver a message to Master Olof, the Master of Hounds, that he has need for another dozen hounds as soon as possible.

image

Step #2: The Quest Destination

image

So here I’ve created Master Olof’s place. 

Step 3: Define the Location and Destination

In XML, we have to tie our tile designs to a game object. In this case, a quest location and a quest destination. Quest destinations are just goodie huts (notable locations). The quest locations are objects that trigger the creation of other game objects.

 

 

Step #4: The Quest Definition

This is where I wish I had .NET skillz to whip up a simple quest editor. I’m the most familiar with how the quests work in terms of XML but my .NET skills are weak.  So let me walk you through the XML.

First, to make it easier to distribute to others, I made a new XML file called Quest_UrgentMessage.xml and created a root called <QuestPackage>.

Then I copied and pasted the two tiles I just made (they’re XML) into it.

Then I wrote up the quest definition.

 

Step #5: TESTING the quest

The easiest way I’ve found to actually test a quest is to create a map and put the quest on it and see if it works the way you think it should.

Here’s how I do it.

First, I create two islands. one for me and one for the AI player to keep them out of my way. I put starting point 1 (me) on one island and starting point 2 on the other:

image

Then I put the quest on the map:

image 

Now I load the game and load up that test map I just made.

 

image

image

Now, normally at this point we’d toss out the tile because it clearly clashes with the background. This is why it’s so hard to make things that look nice. But anyway, here it is.

Next…

Will put this together and upload the actual source.

To be continued…

I am a creature of Cyberspace

Published on Saturday, September 11, 2010 By Brad Wardell In Virtual Communities

If there were 100 people selected at random, 90 of them would have no idea what I mean in this post. 5 of them would understand and find it bizarre.

I am a creature of the virtual. Before there was an Internet there were BBSes.  The physical world, for me, has always largely just been the place that requires me to move my carcass between terminals to get back into the real world.

In another decade or two, it won’t be “the Internet” but something beyond it where I think more and more people will be like me – the virtual world is the real world and the physical world is just an issue we have to deal with due to having to provide our physical selves the necessary nutrients to continue.

A lot of people I know think of the Internet as a “tool”. It’s a thing they use to help them in “the real world”.  But for me, cyberspace (for lack of a better term) is where I live.  That’s why when something goes terrible (like the launch of our most recent game), it’s incredibly painful because there is no escaping it.  In Cyberspace, everything you do can be tracked, logged, reported on, etc. There is no “coping”. And “unplugging” for our kind is a challenge because the physical world is just so…boring. 

For me, the strengths of being online are in the communities. That’s what I care about.  I work on non-game software to pay “the bills” in the physical world and work on games (and skinning programs) to help build and create virtual communities with like minded people. 

I think in the long-run, human existence will become more and more virtualized. I even had second thoughts about our new house because, in the long run, it won’t matter. Our various sensory inputs will get their “data” from the virtual world.  I’m not predicting we’ll live in “The Matrix” or anything like that. Rather, it’ll be something completely different than what we have now, it won’t be something we can imagine, it’ll be something new and amazing.

Elemental Mod example requests

Published on Saturday, September 11, 2010 By Brad Wardell In Elemental Dev Journals

Comment here on what sorts of mods you’d like me to make to serve as examples to work from.

Be aware that in Elemental v1.1 that the magic system is moving away from personal mana to a global mana pool (much funner, more balanced) so you will likely want to keep mods focused on things that can be easily modified by that change.

Anyway, if you’re interested, put in your requests here and I’ll start on these this next week and start posting source to the mods.

iPad vs. iPhone 4

Published on Saturday, September 11, 2010 By Brad Wardell In Personal Computing

At first, I thought I was going to end up using the iPhone 4 more because of its wonderful display.  But I’m finding myself slowly migrating back to the iPad for more and more stuff.   I wish the iPad had a higher resolution display now (it’s hard to go back to anything else after the amazing high DPI iPhone 4) but the form factor just works so well.

Dollies with the girl

Published on Saturday, September 11, 2010 By Brad Wardell In Home & Family

With my schedule a lot less tight, I’ve finally had the opportunity to spend more time with my kids. Which, today, meant playing dolls with my 3 year old daughter. 

Our first two kids were boys and when we had a girl, we encouraged her to play with the boy’s old toys (I’m a cheapskate) but she gravitated towards the remnants of my wife’s old dolls (i.e. the ones the boys hadn’t destroyed).  We still don’t have very many dolls and such but that’s her favorite thing to do.  My doll’s name is “LaLa” apparently and she lives with “ZuZu” (my daughter’s doll) in the doll house that my wife’s mother made.

Gotta, go, I’m being called back.

Elemental – a busy Friday

Published on Friday, September 10, 2010 By Brad Wardell In Elemental Dev Journals

I hate leaving all this for the end of the week, especially when it’s good news stuff and our community could certainly use some of that.

So here’s what’s going on!

Elemental: Arena

As some of you know, we put off v1.08 until next week since we wanted more time for QA. See, we can be taught.  But we went ahead and put up the Arena page so you can see some of the features that multiplayer in Elemental will be providing. The changes made to the single player game (data and fixes) have been ported to the MP servers and are still being tested.

https://www.elementalgame.com/arena

image Elemental: Arena – Main Screen

imageElemental: Arena – Game Screen

Development resources on multiplayer are being reserved based on what the community is looking for.  It does not come from Elemental’s single player post-release budget so those of you who love single player don’t have to worry, the two are very separate (in more ways than one).

Impulse::Reactor will automatically save your games online so you can revisit them later in the event you can’t finish the game in a single sitting. The saves are kept in “the cloud” so that you can access them from whatever machine you’re playing Elemental on.

 

Elemental: Mods

The second piece of news is that the mods web page has been put up.

image

https://www.elementalgame.com/mods

This is basically a duplicate of what’s within the game.  The difference here, however, is that players can manually download the actual XML and other assets to see how they were done. 

We have started with the maps and will be adding tiles, quests, campaigns, items, effects and then custom mods such as textures, third party tools, etc. so that the community can interact with one another more easily.  We will also be putting up links to third party resources and websites and wikis.

Elemental: Hiergamenon

The third piece of news is that the Hiergamenon page is now up. 

image

https://www.elementalgame.com/hiergamenon/techtrees

This is an on-going online resource that will, for now, let users view the XML data from the game in a more accessible way.  The next step is to make it so that players can modify it in a web-based editor and then download their creations for themselves.

Elemental: Destiny’s Embers

imageFor those of you who have bought the book Elemental: Destiny's Embers we had originally planned on releasing the first of the book series of content today but some of our changes require the v1.08 update so its push pushed this as well.

Each character has their own unique equipment and in some cases special abilities (since not all of them are Channelers).

image For those of you who have read the book, Nym is one of the characters the download code provides.

Readers who purchased a Kindle or Nook version will also be able to download the content as well, we’ve made arrangements with Random House to take care of those customers.

That’s all for tonight!