Serpens is Latin for “snake” and the only constellation split into two parts across the sky—divided into Serpens Caput (the head) and Serpens Cauda (the tail) by Ophiuchus (the Serpent Bearer).
This project revamps the classic arcade snake game with 5 escalating challenge tiers, checkpoint persistence, and retro pixel typography.
Screenshots
Figure 1: Player profile entry and persistent session initialization.
Figure 2: Level transition and countdown screen.
Figure 3: Level 1 classic arcade mode with target tracking and active HUD.
Figure 4: Level 3 introducing complex static obstacle barriers.
Figure 5: Active checkpoint restart system.
Gameplay & Controls
Collect food items to reach the level target. Hitting walls, obstacles, or your own tail ends the round.
| Key | Action |
|---|---|
← → ↑ ↓ | Navigate Snake |
Left Shift | Speed Boost |
Level Breakdown
Each level resets snake length and introduces a new mechanic:
| Level | Target | Mechanic |
|---|---|---|
| 1 | 15 Food | Classic snake mechanics |
| 2 | 10 Food | Increased base speed |
| 3 | 5 Food | Static obstacle layout |
| 4 | 3 Food | Obstacles + Moving food |
| 5 | 1 Food | Ultra-fast dodging food |
Key Features
- Checkpoint System: State is automatically saved to
checkpoint.json; resuming with the same profile picks up where you left off. - Retro Typography: Integrated
PressStart2Ppixel font for authentic arcade aesthetic. - Dynamic Physics: Progressive difficulty scaling with variable game ticks and obstacle barriers.
Installation & Running
Ensure you have Python and pygame installed:
# Install dependency
pip install pygame
# Run game
python serpens_game.py
Requirements
-Python 3.x
-pygame
-PressStart2P-Regular.ttf (Included in repository)
📦 Repository & Source Code
Source code, assets, and documentation are available on GitHub:
👉 https://github.com/EfeOzhan48/serpens-game