Chapter 3: Character Creator
In many adventure games, the players generate their characters by rolling dice! In this part of the project, you will implement several class: Ability
, AbilityScore
, Abilities
, and PlayerCharacter
that will allow you to create a Character Creator
Scene
like the one below (note, it is a 25MB load so it may take a moment to start):
3.1: Ability Score
In this chapter, you will define an Ability
enum
and an AbilityScore
class which represents how capable a character is in various situations.
3.2: Ability Score Prefab
In this chapter, you will start begin to work on the Character Creation Scene
which will display several AbilityScore
s. To help with this, you will create an AbilityScore
Prefab
that will make it easy to add any number of AbilityScore
s to the screen.
[3.3: Ability Manifest]
In this chapter, you will create an AbilityManifest
class which represents a collection of each Ability
. This class will ensure that adding new Ability
types will automatically be included on a character during creation.
[3.4: Ability Manifest Prefab]
In this chapter, you will create a Prefab
to display an AbilityManifest
to the screen. You will add this to the Character Creation Scene
and add a button that allows the user to generate new AbilityScore
s to populate the AbilityManifest
.
[3.5: Player Character Class]
In this chapter, you will write a PlayerCharacter
class which represents a player controlled character in Adventure Quest.
[3.6: Character Creation Controller]
In this chapter, you will add an Input Field
to your Character Creation Scene
to allow the player to specify a name for their character. Additionally, you will add write a CharacterCreationController
which validates the character’s name and is capable of constructing a PlayerCharacter
with the information present in the Scene
.
[3.7: Character Portrait]
In this chapter, you will define a PortraitDatabase
class that maintains a set of images that the player can select when creating their character.
Join the Discussion
If you're stuck, have questions, or want to provide feedback, you can do so below. However, I ask that you please refrain from posting complete solutions to any of the challenges.
Before commenting, you will need to authorize giscus. Alternatively, you can add a comment directly on the GitHub Discussion Board.