This is one of our older test projects. It was created for integration testing of new packages our latest packages.

This project is used now in our continuous integration environment.  We update it with new features and tests from time to time. It's mainly used to upgrade test new versions of Unity.

Pacakges under test in this project.

  • Cinemachine
  • PackageManager UI
  • TextMesh Pro
  • LWRP (Now Universal Render Pipeline)
  • Test Framework
  • Post Processing Stack
  • 2D Animation
  • ProBuilder + Progrids
  • Vector Graphics
  • Timeline

Mood boards

The initial whiteboard discussion of what we wanted to achieve. It's a rip off of Daley Thompson's Decathlon but with Biscuits.
Daley Thompson's Decathlon is a computer game developed and released in 1984. It was released in the wake of Daley Thompson's popularity following his gold medals in the decathlon at the 1980 and 1984 Olympic Games.

Result

Menu and Sprint - The most complete scenes we produced. For the main menu, we adjust the post-processing layer based on the blending state of the camera. The sprint game is a button basher. Alternate between the A and D key to make the characters run faster. Input is handled by rewired. We did this as Unity's new input system was still in flux and we a wanted to test many devices. We tried creating some cameras blends that you might find on TV sports coverage. Cameras blend using Unity's Timeline feature. The race camera is dolly shot following the players. This is a very basic but effective camera set up.

High Dunk

High Dunk - The programming and camera work for this scene was not my work. I created most of the stadium art using ProBuilder. Notice that some of the Stadium is missing. This was down to a nested prefab issue we found. The crowd I created by adding a script with some of our test art. The script runs a sign wave over the object, it's simple by effective. I wish I had time to add some crowd sounds to really sell the effect.

Weight lifting

Weight Lifting - This was the final scene we worked on. It's not finished. To play, bash the buttons until the bar turns green. Then stop bashing till the weights drop, and start again. The person with the most reps wins. There was a lot of animation created for this scene, and some video for the big scenes. We never got the time to implement it and so it remains unfinished.

Characters

I created the characters with Affinity designer. I wanted to test vector shapes using software other than Adobe's creative suite. This revealed an import bug not found using Adobe export. That was quite a satisfying find. This issue was fixed for release, but not before we could finish the project. The game itself is a bit of a mix of .png and vector files.

I wanted the characters to be silly and a bit of fun. I also wanted them to be simple so that i could animate them quickly. I based the characters around fun vegetable illustrations.  You know the ones that try to get kids to each more veg.

Bourbon Animations
Rich Tea Animation


Stadium

he stadium is simple box modelling using the first package release of ProBuilder. It was super quick to knock up I then hit the assets store to get some sporty textures. I remember creating a football version of the stadium. I created some props too.  Cameras, trees, dugouts, flags with physics and a tunnel for athletes to appear from. I can't remember what I did with them they don't seem to be in this version. I'll try and find them and maybe do a quick overview of how they were created in the future.

I remember we found some bugs when ProBuilder objects are used with nested prefabs.  The issues I remember being quite destructive, some still affect the project to this day.  It is great when you can catch these corner cases before release. Oh, I remember now why the flags are missing, we found a regression where the physics broke, so I removed them. Another successful find.

The big-screens are render-textures, they display what the cameras are displaying. For some reason they stopped working when making this post. It seems I deleted the original texture. I fixed it now (adding a test) and the missing geometry. I must remember to update the images.


Automated Tests

We added tests with a loose TDD approach.  We put time into creating an image compare tool. We did have a compare tool from another team. We found it was not flexible enough for the stuff we did with projects in the test runner.  We also could not maintain it within the team.

Our tool worked OK on Windows but required some maintenance on macOS. We created a package for it making it easy to share with other teams.  
Here's a list of the tests we had at the end of the week

Did this project catch any bugs?

Lots!  Mostly in new features which was the aim. We still catch regressions to this day. The most recent was a regression when upgrading of the URP in 2019.4

Was it worth it?

Yes. It's a bigger project than we usually get the time to create. It caught a lot of issues they were not covered by standard tests.

As a team, we got to experiment and cocktail test new packages before release.  We had time to dig into our art tools. Finding issues that were previously missed while having some fun. We got a solid project that continues to help us test Unity some 4/5 versions later.