When someone from NVIDIA got in contact with us to ask if we were interested in adapting the game for the new NVIDIA Shield, we were really happy. We had learn a lot developing Clash and now we had the opportunity to work on a Handheld Console. It was going to be a great experience!
But it was not that easy. We work mainly with Unity and thanks to my strong background in .Net, the Unity platform and its tools provide me with everything I need, and what it does not give, I can make. So we thought it was not going to be that hard to adapt the game to a console that was already running Android. Clash game already had a Landscape mode so we locked the game in that orientation, and one problem was solved. The next issue was the resolution, piece of cake! The fixed resolution of the Shield lets you fine tune the UI with little to no worries for other resolution ratios except for TVs. And then we got to the controls and we had to make a decision: “translate” the touch control of Clash to the Shield and bind it to the left stick (or digital pad) or start from scratch and see what we could do.
We went for the second option: discard everything about the controls and start from scratch. Well, for starters we never had that much code for touch controls :). The UI was managed through raycasting the controls colliders, the spaceship was moved using the finger delta from one frame to the next one and the special move was fired through a double finger down event within a time frame. That was it, and it worked well; you can play Clash on a mobile or a tablet using a single finger. But when you play with a controller you expect a little more: you do not only want to move the ship but also to control the aiming and the speed, and since now you cannot move from one side of the screen to the opposite side in a single frame (this caused us a lot of headaches with physics) you need some mechanism to pick up the money.
So in Clash for the Shield, you move the ship with the left stick and aim with the right stick. The A button fires the special, the left shoulder button attracts all money in the stage but makes you stop firing, and the right shoulder button halves the ship speed to help you evade the bullets when things get dangerous. Another problem solved, onto the last one.
The last problem were the graphics. We had some problems in the original Clash: some backgrounds were very dark and star density was low while others were bright causing us saturation problems with the bullets and making the player miss some bullets that could destroy the ship. Also, the low-life warning for both the player and the enemies was too “intense” and changed the way everthing looked. So we had a crash-course on shaders with a new tool that will be with me forever :), called ShaderForge. Thanks to this tool we learnt, tested and iterated through many shader versions at a high speed until we got what we wanted: we added a border to every object making the game looks more cartoonish while defining their contour and doubling as a warning notifier by changing the color to red. We removed the standard lighting and went for shader controlled lights. We also made some complex backgrounds and combined them in run-time, and in general we went and upped the texture resolution while keeping an eye on the fps.
And the final result was great (just our opinion!). The game is fast, the controls are not too complex for an arcade game like Clash, the graphics are beautiful. You can plug it into your TV and it looks great!.
We would like to thanks NVIDIA for giving us this opportunity to work on their baby, and we wish them good luck bringing competition to the game market.
– Juan Mora –