In Triage, players will move their patients throughout the environment into the correct treatment room. Patients will then be treated before completing their stay or needing a secondary treatment. Using a controller, the player will move patients around the environment and switch between them.
Helping Players see Important Objects Obscured by Walls and Objects
One of the challenges that we faced early on was players losing the position of the gurneys after they had used them. Especially when we built up the walls in our final level redesign, it becomes harder to manage the horde of patients as they come in. We needed a way to see gurneys that are obscured by walls and objects – that they stand out without demanding too much of the viewer’s attention. Since I need a system that changes the colour of objects through their material, I need to use a shader.
Shaders are code snippets performed on the GPU which affect the colour of pixels on the screen. Every game needs and uses some form of many shaders, to provide effects like the way light interacts with objects, to the translucent and reflective qualities of water. The CPU is a hulking beast that is better suited to running lots of calculations sequentially (like running applications), but a GPU can use a shader script on every pixel on the screen almost concurrently.
In this instance, we need a shader that is able to draw part of an image in colour, even if it is totally obscured. Luckily, one member of our team was able to create one – a shader which has two colours, one for the base material, and one for the hidden section. This shader also has the ability to outline parts of the object, which we don’t need at this time.
This shader provides the exact features I need, but the colour of both base and hidden textures do not fit the colour scheme. The white in particular often is too bright to see against the white walls of the scene:
To fix this, I changed both colours so that the white is now a grey:
Finally, the shader suits its purpose, blending into the scenery while also letting player’s track their patients.
Communicating Game States – How will the player know if a patient is being healed?
A key element of game-design is feedback; a player’s actions need rewards. In real life, we require feedback to know the consequences of our actions. How will we know if the light switch works? the light will turn on. Another key part of providing feedback is for it to be understandable. If you flick the light switch, and the light in another room turned on, do you truly understand the consequences of your actions?
For Triage’s patients, we need to communicate to players that their patients are being healed. For this, we needed a simple way to differentiate between healing and not healing. This means that we should use an effect that only is active when a patient is being healed, that doesn’t interfere with lighting or the colour scheme, but still looks very obvious. For this, I used a particle effect.
Particle effects are little, textured dots that move about a scene similarly to sparks and clouds. In Unity, particles are emitted by a source, and expire after a time is up. You can apply wind and forces to them so they react in different ways.
One of our teammates created a particle system using green crosses that emits from the centre of a gurney, moving outward. This system creates the obvious effect that a gurney is being healed, and works within our limitations