The Liquidators
About the Game
The Liquidators is a resource management game based on the Chernobyl event and its aftermath. The player sends out workers to help clean out radioactive waste that's been scattered through cities. However, workers cannot be left outside too long or they will start to be effected by the radiation. The player must manage the times for all the workers exposed to radiation while cleaning up the mess of radioactive debris.
Developed in Hero Jam 2017
Role in Development
- Designer: Tiger Louck
- Programmer: David Liu
- Modeler: Tiger Louck
Most of my development for this project involved changing shaders and implementing them. I had not touched shaders before this point, so it was difficult to try and understand what was going on with the code. This experience was quite a curve in learning for me, as I spent lots of the time trying to make the shader functional at all in the project. For the rest of the development, I made a manager system that would send out the workers on simple paths towards their goal (Represented by what the player selected).
Script Examples
Selected.shaderHover.shaderOutlineShader.csHumanMovement.cs// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Selected" { Properties{ _OutlineColorSelect("Outline Color", Color) = (0,1,0,1) _OutlineSelect("Outline width", Range(0.0, 0.03)) = 0.005 } CGINCLUDE #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; }; struct v2f { float4 pos : POSITION; float4 color : COLOR; }; uniform float _OutlineSelect; uniform float4 _OutlineColorSelect; v2f vert(appdata v) { // just make a copy of incoming vertex data but scaled according to normal direction v2f o; o.pos = UnityObjectToClipPos(v.vertex); float3 norm = mul((float3x3)UNITY_MATRIX_IT_MV, v.normal); float2 offset = TransformViewToProjection(norm.xy); o.pos.xy += offset * o.pos.z * _OutlineSelect; o.color = _OutlineColorSelect; return o; } ENDCG SubShader{ //Tags{ "Queue" = "Transparent" } Pass{ Name "BASE" Cull Back Blend Zero One // uncomment this to hide inner details: //Offset -8, -8 SetTexture[_OutlineColorSelect]{ ConstantColor(0,0,0,0) Combine constant } } // note that a vertex shader is specified here but its using the one above Pass{ Name "OUTLINE" Tags{ "LightMode" = "Always" } Cull Front // you can choose what kind of blending mode you want for the outline Blend SrcAlpha OneMinusSrcAlpha // Normal //Blend One One // Additive //Blend One OneMinusDstColor // Soft Additive //Blend DstColor Zero // Multiplicative //Blend DstColor SrcColor // 2x Multiplicative CGPROGRAM #pragma vertex vert #pragma fragment frag half4 frag(v2f i) :COLOR{ return i.color; } ENDCG } } Fallback "Diffuse" }