Team | Unity | itch.io
Time: 21-09-2023 - 17-11-2023
Team | Unity | itch.io
Time: 21-09-2023 - 17-11-2023
This project aimed to publish our own game as part of a team. We had about 8 weeks to plan and create everything. I was part of a team of six, and we strived to create the best game we could. We created the best itch of the year. Can be seen on their art station.
Chiel Eikelenboom (Developer),
Norah Nimwegen (Artist),
Kyrill Oosterveen (Developer),
Lola Prent (Artist),
Yesse Seijnaeve (Developer),
Tijmen Zwaneveld (Artist).
I made two main contributions: the player controller and the dialogue system. Additionally, I created the tutorial. Although a tutorial wasn’t initially planned, my team insisted that we include one, so I had to quickly put one together.
The player controller was implemented using a Finite State Machine (FSM), which I selected due to the uncertainty surrounding the player’s full range of abilities. The FSM proved to be an ideal solution, offering flexibility for future expansion while maintaining robust control, preventing unintended alterations.
I designed the dialogue system to be as external as possible. To achieve this, I created static utilities that allow the dialogue system to function without dependencies. The only reference it requires is a Scriptable Object (SO), which defines an interaction. This interaction is an array of another SO that stores the dialogue lines.
In each line, there is a field called "original dialogue text." This field allows the system to perform a text check for specific keywords, such as "player," which will be replaced with the player’s name from the GameManager. Similarly, keywords like "LEFT" will be replaced with the corresponding keybind for the left movement key.
Additionally, there are fields labeled "speaker" and "sprite name." These fields retrieve the desired sprite through a singleton script, which ensures the correct sprite is fetched and displayed. If the sprite is not found, the system will create and load it as needed.
Here, you can see multiple options, primarily for dialogue lines and settings. The settings allow the text to automatically skip to the next dialogue line without requiring confirmation that the player has read it. There is also an option called "can player walk," which is used to restrict player movement while a dialogue is active.
In the dialogue system, you can perform several actions. You can use breaks, which, when active, slow down the text at punctuation marks. The "check placeholder" option checks if text needs to be replaced, such as substituting "player" with the player's name. "Text speed" controls how fast the dialogue is displayed, and "line font" allows you to apply a specific font to the dialogue. If no font is selected, the default Unity font is used. The other fields mentioned were covered earlier.
This is the manager that retrieves and returns the correct sprite for the dialogue line based on the provided settings. It checks the sprite reference specified in the dialogue system to ensure the appropriate sprite is displayed alongside the dialogue. If the specified sprite isn't found, the manager automatically retrieves or generates a suitable sprite, ensuring smooth integration with the dialogue system.