This is an old project Unity 2019.2?  It was created to test the pixel perfect camera package. I expanded it to cover 2D lighting and the new input system. This project started off a scenario test week project by another team. Scenario test weeks are a week in production when teams stop dev work as use their features and Unity. The main objective of STW is to gain Unity knowledge, find annoying/bad workflows and bugs!

The project was in a good state but very basic. I thought it would be a good candidate for some of upcoming packages we needed to test.

I decided to give it a bit of a facelift. I updating the main menu with better graphics, animations, sound and 2D lighting.

Original Menu - Works but very basic
Original Overworld - Good but lacks visual interest

I didnt want to jump straight to changing gameplay. I thought i could add 2D lights and a cinemachine camera to the main menu. Then leverage those packages to come up with a more professional looking menu.

Splash Screen - A UI imaged that triggers a sound effect. I wanted it to be zelda-like. I remember Nintendo appears in this way. The image stays on streen, controlled by a timer. I use this screen again for transitions, fade ins and fade outs. It's amazing the flexability in a simple black to alpha image.
Scrolling intro text. This is something i wanted to do for a while. The text scrolls until it reaches an area marked by me, it's then masked. I can then set it to repeat from original positon. I use the repeat in the about menu. 
Main Menu - This looks complicated but it only took a day to create. That includes all the artwork and animations. I created a bunch of hill shapes in Affinity Designer and layered them up. Make some pixel art and a fade on the 2D lights. This fade script ping pongs between values. It might work better if it slowly faded to night but then i would have to create more art. I added some starts and fireflys with the particle system. That was it really. It took a little londer to get up the buttons and sound. I used Cinemachines built in shake function when the sword lands. I'm really happy with the the end result. To put it in perspective, that took around 2 days to create, and would look great in any game.
Here I resuse the intro text code expect it now repeats.
Options Menu - The Music control works, but the SFX does not, as there are none in the game. This was super easy to set up using Unity's mixer, although i have no idea how to do it now. We can also turn on touch conrols here. I've created this project to use the new input system with touch + keyboard input. I should add a gamepad too. Adding all these controls means it's easier to test on mutiple devices. 
Quick demo of the game running in Unity Editor

All the menu art was created with Affinity Photo/Designer. I used additional free unity assets. The music is free game music  from Music: Eric Skiff

Packages used

  • 2D Pixel Perfect
  • 2D Lighting
  • Input System
  • Cinemachine
  • PackageManager UI
  • TextMesh Pro
  • Universal Render Pipe
  • Test Framework
  • Post Processing Stack for Universal

I wrote automated tests for this project too. For the moment the test cover the main menu. As i finish more of the overground levels i'll be adding more tests, starting with the input system.

So did this project catch any bugs?

Yes, it's caught issues with 2D lightings just before release.  Just today (16/10/2020) it's caught an issue with touch input on the new input system. I could go into the bug database and find a total. Off the top of my head I'd say so far this projects caught around 7 bugs. Not a lot you say, true, bbut the bugs caught here where found at the end of production. These features where thought to be ready, turns out when you use them in a real world scenario they wern't.

Was it worth it?

Very much yes, for a few reasons. Creating projects can be time consuming, usually, in the beginning, not very tangable. You can see a chart of fails, and when someone walks past your computer it just looks like your making games. Our buisness is to help others make games, so we should test our products in the same way. Make a game. Easier said than done. It's hard to make time for when you are under a time constraint, dividing that up to feature work and bug fixes..

There is also the knowledge benifits. I now have a better idea of how those features work and are intergrated. I can better understand and help customers when they run into issues. It's not always about bugs, but being in a position to help others or help the feature improve.