Skip to content

Tutorial: Playable Characters

vince94 edited this page Oct 13, 2021 · 4 revisions

Playable Characters

What is an RPG without a character to control?

Probably either a very terrible or a very innovative game. Or both. But we digress.

Playable characters are handled differently from NPCs, and have different, more fleshed-out properties assigned to them. Customizing them can produce highly interesting results. However, like NPCs, their sprite groups are located in SpriteGroups.

List of files used:

  • dont_care_names.yml
  • exp_table.yml
  • initial_stats.yml
  • naming_skip.yml
  • playable_char_gfx_table.yml
  • stats_growth_vars.yml

Names

This is a minor feature, but it might interest you if you are doing a complete overhaul of EarthBound. You can change the default names proposed to you (by the "Don't Care" option) in the dont_care_names.yml file, where 0 is Ness, 1 is Paula, 2 is Jeff, and so on. A total of seven suggested names can be specified in total.

You can enforce names upon the user, if you so choose, through the use of the naming_skip.yml file. Setting Enable Skip to true skips the naming sequence once a new game is started, using the names specified in that file instead. Optionally, you can set Enable Summary to true if you want to show the player the names that are going to be set (if the user clicks "Nope" on the summary screen, he'll just be taken back to the summary screen once more).

Leveling Up

There are four distinct files which control the way characters level up.

exp_table.yml sets the required amounts of experience required for each character to attain new levels – setting them all to 1, 2, 3, etc., for example, will make your characters level up quite quickly!

stats_growth_vars.yml sets the growth rates for each character when a new level is gained. These are used by the engine's mathematical equations to compute the gains in each stat at the time of level up, as outlined in this guide.

initial_stats.yml specifies the initial state each character is in when they first join the party. Each label is clearly-named (Experience Points, Items Possessed, Level, Money), with a fifth property of unknown purpose (appropriately enough, labeled Unknown). The numbers specified in Items Posessed are defined in item_configuration_table.yml.

Finally, playable_char_gfx_table.yml is in various ways analogous in purpose to npc_config_table.yml in that it ties the characters with their sprite groups. Dead Sprite Group specifies the sprite group to use when one of the characters dies, and so on with all the other properties (once again, there is an Unknown property).

Clone this wiki locally