Combining the Builds
This week, Robbie and I wanted to take everything we had prototyped separately and combine it into one build. This was a mandatory step for allowing Luke and Lillian to get their hands on the game, and start proving the pipeline. We ran into a few issues when mixing everything together (mainly getting the animation system to sync up with every other system), but now we have a shared build with everything we've worked on!
For the pipeline, we've now seen environment art, still sprites, and animations imported to Unity and placed in the game. We've also seen sounds imported, and have 26 placeholder sounds in place for our dialogue system. With the current art assets, Luke was able to block out a really cool first area for the game, and the singletons we recently added help keep the data persistent throughout any area he creates. So far, the pipeline is looking good for getting assets into the game, but I'm hoping we can create a couple tools to further facilitate the process.
New Content from me
Combining the builds and making small quality-of-life changes ate up most of my time this week, but I did add a few cool features that are worth pointing out.
One thing I added was basic Wander Enemy AI. The enemy object we had before can now walk left and right, turning around before walking himself off a cliff. We're thinking that this enemy will be a slime, who won't directly attack the player, but will leave toxic sludge in his wake that could catch the player off guard if they're not careful.
Additionally, I was pretty excited about the sound functionality I added. We wanted 26 distinct sounds for the alphabet, so NPCs have an interesting way of talking during dialogue. As each letter is read onto the screen, the sound effect for that letter will play. Each sound file for this is just named after its respective letter, so the naming convention is really easy (and consistent). The cool part of this system is how I'm loading the sound files and playing them, which is done through the System.Convert functionality.
As letters are read in, we pass them to the SoundManager as a substring parameter. The SoundManager takes this substring and converts it to its ascii value and stores that in an int. This is then checked to make sure it's a letter in the alphabet, and if it is, converts it to lower case if it isn't already. This new value is converted to an index number compatible with our LetterSound array, which grabs the 26 sound files at run time through a similar System.Convert process. The SoundManager then plays the appropriate sound from the LetterSound array, which will result in an almost Animal Crossing esque sound.