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.


