Letting The Player Choose Their Character
March 30, 2021
March 30, 2021

Letting The Player Choose Their Character

Letting The Player Choose Their Character



March 30, 2021

We’ve all made games where our main character has a premade look and personality, but sometimes it’s fun to give our players some options to the main character they’ll be controlling. So let’s take a look at a few ways we can give our players some control over their main character at the start of the game.

Before we can set up any customization for our player’s main character, we need a base for the character! For this tutorial, let’s make actor 10 our main character. Since we’ll be letting the player pick the main character we can use any sprite as a placeholder (in this case a flame sprite) and make sure that our party includes actor 10.

The reason we’re setting up a dedicated actor as our main character is so that later in the game we can have NPCs call the player by name in messages using \n[10] and also make any item/stat adjustments without needing to check which actor our player chose as their main character.

With our main character ready, we can get started on the eventing!

Picking from Preset Characters

For our first character selection, let’s give our players the option to choose from three characters: Reid the Swordsman, Priscilla the Magic Swordsman, and ??? the Sorcerer. We could have the choice on an empty map, but for this example let’s set up a map with some events so our players will get to see their choices as well.

Now, this event could be super basic if we wanted, just the standard show choices command where each choice just changes actor 10’s name, class, and appearance. It’s easy to throw together and we’d end up with an event that looks like this:

There are some issues with this event though. First thing is that we didn’t change the show choices cancel option to ‘Disallow’, which means that if our players hit cancel instead of selecting an option they’ll end up as Priscilla. Another big problem is that we didn’t tell our players anything about these characters besides their name! A lot of players like to check out their options before making a decision, so let’s re-work this event to be a bit more player-friendly.

The two main things we want to add are more details about the character when our players choose that option, and a way for our players to say no to their choice. Adding details is as simple as having another message where we share more about the character, including their class.

To give our players the ability to say no and pick another option, we’ll be using labels. Labels give us a way to jump to certain parts of an event without having to restart the whole thing, so we can add in a yes/no choice where ‘yes’ will set up our main character and ‘no’ will use the jump to label command to hop back to the starting choice. Our labels need to match exactly, so it’s a good idea to write out the label’s name and then copy-paste that into our jump to label.

All three choices would get the same treatment, with the description and actor 10 changes obviously matching the chosen character. But we can still make the choices more interesting to look at, so let’s add some extra commands. We can start with a move route that makes the chosen character’s sprite step forward before the description plays (and a move route that moves that event back into place if the player decides not to choose that character). And since we’re using characters that came with MZ, we have access to matching busts so why don’t we include a show picture of that bust as well? That way our players can really get a feel for the character they’re picking.

Lastly, let’s play an animation on our player when their character takes their new form just to add a little more pizzazz. All together, our new section for Reid now looks like this:

Then all we need to do is give our other two character choices the same treatment, and our event is complete!

Now when our players choose a character their matching event will step forward and the character’s bust will appear while the description is given, and our players will get to decide if they want to play as that character or not.

This is a great way to give our players some character options, but what if we want to give them more control to build their own character?

Building a Character

Now that we understand the basics of making a character choice event, we can make one that’s a bit more detailed. Instead of just choosing a preset character, let’s have our players pick four different things to make the character their own:

  • Choose a Class 
  • Pick starting Skill for that Class
  • Choose an appearance
  • Input the character’s name

To keep things simple in this example, let’s limit our class choices to two (Swordsman and Sorcerer), give only two skill options for each class, and have four appearances to choose from.

Starting out, we’ll need our character creation map. Besides our main autorun event, we need four events that will show the appearance options later in the event. We could have our autorun event do all four of the character creation steps, but let’s instead have it only do the class and skill and have our other events control our players’ appearance and name. But for now, we can leave them blank.

Our autorun event will start with the class choice, which is set up pretty similarly to our previous example. When the player choses a class, they get a quick blurb about that class and get the option to change their mind. If they do decide to choose that class, then we’ll change our actor’s class to it right away and then move on to the skill choice.

The skill choice section is similar, but since we want the skill to match our players’ class we need to use some conditional branches to check which class our main character has. So if our player chose Swordsman, then the two skills they can pick from are Strong Attack and Slash. Once they’ve picked their skill, then we can add it to our main character (and if we want the player to be able to level up and end up with both skills? Then we can just add both skills to the class in the database with a higher level requirement and the unknown skill will be gained later).

Our Sorcerer branch will be similar, but for Fire and Ice skills instead.

Once we’ve set up our skill choice branches, we need to wrap up the autorun event and give control over picking the appearance to the player. We can add some move routes for our blank events to change their graphics and a message that explains what our player needs to do next, and then end our event by turning on a self-switch that activates a blank page.

For this example the four appearances will be the same no matter which class or skill is selected, but we could use conditional branches to show different options if we wanted (we would just need to make sure we include the same branches in the appearance events so the right look is applied).

All together, our autorun looks like this:

With our players’ class and first skill chosen and control handed over, now they need to pick their appearance and name. Each event will be set up in the same way, with just the bust used and the change actor images command different to match the chosen look. If the player’s happy with the appearance we can change our actor’s images and then move on to choosing their name. An input name command and one last label-yes/no choice combo so the player can choose a different name if they want, and the event is pretty much done.

With those events finished, our character creation is finished!

While our examples in this tutorial are pretty small when it comes to choices, the same concepts can be expanded to make as detailed a character creator event as you want. Using a similar system, what options would you give a player at the start of the game? And are there other ways you could use labels and choices in your games?

Recommended Posts