AddThis Smart Layers

Get tutorials and game reviews by email

Name Email



 

Monday, 21 April 2014

RMXP Logo

A simple RPG Maker XP Character Generation System


Allowing players to affect the development of characters is one of the staples of RPG genre. Here you'll find out how to create an event driven character generation/attribute system...

Share this Tutorial →

Introduction:

Some players HATE the idea of having their character pre-defined when they start the game. I personally think it's the reason why sandbox RPG's like Elder Scrolls has done so well in the past. By giving the player control, you can really open up a world of possibilities for your game, as well as creating phenomenal replay value to your game. Of course, character customisation is never enough to make a bad game good, as Brink proved rather well last year. Creating a full character customisation system in RPG Maker is not an impossible task but it's unlikely that one can justify the amount of work that will go into creating it, unless of course you then make every other aspect of the game reflect the player's choices (don't try it...trust me). One thing you can however do, to give the player that little level of control, is allow them to pick their class at the beginning of the game which; many projects do...but why not go further?

If you've read my previous tutorials, then you'll know that I have an appreciation for intricate systems that take place behind the scenes. In this case, I have developed a very simple system based on a single variable that will allow you to change the type of character a player is presented with, based on a variety of different things. This system can be as complicated or a simple as you wish it to be, in my example I've put together a very simple set up to show you roughly how it might work but feel free to experiment.


Step 1:

Create a single variable. You can name it what you want, but for the sake of memory I have named mine Player Attribute. You can set the number to anything you want, but remember that this number is your starting point, a sort of neutrality so:
       a: Ensure it is an even number
       b: Make it an easy to remember number

In my example I have picked zero simply because it is the most neutral number I could think of. If I were putting together a good/evil system (which you can do using this method) then 0 is the perfect neutral. All negative numbers are bad, all positive numbers are good and this rating of evil and good goes up and down as the numbers increase and decrease...you get the idea. Your variable should look something like the image to the right.



Step 2:

The figure stored in our variable is the centre of this entire system and will essentially be a numeric representation of the type of person our player is and therefore...what type of character they will be using. The next thing we need to do is set up the input method. What I mean here is the way in which the player's inputs or actions will manipulate this number. In my example, simply for the sake of simplicity, I have created a question that will repeat itself 3 times. This question is...are you a nice person?. 
You can simply answer Yes or No. You then need to create variable controllers to modify the 'Player Attribute' variable based on the response given. This is very simple. As you can see here. By answering yet, the game then adds 1 to the control variable increasing the variable value from 0 to 1. Alternatively, when No is selected, the attribute score decreases by 1 to -1. In simple terms, this means that by saying yes, confirming you are a nice person, the variable value increases. Remember that the higher the number, the nicer you are in this case. To add and subtract amounts from your variable value, simply use the control variables screen. It should look a little bit like this if you're doing it right. 



Step 3:

To make this system a little more interesting, I've then added the same question a few more times to simply create more variations in the potential number. Instead of 1 and -1 (remember it can't be zero because we have to say yes or no, meaning we have to add or subtract 1 to the number.) Again, because I'm lazy I just repeated the question numerous times to change the number. I created the question 3 times meaning the highest potential variable score you could have in the end is 3 (3 questions, 1 point each = 3) or -3 (3 questions, -1 point each = -3) Of course, there are also variations in between these numbers to think about if your answers were not all the same. In my case, these could only be -3, -1, 1 or 3. This is because it is mathematically impossible to land on -2 or 2 because of the odd number of questions. When making your system, make a note of all the possible variations you could have, you'll need it pretty soon. Also note that in my event, I've created a text command that just says +1 or -1, this is not necessary and simply so I could make sure that every aspect of my event is working correctly. Just a habit of mine really.


Step 4:

The final thing we need for this event to work is some sort of output. In this very simple event that I have created, my output is simply going to be a declaration of the score to the player. It will not make any change to the character yet but will simply prove that my system is working as intended. This is also a good way of figuring out your variations (like I mentioned earlier) if you don't feel like thinking about it. My final command is as follows. You might be asking what \v[0003] is...in simple text terms, this is a call out that forces the game to display as part of a stream of text the value stored inside this variable. As you'll remember, the variable I am using is housed in block number 0003 so the call-out needs to state the number as it appears on the system. This is how it will appear in game:


This is generally how the system will work in it's most basic sense. To evoke changes to the character, their skills or their class you'll need to utilise some conditional statements, looking for the different potential variations that may appear as the variable value. (Remember when I said you need to learn these numbers?)


As you can see. I have set up a conditional statement looking for each of the different variations that could appear in the variable value, 3, 1, -1 or -3. Considering that 3 is really good and -3 is really bad, the character that is chosen for the player is designed to reflect that. The various characters I have set up are as follows:
  • Aluxes - Nice Guy - Score Required: 3
  • Basil - Sort of nice guy - Score Required: 1
  • Cyrus - Bad person - Score Required: -1
  • Dorothy - Really bad person - Score Required: -3
Always remember to remove the default character from the party as well if you need to, it's a simple task that most people seem to forget.

And that's basically it, you can get alot more advanced than this and even manipulate the way your character looks throughout the game using this system and conditional statements (think Mass Effect.) I would recommend downloading the game files available and having a play around with what you can do, the possibilities really are endless here.

No comments:

Post a Comment

 
© (2014) RPG Maker Guru - any reproduced content is done so in line with fair use policies