Week 9: Beta
This week was another long one for work—unexpectedly so—but I have a feeling that’s coming to a close fairly soon. The goal was to have a beta version of the game prepard, and I was able to effectively put it together. In execution, that meant two things: polishing what was already there and making the final additions to the critical path. One of the issues I noted while watching my instructor play through last week’s demo was that several of the later quests didn’t adequately indicate where to go, especially when they led back to earlier areas. In response, I added a few different things to help guide the player. First was additional dialogue; after offering the quest, NPCs have another line with general directions. Adding to that, there are now signs in each of the major areas which give context to each path. The goal was to provide enough scaffolding that the player could find their way to the goal whether they remember the quest assignment or not, and I feel like that goal has been accomplished.
I also ended up adding a couple of blockers to keep people from going into side areas before they need to. Part of this came from the way I made the chests—they open when the player first interacts with them, but they never close and don’t give an “item” until they’re supposed to be open. There aren’t actually items in the game, the chests just set quest flags, so it didn’t make sense to allow them to function early. As such, I made some invisible walls to keep the player from entering. Rather than just making them walls, though, I added some dialogue to nudge the player back on task when they approach. I’m all for promoting exploration, but in this instance I am trying to tell a linear story, so I’m willing to handwave some obstacles to keep players on the path I’ve set.
The final challenge and the ending were the main additions I needed to make. While the main quest line was largely functional, the castle didn’t have anything to do, and was almost entirely empty space after last week. I recolored some sprites of the villagers to use as statues and set up a short quiz for each of them. Each statue asks three questions about the villager it resembles, and the player has three possible answers to each question. Because I had already written the questions and answers beforehand, this only took about an hour or two to implement, and I'm entirely happy with the result. I changed the final quest a little bit to have the player return to the village to complete it, then allowed them to finish the game by exiting south of town.. To finish things off, I wrote more dialogue for each character during the ending, and added a few lines for each throughout the rest of the game. Thus, NPCs actually talk about whatever may be happening at the current time. Some of this will likely need to change as I implement sidequests—which, as of my current plan, will become available as soon as the player gets the quest to go to the castle—but I can easily give the dialogue different conditions so it remains available. I actually ran into one other minor snag during this work session. Between the former and current sessions, my partner sent me the music for the cave, which I wanted to implement as well. For the last several weeks, I’ve mostly worked from the components available in DialogueSystem itself, which has allowed me to make progress without creating separate scripts quite so frequently. However, I couldn’t activate the function I wanted to with the glorified “OnTriggerEnter” of the Dialogue System Trigger component, so I ended up writing another script to work with the music manager and change the music for certain areas. It worked out well, and I recorded a short video to demonstrate it to my partner so she could finally hear her music in context.
With all that taken care of, I made two pull requests for the week, one of which I merged immediately on my own. My goal was to simplify the review process by making scripts a separate pull request, so the second one exclusively contains the files relevant to the scripts I wrote during the week.
My instructor requested a few changes to the scripts, most of which I addressed. We still don’t fully see eye-to-eye on the MusicManager, but because it’s functional, I requested that the work be merged anyway. I don’t aim to ignore guidance, however. I’m going to open an issue about it with a reference to his comments, so if I have time later on, I can make those changes. For now, the work has been merged and I need to start on the next leg of development