Blue001

Veteran
Veteran
Joined
Jan 13, 2014
Messages
231
Reaction score
112
First Language
English
Primarily Uses
RMMV
What it would be used for.

  • Open World Games
  • Non-Grind Games you would rather have the story drive the player forward and not require leveling specifically to continue the narrative.
Say I would like to make an open world game that has things like drops and encounters seemingly "level up" as you play. So you can progress the story as you wish but items you find, enemies you encounter and things along that line automatically change based on your party's average/max level. All done without having to make 1000000000 conditional branches.

How it would/could Work

The concept is fairly simple. First the game creator would add note tags to all items, gear, and enemy troops they want added to a leveled list.

The notetag for items and gear would be something along the lines of

<LL>

Lowest = 1         (This is the lowest level this item will have a chance to appear)

Highest = 10       (This is the highest level this item will have a chance to appear)

Family = all                  (See Family Below for an in depth explanation)

Weight = 5                   (If many items of the same family af found to be obtainable at this level, then the weights will be compared, and an item with a higher weight would be chosen more often to be given)

Chance = 100              (Different than weight, this would be the chance you would even get this item if it IS chosen by weight, allowing you to make rare items even harder to get.)

</LL>

The family setting is a string that tells the game what LL's to include this item in. This may have multiple strings all separated by a comma, which will put this item into family's. The family is to make sure the player always gets this TYPE of Item/equipment from this source. So if you wanted an item to be included in the 'healingpotions' family to always give the player a potion from this particular source, you would put "Family = healingpotions".

If this item is part of the healingpotions family but you also wanted it to be allowed to be given in a common item pool, you would list, "Family = all,healingpotions." and then any time "all" was called, you would be able to get this common item.

How it would Execute

At game start the script would save all items with tags to the leveled list sorted into their families to be called from later. Some items may end up in multiple family lists.

Then in an event, you would call a plugincommand like "giveLeveledItem : healingpotions" and the game would check the family listed, and then calculate the average level of the party or highest leveled party member and give an item from the LL Family that matches this. The only thing I wouldn't know how to achieve is how to let the game designer call that items name in a message window so they can tell the player what they just got... maybe you can figure that part out?

Enemies and Drops

Enemies would work almost the same way (but may be more complicated to script in).

You would have each enemy in a troop able to automatically become a stronger version if it is too weak.

The game designer would make different stronger versions of each enemy and in each one tag it with the following

<LL>

Lowest = 1             (This is the lowest level this enemy will have a chance to appear)

Highest = 10          (This is the highest level this enemy will have a chance to appear)

Family = wolf         (Relatively the same to Family for Items above, but see description below for more info.)

Weight = 5             (If multiple enemies from the same family are possible to appear this would weight them against each other with the higher weighted ones appearing more often.)

</LL>

The Family String is a name you give that specific enemy family. If you place this enemy in a troop and encounter it, but it doesn't fall in the level range you have set on it, it will change it to one from the same family and with the appropriate level. If one isn't found, the highest level version will appear. If an enemy has two or more different family names, it can choose one from any of those family lists.

So for example, you would place a lvl 2 wolf in a troop as the lowest level version and a type of placeholder, then set the encounters for that troop to happen anywhere a wolf should appear (via call combat or map encounter setups) and then set up another lvl 10 wolf up in enemies tab (but not place it in any troops), if you get that encounter at a higher level, the lvl 2 wolf would/could be replaced by the lvl 10 wolf at battle start before the screen fades in.

As for drops, each enemy would have a tag listing...

<LLDrops>

all, 4

healingpotions, 1

</LLDrops>

The above means that 4 items within the 'all' family will be able to be obtained if you kill this enemy, and 1 item in the healingpotions family will be able to be obtained with their levels being checked in their LLs as well so if an item comes up but its chance was low and was un-obtained anyway, than no item would be obtained. If you want to give a specific item no matter what, you would add it to a family by itself.

Shops

Having leveled shops would be great too... but that would likely require a whole different script so shops could have a variable set of items for sale.

Other Ideas

Equipment, States or Actors could have tags that increase/decrease the weight and chance of finding certain items from families, or enemy troops (like making the chocobo in FF7 appear if wearing the choco bangle.).
 
Last edited by a moderator:

Latest Threads

Latest Posts

Latest Profile Posts

My entire world, full of monsters and treasures, will likely be done by the end of the year. After that it's all NPCs and side quests... then done. I'm never making an open world game again xD
The more I read Calvin and Hobbes as an adult, the more I deeply respect Bill Watterson. Plenty of stuff flew over my head, but now that I'm old enough to appreciate the viewpoints he shared with the fun and imagination? I am grateful that C&H was basically my early childhood.
After years of relying on others and the community to help with making my games, I've decided to delve into the world of scripting. Thought I'd share a few simple scripts that I made that I'm very proud of and excited about!

Redesigning characters after such a long time feels great. Makes me excited to work on an old game again.
Phone menu to replace main menu WIP:

Forum statistics

Threads
116,097
Messages
1,095,758
Members
151,485
Latest member
Anderson_Linhares
Top