Week 7: The Art of Building Text and Scrolling
April 14, 2024
Hello and welcome back to my senior project. I have finally reached the point in my operation where I must work on finishing the combat system and dialogue system. Both of these tasks will extend over into next week and the foreseeable weeks of this project and that is what I will be talking about in this post.
Buttons, Layers, and Text
In the previous post, I briefly went over what the different elements in the dialogue scene were for, however, I didn’t actually have anything in the elements. Well, that has changed as of this week and now we have buttons, a background, and a character. These are all just placeholders to help visualize what the actual dialogue scene will look like.
We still haven’t finalized all the buttons that we plan to include and Ellie is currently working on creating a more visually appealing dialogue box and buttons.
Dialogue System: Becoming a Text Architect
So for the dialogue system, instead of using a dialogue system asset from unity, I decided to build my own. Now the main considerations when I made this decision were that there honestly weren’t any decent dialogue assets on unity that were free. Additionally, implementing my own dialogue system allows for so much more freedom and customizability. For creating this dialogue system, I referenced Stellar Studio’s “Make a Visual Novel in Unity 2023” playlist to understand what components would be necessary and how to implement them.
Dialogue Blueprint
For my dialogue system I currently have 4 scripts/classes, textArchitect, dialogueControl, and dialogueSystem for changing and displaying text and a tester class to actually create the architect object for testing.
Text Architect
The textArchitect class is the main script/component of my dialogue system. It is in charge of making the text appear on screen based on the build method. The build method essentially controls how the text will appear on the screen and I currently have three build methods(typewriter, instant, and fade), but I have only implemented ‘instant’ as of this post.
Dialogue Control & Dialogue System
The dialogueControl class is just used for creating references to the UI elements responsible for the text and is serializable, meaning it allows me to load and save data to and from the object as well as making these properties visible in the inspector. The dialogueSystem class generates a dialogueControl object and is a singleton, which essentially means that there is only one instance of itself at any time and this instance is a variable that is globally accessible.
Tester
This class contains an array of strings for testing and creates a new instance of the dialogueSystem for testing. With this instance it then generates a textArchitect object and calls the build method every time the space key is triggered.
The Art of Scrolling
For the combat part of the game, I am planning to create a side-scroller. Essentially what I plan to do is have the camera to follow the player around. I am currently working on the script for the camera but I have already imported the backgrounds into the game.
Scrolling to the next week
As I move into the 8th week of this project, I plan to keep working on the camera scroll system and finish up the rest of the dialogue system. Additionally, if possible, I will also try to finish laying out the UI for the opening, defeat, and dialogue scenes. That’s all for this post and join me again next week as I struggle to get the camera scroll to work.
References
“Make a Visual Novel in Unity 2023.” Youtube, uploaded by Stellar Studio, 27 Jan. 2023, youtube.com/playlist?list=PLGSox0FgA5B58Ki4t4VqAPDycEpmkBd0i&si=eN64qJUApQ61-4rc.
Reader Interactions
Comments
Leave a Reply
You must be logged in to post a comment.
Cindy L. says
It’s interesting seeing how you’re building your dialogue system and seeing what kinds of classes go into making it work. Since we’re using an external software called Ink for our dialogue, I wasn’t really aware of how these systems worked behind the scenes. And good luck with the UI and camera scroll!