
Retro Snake Game
Project Overview
3D Snake Game is a modern recreation of the classic arcade snake game, developed in Unity using Visual Studio and programmed in C#. The project transforms the nostalgic 2D gameplay into a fully interactive 3D environment while preserving the core mechanics of collecting apples, growing in length, and avoiding collisions.
Players control a snake moving across a 3D grid-based world. Each time the snake eats an apple, its body increases in size and the player's score rises. The challenge intensifies as the snake becomes longer, requiring precise movement and strategic planning to avoid hitting walls or colliding with its own body.
Key Features
- Classic Snake Gameplay in 3D — Reimagined the iconic retro game with a three-dimensional visual presentation.
- Grid-Based Movement System — Implemented smooth, tile-by-tile movement for accurate and responsive controls.
- Dynamic Snake Growth — Added logic to spawn and position body segments after collecting apples.
- Random Apple Spawning — Apples appear at valid grid locations, avoiding occupied spaces.
- Collision Detection — Detects contact with walls and the snake's own body to trigger game over.
- Score System — Tracks the number of apples collected during gameplay.
- Game Over and Restart — Allows players to restart instantly after losing.
- Modular C# Architecture — Organized scripts for movement, spawning, scoring, and game management.
Technical Implementation
Core Systems Developed
- Snake Controller — Handles directional input, movement timing, and body-following behavior.
- Body Segment Management — Uses lists and position history to update segment positions efficiently.
- Food Spawner — Generates apples at random unoccupied locations.
- Game Manager — Controls score, game states, and restart functionality.
- Collision System — Manages interactions between the snake, food, and boundaries.
Technologies Used
- Unity
- C#
- Visual Studio
- Unity Physics and Colliders
Development Challenges and Solutions
Converting 2D Gameplay to 3D
One of the main challenges was preserving the feel of the original snake game while presenting it in a 3D environment. This was solved by constraining movement to a flat grid and using 3D models and camera positioning to create depth without altering gameplay mechanics.
Managing Body Movement
Keeping each body segment aligned with the segment ahead required storing the snake head's previous positions and updating segments sequentially to ensure smooth following behavior.
Preventing Invalid Apple Placement
The food spawning system checks occupied cells before placing a new apple, ensuring that collectibles never appear inside the snake.
Skills Demonstrated
- Gameplay Programming
- Object-Oriented Programming (OOP)
- Data Structures (Lists and Position Queues)
- Collision Detection
- Grid-Based Systems
- Game State Management
- UI Programming
- Problem Solving and Debugging
Learning Outcomes
This project strengthened my understanding of classic game mechanics, movement algorithms, and clean code organization in Unity. It also demonstrated how to modernize a well-known arcade concept into a polished 3D experience while maintaining simple and addictive gameplay.

Retro Snake Game