Snow Surfer

Snow Surfer is a 2D Unity game featuring character advanced programming techniques, including object-oriented programming and event handling, as players navigate snowy terrains. The game focuses on fast-paced action, scoring through flips and airtime, while utilizing power-ups and user-friendly interfaces.

Developed using Unity 6.2

Overview

Snow Surfer is a dynamic 2D game developed in Unity, where players can choose between two characters, Rex or Flo, and navigate through snow-covered landscapes. The game emphasizes fast-paced, action-oriented gameplay, incorporating power-ups, and various gameplay mechanics including scoring based on flips and airtime. The goal is to reach the finish line while avoiding obstacles and managing character abilities with collectable power-ups.

Key Features

  • Character Selection: Players can select between two characters, Rex or Flo, each providing unique gameplay experiences.
  • Gameplay Mechanics: The game allows players to earn scores by performing flips and staying airborne while managing speed and torque.
  • Power-ups: Collect and utilize various power-ups to enhance characters’ abilities, offering temporary boosts in speed and rotation.
  • User Interface: The game includes a comprehensive UI that displays game scores, airtime, flip counts, and other important feedback to the player throughout their experience.
  • Audio and Visual Effects: Rich audio feedback and particle effects are integrated to enhance gameplay immersion, including collision effects and environment sounds.

Technologies Used

  • Unity: The game is built using the Unity engine utilizing its powerful 2D game development tools.
  • Cinemachine: For enhanced camera controls that provide a smooth pursuit of the player character.
  • Scriptable Objects: Power-ups are implemented with Scriptable Objects, allowing easy management and instancing of game data.

Skills

This project showcases various programming skills, including:

  • Object-Oriented Programming: Effective use of classes and inheritance to manage game states, characters, and UI.
  • Unity Scripting: Proficient usage of Unity scripting in C# to handle game logic, character dynamics, and events (e.g., collisions, scoring).
  • Data Management: Utilization of Scriptable Objects for clean, reusable game data management (e.g., power-up definitions).
  • Event Handling: Implementation of event-driven programming where game events (like finishing a level or player collisions) trigger specific methods.
  • UI Development: Creating responsive user interfaces to display game states, scores, and player information dynamically.
  • Game State Management: Comprehensive management of the game state (e.g., handling game over and level won scenarios) through Singleton patterns and static variables.