~ Elements of RPG ~
My first RPG was Oblivion RPG (2013), and for
some reason it became popular.
In this document, I'll review the basic tools and
main lessons from my journey of RPG design.
I'll also reveal some secrets about how I make
triggers perform complex calculations, like:
1) How to reference binary codes (useful when
I randomise big numbers of switches).
2) Create an efficient and accurate percentage
system with only a few triggers.
3) Convert large stacks of memory between
death counters in a single trigger cycle easily.
~ Recent lessons ~
1) Avoid economy options
For two reasons: economy affects the pace
of the game (should be set) and it removes
choice because players nearly always start
by choosing economy upgrades.
2) Give Forges to players
Players want fast games without having to
travel to an upgrade building.
3) Make heavy choices
It is best to give the player only a few choices
that carry weight, greatly impacting the game,
rather than many choices with small benefits.
This has a powerful psychological effect.
4) Relinquish infinite power
Do not give players the possibility of attaining
infinite magic power. Make the spells big; not
spammable.
People actually do not like feeling invincible
or all-powerful.
5) Block the middle
Do not give players the middle of the map. It
makes them feel too confident. Every story
needs a sense of danger. The middle of the
map should be restricted or dangerous,
and earned through reward.
6) Deny access
Make the players feel contained. New areas
of the map should become available through
battle or story progress. This increases the
sense of reward.
7) Element of surprise
Add the element of surprise to improve the
feeling of excitement. Every game needs this.
Surprising people can be done in many ways:
- Different story directions
- Give weak units random powerful spells
- Random rainstorm (affects gameplay)
- Make NPCs do random jobs or move around
- Give NPCs emotions and random responses
- Alternative paths to victory
- Day/night system with environment changes
8) Logical items
Item menus should be logical and well-crafted.
For example, when choosing a battle item from
a list, ALL items should be worth choosing in
many situations.
9) Disable spell-spamming
When players max out spells and magic power,
they incline to spamming all spells at the same
time. This makes battle look easy with heroes
overpowered. Adding a toxicity meter or some
type of disadvantage to spell-spamming might
improve this.
Alternative methods would be to make spells
cost a percentage of magic power and have
the player improve magic regeneration rather
than MP, allowing only 1 or 2 spells to be cast
at any given time. Or simply add a shared
cooldown for spells.
10) Intricate storyline
Never underestimate the power or importance
of your story. Do not create a story to fit your
battle system. Take time, literal Earth time to
walk the earth and develop a story.
11) Assist money
Even if it's just 10% money bonus, people really
enjoy the benefits of assisting allies. Think also
about Assist XP.
12) Different resource types
Adding different resources increases the depth
of a game significantly.
It also creates a mystery and the need to learn
how the resource types are different from each
other in value and how shopkeepers treat them.
(Some resources use curve-graphs to depict
cost to property values.)
13) Auto-stats
Players do not want to mess around with the
unexciting job of adding small attribute points.
It is best to offer a choice of Battle Class at the
beginning of the game that improves attributes
automatically.
14) Auto-equip
Add an auto-equip system that automatically
equips the most expensive items. Allow the
player the option of manual control so they
have a choice.
Anything that speeds up the game or makes
people feel protected is a good thing.
15) Danger zones
Make some extremely dangerous areas so that
players don't get too confident. Sustain a sense
of danger throughout the game and promise a
big reward.
Give very high bounties for killing big and strong
enemies and increase their rarity. It will excite
players to find these big-bounty units and they'll
want to kill them. This provides a sense of game
mastery.
Also, you can provide these beasts with a 25%
chance to drop a valuable item. Make this item
attainable on the first or second kill to educate
the player.
16) Power increments
Gaining power must be big and slow, to enhance
the sense of reward. Motivate the player for big
opportunities.
~ Dimensions of progress ~
The difficulty of a game should be ranged from
easy to hard across multiple dimensions.
Strategy types can include:
- Logic puzzles
- Battle decisions
- Knowledge of sociology (NPC choices)
- Sneakcraft (sneaking past guards)
- Memory of timing
- Building defence in a town
- Economic decisions
- Versing NPCs at a quiz show
- Battle Arena challenges
- Running a shop or business
- Chatting to bar girls
- Decrypting a message or secret language
- Winning a game at a casino
~ Referencing binary codes ~
When using Randomise Switch, this is a binary
system. It provides 1 of 2 results: set or clear.
Example #1
If you only have 4 results to randomise, that's
easy, right?
Result 1
Switch 1: set
Switch 2: clear
Result 2
Switch 1: clear
Switch 2: set
Result 3
Switch 1: set
Switch 2: set
Result 4
Switch 1: clear
Switch 2: clear
You can program these in any order. And you
know this. You also know that every time you
add a Switch, it doubles the results.
1 Switch = 2 Results (set / clear)
2 Switches = 4
3 Switches = 8
4 Switches = 16
5 Switches = 32
6 Switches = 64
7 Switches = 128
Imagine that you want to program 7 Switches
with 128 outcomes. How would you remember
which sequences you have already programmed?
You need a system to identify these results.
Here it is...
Switch / Value
1 = 1
2 = 2
3 = 4
4 = 8
5 = 16
6 = 32
7 = 64
To reference a sequence, start from the highest
number and work down. Make sure all switches
are Clear.
Example #2
To reference Sequence #13, start from Switch 4
with a value of 8 (Switch 5 has a value of 16; too
high) and set this switch. Switch 3 is next, has a
value of 4. 8 + 4 = 12, fits into 13. Set the switch.
We need the value 1 from Switch 1 to complete
13, so go ahead and set the switch.
Sequence #13
Switch 1 = set
Switch 2 = clear
Switch 3 = set
Switch 4 = set
Switch 5 = clear
Switch 6 = clear
Switch 7 = clear
~ Fast percentage ~
Okay, hopefully you're keeping up with me. Now,
suppose you have a spell or number of spells,
that when cast, have a specific % chance of
killing an extra unit or something else. You
want an immediate function that provides a
random value from 0 to 100.
In relatively the same way that I showed you
the binary reference (using switches to depict
values), we can perform a function at the start
of every trigger cycle to randomise and convert
any number of switches to values (increasing
by double each switch) and then adding these
values to a death counter for a random number.
Here's how...
10 switches provides 1024 results. Right?
Switch 1 : randomise
If Switch 1 is set , add 1 to Percent (DC)
Switch 2 : randomise
If Switch 2 is set , add 2 to Percent (DC)
Switch 3 : randomise
If Switch 3 is set , add 4 to Percent (DC)
...all the way to Switch 10.
Switch 10 : randomise
If Switch 10 is set , add 512 to Percent (DC)
Obviously the system renders a value anywhere
from 0 to 1024.
So when you use the condition in your spells,
divide by 10 hypothetically, this will give you
a value very close to an exact percentage.
If your spell requirement is 15%:
1024 x 0.15 = 153.6
If Percent is at most 154 (rounded up);
Perform special event.
~ Converting memory ~
In every game you create, ALWAYS (please, do
this) create a death counter called Memory.
You will be able to use this death counter
anywhere in your triggers, because you'll
set its value back to 0 after every use.
Why am I telling you this?
Let's suppose you have an attribute for your
hero called Guard. You can accumulate up to
100 points in Guard.
Each point of Guard attribute provides some
benefit to your hero, and at some point in the
game, you need to copy and paste the value
of Guard points into another death counter
whilst preserving the original value in Guard.
Remember how 7 switches provides 128
values?
Trigger #1
If Guard is at least 64 ;
Subtract 64 from Guard ;
Add 64 to Memory ;
Add 64 to Death counter ;
Trigger #2
If Guard is at least 32 ;
Subtract 32 from Guard ;
Add 32 to Memory ;
Add 32 to Death counter ;
Do this all the way down to value 1. You
should have 7 triggers. Now, every single
Guard point has been converted to Memory
and Death counter.
Now do the opposite combination of 7
triggers to empty Memory and restore Guard.
Trigger #8
If Memory is at least 64 ;
Subtract 64 from Memory ;
Add 64 to Guard .
My first RPG was Oblivion RPG (2013), and for
some reason it became popular.
In this document, I'll review the basic tools and
main lessons from my journey of RPG design.
I'll also reveal some secrets about how I make
triggers perform complex calculations, like:
1) How to reference binary codes (useful when
I randomise big numbers of switches).
2) Create an efficient and accurate percentage
system with only a few triggers.
3) Convert large stacks of memory between
death counters in a single trigger cycle easily.
~ Recent lessons ~
1) Avoid economy options
For two reasons: economy affects the pace
of the game (should be set) and it removes
choice because players nearly always start
by choosing economy upgrades.
2) Give Forges to players
Players want fast games without having to
travel to an upgrade building.
3) Make heavy choices
It is best to give the player only a few choices
that carry weight, greatly impacting the game,
rather than many choices with small benefits.
This has a powerful psychological effect.
4) Relinquish infinite power
Do not give players the possibility of attaining
infinite magic power. Make the spells big; not
spammable.
People actually do not like feeling invincible
or all-powerful.
5) Block the middle
Do not give players the middle of the map. It
makes them feel too confident. Every story
needs a sense of danger. The middle of the
map should be restricted or dangerous,
and earned through reward.
6) Deny access
Make the players feel contained. New areas
of the map should become available through
battle or story progress. This increases the
sense of reward.
7) Element of surprise
Add the element of surprise to improve the
feeling of excitement. Every game needs this.
Surprising people can be done in many ways:
- Different story directions
- Give weak units random powerful spells
- Random rainstorm (affects gameplay)
- Make NPCs do random jobs or move around
- Give NPCs emotions and random responses
- Alternative paths to victory
- Day/night system with environment changes
8) Logical items
Item menus should be logical and well-crafted.
For example, when choosing a battle item from
a list, ALL items should be worth choosing in
many situations.
9) Disable spell-spamming
When players max out spells and magic power,
they incline to spamming all spells at the same
time. This makes battle look easy with heroes
overpowered. Adding a toxicity meter or some
type of disadvantage to spell-spamming might
improve this.
Alternative methods would be to make spells
cost a percentage of magic power and have
the player improve magic regeneration rather
than MP, allowing only 1 or 2 spells to be cast
at any given time. Or simply add a shared
cooldown for spells.
10) Intricate storyline
Never underestimate the power or importance
of your story. Do not create a story to fit your
battle system. Take time, literal Earth time to
walk the earth and develop a story.
11) Assist money
Even if it's just 10% money bonus, people really
enjoy the benefits of assisting allies. Think also
about Assist XP.
12) Different resource types
Adding different resources increases the depth
of a game significantly.
It also creates a mystery and the need to learn
how the resource types are different from each
other in value and how shopkeepers treat them.
(Some resources use curve-graphs to depict
cost to property values.)
13) Auto-stats
Players do not want to mess around with the
unexciting job of adding small attribute points.
It is best to offer a choice of Battle Class at the
beginning of the game that improves attributes
automatically.
14) Auto-equip
Add an auto-equip system that automatically
equips the most expensive items. Allow the
player the option of manual control so they
have a choice.
Anything that speeds up the game or makes
people feel protected is a good thing.
15) Danger zones
Make some extremely dangerous areas so that
players don't get too confident. Sustain a sense
of danger throughout the game and promise a
big reward.
Give very high bounties for killing big and strong
enemies and increase their rarity. It will excite
players to find these big-bounty units and they'll
want to kill them. This provides a sense of game
mastery.
Also, you can provide these beasts with a 25%
chance to drop a valuable item. Make this item
attainable on the first or second kill to educate
the player.
16) Power increments
Gaining power must be big and slow, to enhance
the sense of reward. Motivate the player for big
opportunities.
~ Dimensions of progress ~
The difficulty of a game should be ranged from
easy to hard across multiple dimensions.
Strategy types can include:
- Logic puzzles
- Battle decisions
- Knowledge of sociology (NPC choices)
- Sneakcraft (sneaking past guards)
- Memory of timing
- Building defence in a town
- Economic decisions
- Versing NPCs at a quiz show
- Battle Arena challenges
- Running a shop or business
- Chatting to bar girls
- Decrypting a message or secret language
- Winning a game at a casino
~ Referencing binary codes ~
When using Randomise Switch, this is a binary
system. It provides 1 of 2 results: set or clear.
Example #1
If you only have 4 results to randomise, that's
easy, right?
Result 1
Switch 1: set
Switch 2: clear
Result 2
Switch 1: clear
Switch 2: set
Result 3
Switch 1: set
Switch 2: set
Result 4
Switch 1: clear
Switch 2: clear
You can program these in any order. And you
know this. You also know that every time you
add a Switch, it doubles the results.
1 Switch = 2 Results (set / clear)
2 Switches = 4
3 Switches = 8
4 Switches = 16
5 Switches = 32
6 Switches = 64
7 Switches = 128
Imagine that you want to program 7 Switches
with 128 outcomes. How would you remember
which sequences you have already programmed?
You need a system to identify these results.
Here it is...
Switch / Value
1 = 1
2 = 2
3 = 4
4 = 8
5 = 16
6 = 32
7 = 64
To reference a sequence, start from the highest
number and work down. Make sure all switches
are Clear.
Example #2
To reference Sequence #13, start from Switch 4
with a value of 8 (Switch 5 has a value of 16; too
high) and set this switch. Switch 3 is next, has a
value of 4. 8 + 4 = 12, fits into 13. Set the switch.
We need the value 1 from Switch 1 to complete
13, so go ahead and set the switch.
Sequence #13
Switch 1 = set
Switch 2 = clear
Switch 3 = set
Switch 4 = set
Switch 5 = clear
Switch 6 = clear
Switch 7 = clear
~ Fast percentage ~
Okay, hopefully you're keeping up with me. Now,
suppose you have a spell or number of spells,
that when cast, have a specific % chance of
killing an extra unit or something else. You
want an immediate function that provides a
random value from 0 to 100.
In relatively the same way that I showed you
the binary reference (using switches to depict
values), we can perform a function at the start
of every trigger cycle to randomise and convert
any number of switches to values (increasing
by double each switch) and then adding these
values to a death counter for a random number.
Here's how...
10 switches provides 1024 results. Right?
Switch 1 : randomise
If Switch 1 is set , add 1 to Percent (DC)
Switch 2 : randomise
If Switch 2 is set , add 2 to Percent (DC)
Switch 3 : randomise
If Switch 3 is set , add 4 to Percent (DC)
...all the way to Switch 10.
Switch 10 : randomise
If Switch 10 is set , add 512 to Percent (DC)
Obviously the system renders a value anywhere
from 0 to 1024.
So when you use the condition in your spells,
divide by 10 hypothetically, this will give you
a value very close to an exact percentage.
If your spell requirement is 15%:
1024 x 0.15 = 153.6
If Percent is at most 154 (rounded up);
Perform special event.
~ Converting memory ~
In every game you create, ALWAYS (please, do
this) create a death counter called Memory.
You will be able to use this death counter
anywhere in your triggers, because you'll
set its value back to 0 after every use.
Why am I telling you this?
Let's suppose you have an attribute for your
hero called Guard. You can accumulate up to
100 points in Guard.
Each point of Guard attribute provides some
benefit to your hero, and at some point in the
game, you need to copy and paste the value
of Guard points into another death counter
whilst preserving the original value in Guard.
Remember how 7 switches provides 128
values?
Trigger #1
If Guard is at least 64 ;
Subtract 64 from Guard ;
Add 64 to Memory ;
Add 64 to Death counter ;
Trigger #2
If Guard is at least 32 ;
Subtract 32 from Guard ;
Add 32 to Memory ;
Add 32 to Death counter ;
Do this all the way down to value 1. You
should have 7 triggers. Now, every single
Guard point has been converted to Memory
and Death counter.
Now do the opposite combination of 7
triggers to empty Memory and restore Guard.
Trigger #8
If Memory is at least 64 ;
Subtract 64 from Memory ;
Add 64 to Guard .
Post has been edited 1 time(s), last time on Jul 30 2024, 4:09 am by MetalGear.
None.






