Thinking back, I believe graphics has been the most difficult but also one of the most interesting topics we have gone into. I felt I really had to wrap my head around different ways of looking at the world to understand what we were really doing. This challenged my way of visualizing what was happening on screen, allowing me to begin thinking about what we are portraying in a more artistic manor.
I began applying these ideas to our game Collidalot. Together with my other programmers and artists we formulated a vision for out game. This broke into two main points, one; a menu redesign and two; visual effects for the main game. For the menu we wanted to create a 3D environment with a menu overlay that faded in after being welcomed in by a splash screen. As for the game itself we wanted to begin adding in shaders that made the game pop a lot more. This included sobel, depth of field, toon shading, as we as finally switching over to a perspective camera which my artists had been pushing for for a while now. We broke it down into tasks with me taking the main menu revamp as well as toon shading and depth of field.
We had ideas what effects we wanted but no clear path of how to create them in Unity. In delegating tasks the initial bulk of work was simply research. The first thing I tackled was the toon shader. I found some nice tutorials that I followed in an attempt to create a toon shader. Creating the shader itself was not that difficult but I started noticing an issue. I was creating a new way for the lighting to reflect off of the object to create my toon shading, namely breaking down the number of color transitions the lighting used to create a toon look. The problem arose from wanting to have a metallic channel in my toon shader. Unity does not seem to support this, I created my own shader but because I could only use Unity’s standard lighting model I couldn’t add a metallic channel. This made our ships look flat because all we could use was albedo. Both of my other teammate worked with me to over come this problem. Unfortunately we all came to a decision due to time constraint to let go of the toon shader for now. I would like to go back to it but I do feel good about being able to refocus my efforts on other options when one fails.
After this I decided to revamp the main menu. I gathered assets from my artists that I had been helping to facilitate their progress. This included a scene with a rotating planet, asteroid belt and sun along with 2D assets for the menu itself. I helped them design the art assets as well as troubleshoot issues as they arose apon implementation. Once everything was in, I implemented a system for a splash screen that faded to the main menu after pressing A on a controller. It also applies a depth of field fade in as well a slight sobel effect to make some of the asteroids pop. This created an awesome looking effect that can be tuned to fade in at whatever speed the designer wants. Lastly the menu fades back to the splash after a designer defined period of time.
The final thing I did was build a scene in the back of our main play board. This required my other programmer finish the perspective camera tracking before I could start creating. I placed a number of objects at different depths to allow me to start playing with depth of field. I then worked with him to create a layer system in unity using two cameras. We created a main game camera and an effects camera. Then set objects in the game world to render on different layers that were attributed to the preferred camera. This enabled us to put depth of field and sobel on the background elements but not the foreground game. This also allows us to continue adding effects to only the layers we want.
Overall I really enjoyed this aspect of design within out game. It was very gratifying to have the very definite “HA” moment when something you changed or added made such a profound visual improvement. I would like to look more into the toon shading though as I believe there is a way to achieve the look we are searching for. In the meantime I would like to tinker with more shaders in hopes of achieving new heights of visual interest.