Ocean Odyssey
# 🌊 Ocean Odyssey 🐢
**Ocean Odyssey** is a retro-styled, arcade shooter developed using the **LÖVE (Love2D)** framework. Take control of a brave turtle navigating through hazardous waters, clearing out plastic pollution while gathering an adorable following of baby turtles! 🛡️♻️
---
## ## 🕹️ Game Overview
In this game, you pilot a turtle that must defend the ocean by shooting bubbles at various types of trash, such as bottles, chips, and straws. As you increase your score, you unlock baby turtle followers that trail behind you in a "conga line" formation! 🐣✨
### ### 🌟 Key Features
* **Score Milestones**: A new baby turtle joins your trail for every 1000 points earned. 📈
* **Dynamic Scoring**: Different types of debris (Heavy, Medium, Light) provide unique point values based on their difficulty. 💎
* **Power-ups**: Collect **Shields** for temporary invincibility or a **Nuke** to clear all enemies from the screen with a massive white-flash effect. ☢️🛡️
* **High Score System**: Your best performance is automatically saved to local storage (`highscore.txt`), supporting both desktop and web builds. 🏆
* **Retro Aesthetics**: Features integer-snapped pixel text for maximum clarity, screen shake, and a custom hit-flash shader. 🎨
---
## ## 🎮 Controls
* **Arrow Keys**: Rotate and move the turtle ⬅️➡️⬆️
* **Spacebar**: Shoot bubbles 🫧
* **P**: Pause the game ⏸️
* **Enter**: Start the game from the menu 🎬
* **R**: Restart the game after a Game Over 🔄
* **Escape**: Quit the application ❌
---
## ## 🛠️ Technical Details
### ### 📦 Requirements
* **LÖVE 11.x or 12.x**: The game engine used for development.
* **Web Support**: Compatible with `love.js` for browser-based play.
### ### 🖼️ Rendering Layers
The game utilizes a dual-layer rendering system to solve resolution and scaling issues:
1. **Scaled Layer**: The game world (turtle, enemies, particles) is upscaled by a `windowScale` factor to maintain a crunchy pixel-art look.
2. **UI Layer**: Text and HUD elements are drawn at the native window resolution with **integer snapping** to prevent blurring and ensure sharp typography.
[Image of pixel art font rendering showing aliased vs integer snapped text]
---
## ## 📝 Development Notes
* **Hit-Flash Shader**: A custom GLSL shader is used to flash enemies solid white upon taking damage. ⚡
* **Breadcrumb Pathfinding**: Follower turtles use a coordinate history buffer to retrace the player's exact path smoothly. 🐾
* **Web Deployment**: When deploying to platforms like **itch.io**, ensure **SharedArrayBuffer** support is enabled in the embed settings to avoid initialization errors. 🌐
---
### ### 📂 File Structure
* `main.lua`: The core game logic and loop.
* `assets/`: Directory containing all sprites (`turtle.png`, `follower.png`, `nuke.png`, etc.) and audio files.
* `highscore.txt`: Automatically generated file for
Team Squirt Masters:
Paua, Shaurya bsp;
| Status | Released |
| Platforms | HTML5 |
| Author | nonillionare |
| Made with | LÖVE |
| AI Disclosure | AI Assisted |
Leave a comment
Log in with itch.io to leave a comment.