In the past few months I worked a lot with shaders in Unity which mainly uses Nvidia CG as its shader language and converts it for specific platforms. I have some shader skills with HLSL and GLSL but I started anyway studying this language and making mostly 2D shaders. I like 3D shaders but I think they need more skills than 2D shaders to be really good, so I started with the 2D ones.
Working on a widget for a in-game HUD, I needed to create some circles (both UI and Sprite2D) and I realized that I had two choices: to use an image or to create it from scratch. Both methods have its pros and cons, which one you think I used?
I started to look at some shaders I like on ShaderToy and I came across some pretty shaders to create simple circles and circular bars, used for loading screen. In this site the shaders are mostly in GLSL so I ported some in CG language, creating a starting point for the different kinds of shaders I had to make. I realized that I could reuse parts of these shaders for other purposes, so I came up with the idea that if these shaders are flexible enough they could do a lot of things in terms of simple “circle and bar” animation, especially for loading screens.
So, I started to write down all the things I wanted from shaders like these, planning to make flexible shaders to create a basic animation widgets. So I created a play-test scene in Unity to test the shaders I wanted to make and I started adding them more and more features as well. The graphic style and animation I want to replicate are similar to these examples of this loading widgets I found in different games (The Division, Overwatch).
Releasing Circular Mastery
After developing a reasonable amount of features for the shaders I created, I started to packing everything in order to become a product called Circular Mastery for the Unity assets store. This means creating all the product images, logos, user manual, etc… and then adding some additional support for the required features of Unity assets (like the undo function).
It was the first time I had to create a package for Unity and I have to admit, it was easier than expected because there are a lot of resources and documentation on releasing assets for the assets store, and the control panel for publisher are very simple and clear.
If you are interested on game development and game design I have a series of posts in which I show my progress of the development of a mobile game Steady Drop. HERE!