Brad Wardell's site for talking about the customization of Windows.

image

Fallen Enchantress has random events. It’s just that there aren’t many and the odds of one showing up in a given turn are in 1/10,000.

So as we get ready for Beta 5, which is all about bug fixing, polish, and balance, we are finally starting to add a lot of new random events.

image

 

image

 

This is the part I should probably mention that any monkey can make a quest. You do need the powerful tool known as notepad. That’s how I’m doing it. It’s just XML and it’s pretty straight forward to make a fairly simple quest or random event (i.e. kill fooz or fetch me a holy hand grenade or escort my goat, etc.).  But there’s nothing stopping you from making a massive, epic quest.

In this random event, I set it so that after turn 50 there is a 0.1% chance of the event being triggered each turn. So odds are, you will rarely get this event (maybe once every 4 or 5 games).  But in addition to spawning a nasty cave with these nasty monsters in it, I also had it spam the world with a bunch of escaped darklings.

What’s nice about this is that modders (and guys like me) can control the “experience” of the game through the use of the turn trigger.

I’m thinking about coding in a power based trigger. That is, if the player is just dominating (or alternatively, getting really hurt) I could have the game trigger some interesting events to whoever is winning (or losing) to mix things up. I did this with Galactic Civilizations with quite a bit of success in keeping things moving.

Of course, with GalCiv, only I could make this stuff. With Fallen Enchantress, not only can a stupid monkey like myself crank this out, but you guys could too.

Below is the complete XML for this particular quest (90% of which is copy and paste):

   1:   <QuestDef InternalName="RandomEvent_AdventureProblem_2">
   2:      <DisplayName>Troublesome Adventerers</DisplayName>
   3:      <Description>
   4:        Into the throne room comes three very sad looking adventurers. They explain, at considerable length, that they met at a local pub and decided to go on a quest together. Unfortunately, this quest brought them to the ancient dungeon of Orilinor, Curgen's jailer.
   5:   
   6:        This dungeon was thought to be lost and, frankly, it would have been better had it stayed lost because upon opening it, a couple centuries worth of monster breeding has now been unleashed into the country side.
   7:   
   8:        "And, a demon known as Anithan is still there," he says.
   9:   
  10:        What do you want to do?
  11:      </Description>
  12:      <ShortTextAccept>Sigh. Can't you people get real jobs? You'll be helping clean up this mess.</ShortTextAccept>
  13:      <AllowQuestRejection>0</AllowQuestRejection>
  14:      <RewardText>Book of Demon Summoning</RewardText>
  15:      <RewardImage>Tech_Third_Book.png</RewardImage>
  16:      <SuccessText>
  17:        Anithan is defeated and the book is yours. Using the books of your private study to translate the runes in the book, you are able to summon a demon to do your bidding. Unfortunately, the book disintegrates upon use.
  18:      </SuccessText>
  19:      <QuestClass>Minor</QuestClass>
  20:      <Repeatable>0</Repeatable>
  21:      <TriggerType>TurnNumber</TriggerType>
  22:      <TriggerData>50</TriggerData>
  23:      <TriggerChance>10</TriggerChance>
  24:      <PostTriggerChance>10</PostTriggerChance>
  25:      <SpawnRating>1</SpawnRating>
  26:      <Image>BG18_Dark.png</Image>
  27:      <Treasure>
  28:        <GameModifier InternalName="Reward1">
  29:          <ModType>Unit</ModType>
  30:          <Attribute>GiveExperience</Attribute>
  31:          <Value>30</Value>
  32:        </GameModifier>
  33:      </Treasure>
  34:      <Treasure>
  35:        <GameModifier InternalName="Reward2">
  36:          <ModType>Unit</ModType>
  37:          <Attribute>UnitJoinArmy</Attribute>
  38:          <StrVal>DeathDemon</StrVal>
  39:          <StrVal2>Pox the Demon</StrVal2>
  40:          <UnitClass>Unit</UnitClass>
  41:        </GameModifier>
  42:      </Treasure>
  43:      <QuestObjectiveDef>
  44:        <ObjectiveID>0</ObjectiveID>
  45:        <NextObjectiveID>1</NextObjectiveID>
  46:        <Description>Find and defeat Anithan.</Description>
  47:        <Treasure>
  48:          <GameModifier>
  49:            <ModType>Map</ModType>
  50:            <Attribute>CreateGoodieHut</Attribute>
  51:            <StrVal>Orilinor's Dungeon</StrVal>
  52:            <Unitclass>GH_Quest_Cave</Unitclass>
  53:            <Radius>12</Radius>
  54:          </GameModifier>
  55:          <GameModifier>
  56:            <ModType>Map</ModType>
  57:            <Attribute>SpawnMonster</Attribute>
  58:            <Value>24</Value>
  59:            <Unitclass>Darkling</Unitclass>
  60:            <StrVal>Escaped Darklings</StrVal>
  61:            <Radius>12</Radius>
  62:          </GameModifier>
  63:          <GameModifier InternalName="Join">
  64:            <ModType>Unit</ModType>
  65:            <Attribute>UnitJoinArmy</Attribute>
  66:            <StrVal>Iru</StrVal>
  67:            <StrVal2>Amanda</StrVal2>
  68:            <UnitClass>Unit</UnitClass>
  69:            <Level>6</Level>
  70:          </GameModifier>
  71:          <GameModifier InternalName="Join">
  72:            <ModType>Unit</ModType>
  73:            <Attribute>UnitJoinArmy</Attribute>
  74:            <StrVal>Syndicate_SpyMaster</StrVal>
  75:            <StrVal2>Lucila</StrVal2>
  76:            <UnitClass>Unit</UnitClass>
  77:            <Level>6</Level>
  78:          </GameModifier>
  79:          <GameModifier InternalName="Join">
  80:            <ModType>Unit</ModType>
  81:            <Attribute>UnitJoinArmy</Attribute>
  82:            <StrVal>Mercenary</StrVal>
  83:            <StrVal2>Kelen</StrVal2>
  84:            <UnitClass>Unit</UnitClass>
  85:            <Level>6</Level>
  86:          </GameModifier>
  87:        </Treasure>
  88:        <QuestConditionDef>
  89:          <Objective>
  90:            <Icon>Mana_32.png</Icon>
  91:            <Text>Find the cave that leads to the dungeon, defeat Anithan.</Text>
  92:            <IsOptional>0</IsOptional>
  93:          </Objective>
  94:          <Class>Success</Class>
  95:          <Type>ClearGoodieHut</Type>
  96:          <TextData>GH_Quest_Cave</TextData>
  97:          <Flag>RevealTarget</Flag>
  98:        </QuestConditionDef>
  99:        <ChoiceText>You manage to cause a cave in, sealing off the entrance to the vast lambrynth underneath but not before Anithan and his servants confront you.</ChoiceText>
 100:        <ChoiceMedallion>F_Domination_Full.png</ChoiceMedallion>
 101:        <ChoiceMedallionFrame>Medallion_Frame_17.png</ChoiceMedallionFrame>
 102:        <QuestChoiceDef>
 103:          <Description>Defeat Anithan</Description>
 104:          <NextObjectiveID>1</NextObjectiveID>
 105:          <Encounter>
 106:            <Liklihood>100</Liklihood>
 107:            <BattleIdentifier>Anithan</BattleIdentifier>
 108:            <WillRespawn>0</WillRespawn>
 109:            <WanderingRadius>0</WanderingRadius>
 110:            <UnitInstance>
 111:              <UnitType>DeathDemon</UnitType>
 112:              <UnitName>Anithan</UnitName>
 113:              <Level>1</Level>
 114:            </UnitInstance>
 115:            <UnitInstance>
 116:              <UnitType>Juggernaut_Escaped</UnitType>
 117:              <UnitName>Failed prototype</UnitName>
 118:              <Level>1</Level>
 119:            </UnitInstance>
 120:            <UnitInstance>
 121:              <UnitType>DarklingWarrior</UnitType>
 122:              <UnitName>Darkling Horde</UnitName>
 123:              <UnitGroupingType>UnitGroupingType_Squad</UnitGroupingType>
 124:              <Level>1</Level>
 125:            </UnitInstance>
 126:          </Encounter>
 127:        </QuestChoiceDef>
 128:        <QuestChoiceDef>
 129:          <Description>Ah. Yes...well..quite. We will just be leaving you to your cave.</Description>
 130:          <NextObjectiveID>0</NextObjectiveID>
 131:        </QuestChoiceDef>
 132:      </QuestObjectiveDef>
 133:      <QuestObjectiveDef>
 134:        <ObjectiveID>1</ObjectiveID>
 135:        <NextObjectiveID>2</NextObjectiveID>
 136:        <PopupObjectiveMsg>0</PopupObjectiveMsg>
 137:        <QuestConditionDef>
 138:          <Objective>
 139:            <Icon>Mana_32.png</Icon>
 140:            <Text>Defeat Anithan</Text>
 141:            <IsOptional>0</IsOptional>
 142:          </Objective>
 143:          <Class>Success</Class>
 144:          <Type>BattleFinished</Type>
 145:          <TextData>Anithan</TextData>
 146:          <MoreTextData>Victory</MoreTextData>
 147:        </QuestConditionDef>
 148:        <QuestConditionDef>
 149:          <Objective>
 150:            <Icon></Icon>
 151:            <Text>Battle Lost</Text>
 152:            <IsOptional>0</IsOptional>
 153:          </Objective>
 154:          <Class>Failure</Class>
 155:          <Type>BattleFinished</Type>
 156:          <TextData>Anithan</TextData>
 157:          <MoreTextData>Defeat</MoreTextData>
 158:        </QuestConditionDef>
 159:      </QuestObjectiveDef>
 160:      <QuestObjectiveDef>
 161:        <ObjectiveID>2</ObjectiveID>
 162:        <NextObjectiveID>3</NextObjectiveID>
 163:        <Description>Return to your capital with the untranslated book of demons.</Description>
 164:        <QuestConditionDef>
 165:          <Objective>
 166:            <Icon>Mana_32.png</Icon>
 167:            <Text>Return to the capital with the untranslated book of demon summoning.</Text>
 168:            <IsOptional>0</IsOptional>
 169:          </Objective>
 170:          <Class>Success</Class>
 171:          <Type>UnitEntersCapital</Type>
 172:        </QuestConditionDef>
 173:      </QuestObjectiveDef>
 174:      <QuestObjectiveDef>
 175:        <ObjectiveID>3</ObjectiveID>
 176:        <QuestEnd>1</QuestEnd>
 177:      </QuestObjectiveDef>
 178:    </QuestDef>

Comments (Page 3)
6 Pages1 2 3 4 5  Last
on Aug 31, 2012
@Heavenfall: late game events caused by dominating could make sense if they fit well into the gameworld and the lore. Agreed, it would feel cheap if a bunch of dragons simply popped into existence for no reason. But what if there was some nice setup? Not sure if events can be chained together, but how about this: you get a pop-up explaining that there is an ancient evil waking in the land, and a crumbling mountain stronghold once thought dead and dormant is again showing signs of life. 10 turns later, you hear that indeed Skull Mountain is once again inhabited by the spirit of an extremely powerful warlock bent on world conquest. His mountain (which is a type of lair) begins spawning hideous creatures (conjured by the elemental magic of the warlock) which target cities in the vicinity and gradually spread outward. Something like this would be really fun and integrates smoothly into the game without seeming to be a cheap trick. This example inspired by the Warlock Lord from Sword of Shannara, by the way (my favorite fantasy book).
on Aug 31, 2012
And going back to dragons, how about this: a band of thieves has stolen a cache of sculpted gold dragon eggs from the Guild of Magic, hoping to sell them for a tidy profit. What they don't know is that the eggs are real, and have been enchanted with a magical spell of awakening in case of just such an event. The Guild Master implores you to track down the thieves and retrieve the stolen eggs before they start to hatch...
on Aug 31, 2012

About this event in particular- wouldn't it buff Tarth instead of hurt them?

 

If Tarth is winning, such an event might just hand them the game, seriously.  Just a thought off the top of my head, and I don't think this is necessarily problematic, as long as there are other random events.

 

I also wanted to see some minor random events- like what you had in FFH2.  Not everything has to be epic. 

 

What I'd really like to see- is modders get their hands on this, make some events, and someone from Stardock batch up and adjust the best events as needed into post-release content.  

on Aug 31, 2012

Speaking of events, I was thinking about FFH and its Apocalypse Counter recently, and I thought it'd be rather interesting if Spells or even research Tech could trigger new events (such as new Factions appearing? Too much to hope for?)

 

And on another note... Does anyone else read the title of this thread with the sound of a shotgun being reloaded? "I've got your random events right here..." *ch-chk*

on Aug 31, 2012

I can't wait to mod.

As for trigger, an Idea I had to keep the player in the game is that you could view each player as an novel story. In a novel, in order to keep the reader reading, there must be a series of interesting events that occurs for the story to be interesting. If you end up with a down or too much events, the reader will not be pleased.

Maybe it could be interesting if the player could keep track of how busy is the player. If a player is in war with 2 players and have tons of problem to manage, then few events would spawn to him, because he does not have any free time and he does not care.

On the other hand, the player isolated on an island with little things to do would get much more random events and quest to keep the player buzy and in the game.

A cheap way to implement this could be that any random event or quest that a player does not want to do is simply passed to the next player. But if you do that, there must be consequences for failing a quest "like in warlock" to prevent players from accepting all quests and not complete them. Maybe it could drop his reputation or something specific to these quest/events and the quest/events are assigned in order of reputation.

on Aug 31, 2012

I hope that you guys will be releasing an editor that will make this even easier for those of us who are not programmers.

on Aug 31, 2012

Mtn_Man
I like the general idea of random events, but I hate the idea of suddenly losing a game because 5 dragons unexpectedly spawned outside my capital.

 

I actully like the idea of 5 dragons unexpectedly spawning outside the capital. Escpecially since you have dominated the rest of the map

on Aug 31, 2012

DsRaider
Just curious if many players have been getting random events so far. I think I got the Meteor Shower one but the actual painting never showed.

I have never seen a random event in FE or for that matter in WOM.  Guess I have just been unlucky.  When the game goes live I will defantly have to adjust those odds from 1/10,000 to somthing resaonable like 1/50.

on Aug 31, 2012

ErikCurre
@Heavenfall: late game events caused by dominating could make sense if they fit well into the gameworld and the lore. Agreed, it would feel cheap if a bunch of dragons simply popped into existence for no reason. But what if there was some nice setup? Not sure if events can be chained together, but how about this: you get a pop-up explaining that there is an ancient evil waking in the land, and a crumbling mountain stronghold once thought dead and dormant is again showing signs of life. 10 turns later, you hear that indeed Skull Mountain is once again inhabited by the spirit of an extremely powerful warlock bent on world conquest. His mountain (which is a type of lair) begins spawning hideous creatures (conjured by the elemental magic of the warlock) which target cities in the vicinity and gradually spread outward. Something like this would be really fun and integrates smoothly into the game without seeming to be a cheap trick. This example inspired by the Warlock Lord from Sword of Shannara, by the way (my favorite fantasy book).

Having a good lore behind it doesn't really change the fact that you're stacking the deck against the player with a domination-type event. It's a pretty rotten way to design a game.

on Aug 31, 2012

Bellack
I hope that you guys will be releasing an editor that will make this even easier for those of us who are not programmers.

 

Eh? Modding XML tags isn't hard at all. You don't even need to worry about game logic, managing memory, or any of those really annoying things actual programmers do.

on Aug 31, 2012

Madcatter

Quoting Bellack, reply 37I hope that you guys will be releasing an editor that will make this even easier for those of us who are not programmers.

 

Eh? Modding XML tags isn't hard at all. You don't even need to worry about game logic, managing memory, or any of those really annoying things actual programmers do.

 

Oh how little you know, lol.  XML is hard to get into.  It looks so daunting to people that have no idea what things mean, even though it really is simple as far as a design goes.  I think Bellack was asking for a screen that took out all the code and was filled with text boxes instead.  It could be made Im sure either by these guys, or a modder after launch.  It would be a cool little standalone ap though.  You could call it iFE.

on Aug 31, 2012

Heavenfall



Quoting ErikCurre,
reply 32
@Heavenfall: late game events caused by dominating could make sense if they fit well into the gameworld and the lore. Agreed, it would feel cheap if a bunch of dragons simply popped into existence for no reason. But what if there was some nice setup? Not sure if events can be chained together, but how about this: you get a pop-up explaining that there is an ancient evil waking in the land, and a crumbling mountain stronghold once thought dead and dormant is again showing signs of life. 10 turns later, you hear that indeed Skull Mountain is once again inhabited by the spirit of an extremely powerful warlock bent on world conquest. His mountain (which is a type of lair) begins spawning hideous creatures (conjured by the elemental magic of the warlock) which target cities in the vicinity and gradually spread outward. Something like this would be really fun and integrates smoothly into the game without seeming to be a cheap trick. This example inspired by the Warlock Lord from Sword of Shannara, by the way (my favorite fantasy book).


Having a good lore behind it doesn't really change the fact that you're stacking the deck against the player with a domination-type event. It's a pretty rotten way to design a game.

Have to disagree with you here. First off the event is rare. Second your already dominating the map it would be nice to have at least one last challange in the game. Third I personally like a very punishing game and these type of events would be great.

on Aug 31, 2012

Im with Bellack.  I dont always want to win.  If you win every game you're not going to find much joy in the re-playability.  I want to get severely punished for no good reason every once in a while just for the sake of being severely punished for no good reason.

How about a random event where one of yours or the AI army (or hero) defects from one side to the other while your at war.  That could really get you pissed off.

If you the underdog you get it.

If your killing them they get it.

The text is "we could no longer watch you pillage these people's homes and kill their children.  Good day sir!"

 

lol, what do I know.

on Aug 31, 2012

mfrast
How about a random event where one of yours or the AI army (or hero) defects from one side to the other while your at war. That could really get you pissed off.

 

I'm not opposed to events based on power levels but this one is very very bad for this game. Yes, it would tick the player off when their champions desert for no real reason. With a loyalty mechanic which can be controlled sure, but just out of the blue? That's a huge screw you to the player. At least the dragons attacking can be a fun (if challenging) encounter with potential reward.

on Aug 31, 2012

I'm with Heavenfall on this.  Making creatures randomly appear out of nowhere to wail on the player just because he's winning is a big turnoff for me.  I'm okay with the other players getting together to oppose the leading player (whether AI or human), as that's occurring within the game rules, and is a natural aspect of how they should be playing anyway.  That said, it shouldn't be that all players suddenly go after the leader.  The leader should still have some allies, who are "playing for second place" so to speak, but riding the coat-tails of the leader.

Now, I'm not opposed to end-game dynamics that spice it up, but they shouldn't be just some random event, they should be something the player can anticipate.  Examples from other games:

  1. MoO2: Attacking Antares (though this is under the player's control).
  2. Warlock: Battling the opposing god's avatar.
  3. Distant Worlds: Battling the Shakturi.

Late "game-changers" are an awesome addition, but they need to be tied to the game mechanics, and be able to be anticipated to some degree by the player.  The game just suddenly cracking you across the side of the head with a baseball bat because you're doing too well would make me turn off random events.  That would be unfortunate, because I like the other ones.

When mega-events were proposed for GalCiv2, I was very excited.  However, after actually trying them out in practice, I found myself invariably turning them off.

 

6 Pages1 2 3 4 5  Last