top of page

Blue Drifter - Sokpop Imitation

This game marked the inaugural project during my MSc in Computer Games Programming, serving as an introductory assignment where the design aspect was left to our discretion. The task at hand was to closely imitate a game from the Sokpop Collection, and after careful consideration, I chose to replicate the essence of Blue Drifter.

The decision to emulate Blue Drifter for this project stemmed from my genuine enjoyment of its gameplay and aesthetics. I saw it as a challenging opportunity to delve into new learning experiences. The assignment's restrictions were deliberately designed to minimize external influences and alleviate stress about assets. Specifically, we were limited to using Unity's packages to create all assets. In my case, this meant relying on primitives or crafting models using the Pro Builder package, fostering a creative challenge within the confines of these constraints.

The Game

In this game, the player's primary objective is to escape the planet, a task that requires accumulating enough money to purchase a ticket. Fortuitously, bounties are offered on specific individuals, providing the player with a means to earn the needed funds. The player engages with the mission terminal, obtains their assignment, identifies and neutralizes the target, and retrieves evidence to confirm their success. Once the player successfully completes all three bounties, the gate to the rocket opens, signifying the accomplishment of the mission and concluding the game.

Gameplay

The game mechanics are rooted in a standard first-person shooter framework. Movement is facilitated through WASD controls, utilizing the character controller to navigate the player in any direction. Mouse controls govern the camera's vertical axis and the player's rotation around the Y-axis for a comprehensive field of view.

The player is equipped with two tools: binoculars and a gun. Initially unused, these tools can be brought into an aiming position with a right click. Binoculars serve to identify targets, achieved by aiming at them. The gun, only operational while aiming, can be charged to shoot stronger projectiles.

Navigating the expansive environment is facilitated by a car. The player can enter the car when in close proximity and drive between different islands to fulfill their missions. The car is constrained to a specific height, with each island featuring only one accessible platform—the dock. Upon reaching a dock, the car can be parked, allowing the player to disembark and explore the rest of the islands on foot. This multi-tool approach adds depth to the gameplay and enhances the overall gaming experience.

blueDrifter3.png

Gameplay screenshot showing the use of the gun

Binoculars

The binoculars introduce a unique and engaging aspect to the game. Since the player begins without knowledge of their target, the binoculars serve as a crucial tool for identification. By holding the right mouse button, the binoculars interface is activated, revealing canvas objects on NPCs. Initially, these objects consist only of a circle.

While using the binoculars, a ray is projected straight ahead from the camera, interacting with colliders in its path. If the ray encounters an NPC, it increments a float for a set duration, gradually unlocking the target's identity. The circle displayed on the binoculars interface transitions to reveal the NPC's name, providing the player with the necessary information for their mission. This mechanism adds an extra layer of strategy and investigation to the gameplay.

blueDrifter2.png

The ray being shot from the camera used from the binoculars

The car

The coding for the vehicle proved to be a fascinating endeavor. Initially conceptualized as a player in its own right, the car possesses its own camera, control map, and is propelled by a player controller. Facilitating the interaction of climbing in and out required careful consideration of several factors.

To seamlessly manage the swap of the camera and controls, a script was implemented. This script dynamically alters the active action maps and switches the active camera, ensuring a smooth transition. Moreover, to address the challenge of boarding and disembarking from various points, the player object was designated as a child of the car. This arrangement enables the player object to move in tandem with the car. Upon disembarking, the player is once again an independent object, ready to proceed.

While the initial version had a few bugs, refining this solution proved highly effective in achieving a seamless and functional interaction between the player and the vehicle.

blueDrifter1.png

The player docked onto the car while driving the vehicle

NPCs

To implement the behavior of NPCs, Unity's NavMesh package was utilized, providing a convenient solution for effortless NPC movement along designated paths through simple commands. The AI was structured around a straightforward state machine, encompassing three distinct types of NPCs: civilians, bandits, and guards.

Civilians operate within a single state, moving randomly within a specified range. Similarly, both bandits and guards follow this random movement state. However, guards possess an additional behavior where they respond to an attack on a civilian or fellow guard. In such cases, guards turn to face the player, move towards them while maintaining a specified range, and initiate an attack if they have a clear line of sight. If the player is obstructed, guards adjust their position, progressively getting closer until they can see the player.

Bandits exhibit similar behaviour, but with the distinction that they actively search for the player and initiate an attack upon detecting them within a certain range. This design choice adds a layer of realism and complexity to the NPC interactions, enhancing the overall depth of the game's environment.

blueDrifter4.png

NPC walking to the destination using the NavMesh Package

bottom of page