
Draculight
2023
Introduction
Chaos reigns in town after the legendary Dracula has stolen all the mirrors for himself. Who knows what this fiend is planning on doing with all of these mirrors. However, no weapon or tool has been effective in slaying this beast. Who will step up to save the town from this threat?
In this puzzle game, you are tasked with guiding a ray of light through Dracula’s castle, which holds many dangers within. Bounce the light on mirrors, activate deadly mechanisms, and triumph as the legendary vampire slayer.
Will you become the hero of the town, or become so ashamed that you can’t even look yourself in the mirror?
Contribution
My role during this project can be summarized as being the gameplay programmer. I worked mainly on the input system, camera, wall fade, collision layers and some puzzle elements.
​
The input system makes use of the command pattern, where it converts the input it receives into usable commands that are then transmitted to listeners. The commands contain data such as type of input, duration, screen coordinates, and more. Listeners may also choose to consume the commands so that it stops being passed forward to other listeners. This enables for input behavior which would otherwise conflict with each other on mobile devices, for example, panning the camera and also drag mirrors. Because object selection has a higher priority, it will consume the command and prevent it from being passed to the camera.
​
Because it can be difficult to see small things on mobile devices, I added the ability to zoom in and pan the camera around. The more the camera is zoomed in, the more the player can pan the camera around the level.
​
To improve the input for objects in the level, I decided that we had to make better use of collision layers. First, I also needed it for the boulder to easily know what it collides with. Second, it improves the performance by ignoring objects that are not relevant. Third, you can easily adjust the size of the collider for different purposes. By creating different prefabs with a collider and putting them into distinct layers, it was simple to customize how easy it was to select objects.
​
Other work include, for example, improving the performance, making walls fade when the camera is close, some VFX (boulder roll, fire, smoke), the boulder, and a hole that objects can fall into.