C#, Unity Engine
Project Luca is a prototype of a top down shooter I made while on my first year of Computer Games development in College. The prototype was built with the idea of experimenting with Unity’s real-time mesh generation. It features a fully functional weapon system, health system and inventory.
The project is designed to be fully expandable; should I ever wish to reuse any parts of it. This was made very easy by using the great implementation of polymorphism in c# and scriptable objects in unity.
Project Luca incorporates a Field of View system that hides all enemies outside of the player’s view range. For the mesh generation, the player casts an amount of raycasts in a cone, the collision information of each individual raycast is then used to map a mesh to give the lantern effect.
The FOV system also includes an Edge Resolution algorithm for optimisation purposes. This algorithm checks if two consecutive raycasts do not hit the same object, in which case it will repeatedly casts raycasts between the maximum and minimum points of the object, eventually resolving very accurately the edge of the object hit by the raycasts.
This algorithm allows us to reduce the amount of raycasts casted for the mesh generation without compromising its resolution, keeping the FOV system very resource-effective.
Low raycast, no edge resolution:
Low raycast, with edge resolution