This project is a demake of Grey Scout that reimagines the enemy encounters: all foes are arachnids, each with distinct traits. From imposing spider matrons guarding nests of eggs to agile spider hatchlings that burst forth when the player is detected, these enemies bring a new level of challenge. The primary objective is to collect the eggs and safely return them to the player’s ship.
The spider operates as a NavMesh agent, navigating a pre-baked navmesh for smooth movement throughout the game environment. Its behavior is governed by a state machine, which enables dynamic transitions between various actions. Additionally, the procedural animation of each leg ensures realistic and responsive locomotion.
Each of my spider's legs is rigged using a two-bone IK constraint with an associated IKTarget, ensuring that as the target moves via code, the leg follows smoothly. Although I initially explored using a chain IK constraint for more complex movement, the two-bone setup proved more reliable for my needs.
To create realistic stepping, I attached an empty GameObject called “RayCast Source” above each leg. As the spider moves forward (controlled by a coroutine rather than every frame), a raycast is fired from one of these sources (ignoring the spider's limbs) to detect the ground. If the detected point is too far from the current IKTarget position, the leg is tweened to the new position using Vector3 Lerp.
The overall locomotion is achieved by alternating movement between groups of legs—moving the front left and second right legs together, then the front right and second left legs, with a similar pattern repeated for the rear legs.
I implemented a singleton-based Audio Manager, enabling seamless access and control of audio throughout the project. This system includes custom methods for fading music in and out for smooth transitions, as well as an immediate change function for scenarios that require instant audio shifts—such as when a spider suddenly begins chasing the player.
I implemented multiple Cinemachine virtual cameras across the scene and controlled transitions by dynamically adjusting their priorities via code. This approach streamlined the creation of a cinematic intro, effectively showcasing the play space and clearly communicating the game’s objective—all while minimizing potential technical issues that could arise from manually animating the main camera.
During the development of Arachnid Scout, iterative playtesting was essential in refining both gameplay mechanics and level design. Early tests uncovered major issues—such as eggs hatching while being carried and triggering endless chases by spider hatchlings—that could break the game. This feedback led to several key improvements:
This iterative process not only resolved initial gameplay issues but also elevated the overall player experience, ensuring clear objectives, balanced challenges, and an engaging play space.