Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions in-progress-games/RetroFracture/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# RetroFracture 🎮

*A Multi-Genre Arcade Adventure*

RetroFracture is a multi-genre arcade game built in C++ using SplashKit, featuring 8-bit neon aesthetics and genre-switching gameplay. Each level represents a different genre, with the player adapting to new mechanics, controls, and challenges as they progress.

![RetroFracture Banner](assets/envs/Apartment%20Hallway.png)

## 🌟 Features

### 🎯 Genre-Switching Gameplay
- **Platformer**: Precision jumping and exploration
- **Run & Slash**: Melee combat with acquired weapons
- **Beat 'Em Up**: Combo-based boss battles
- **Top-Down Shmup**: Vehicle combat

### 🎨 Visual Style
- **8-bit pixel art** with vibrant neon palette
- **640×480 resolution** (arcade-perfect)
- **Smooth animations** and dynamic camera

### 🕹️ Current Implementation
- Explorable hallway level with multiple apartments
- Apartment 101 interior (Actual interior to be implimented)
- Player physics and collision
- Intractable (door, for now) system with prompts
- Adaptive HUD

## 🚀 Quick Start

### Prerequisites
- C++17 compatible compiler (GCC, Clang, or MSVC)
- [SplashKit SDK](https://splashkit.io/) installed

### Installation & Building
```bash
# Fork and clone the repository
git clone https://github.com/yourusername/RetroFracture.git
cd RetroFracture

# Build with SplashKit
skm clang++ program.cpp src/*.cpp -o RetroFracture

# Launch the game!
./RetroFracture
```

### Controls
| Key | Action |
|-----|--------|
| **A/D** | Move left/right |
| **W** | Jump |
| **E** | Interact with objects |
| **ESC** | Quit game |
| **R** | Reset position |

## 📁 Project Structure

```
RetroFracture/
├── assets/ # All game assets
│ ├── envs/ # Backgrounds & environments
│ └── sprites/ # Player animations
├── src/ # Source code
│ ├── game.cpp/.h # Main game controller
│ ├── player.cpp/.h # Player character & physics
│ ├── hallwaylevel.cpp/.h # Hallway level logic
│ ├── lvl1.cpp/.h # Apartment 101 level
│ ├── hud.cpp/.h # UI & display
│ └── interactable.cpp/.h # Interactive objects
├── program.cpp # Entry point
└── config.txt # Arcade mechine config
```

### Architecture Overview
- **Game Class**: Orchestrates levels, camera, and state
- **Player Class**: Handles movement, animation, and physics
- **Level Classes**: Modular level implementations
- **HUD Class**: Context-aware UI rendering
- **Interactable System**: Event-driven interactions

### Adding New Levels
1. Create `lvlX.cpp/.h` following existing patterns
2. Add to `Game` enum and instance variables
3. Implement transition methods
4. Add to update/draw switches

## 🗺️ Planned Roadmap

### Campaign (8 Levels, 2 Levels per Act)
```
Act 1:
├── ✅ Apartment Hallway
├── 🔄 Apartments (101 - 107)
│ - Apartment 101 - Player apartment
│ - Apartment 102 - Annoyed neighbor 1 apartment
│ - Apartment 103 - Annoyed neighbor 2 apartment
│ - Apartment 104 - Abandoned apartment
│ - Apartment 105 - Angry neighbor apartment
│ - Apartment 106 - Enemy apartment 1 (Small)
│ - Apartment 107 & 108 - Enemy apartment 2 (Big)
└── 📋 Rest of apartment complex

Act 2:
└── To be decided
Act 3:
└── To be decided
Act 4:
└── To be decided
```

### Coming Soon
- Enemy AI and combat systems
- Character selection mechanics
- Music and sound implementation
- More apartment interiors
- Lighting/shading effects

### Guidelines
- Follow existing code style and structure
- Document complex logic with comments
Binary file added in-progress-games/RetroFracture/RetroFracture
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions in-progress-games/RetroFracture/config.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# PLEASE ONLY EDIT CONTENT AFTER THE "=" SIGN FOR EACH CONFIGURATION SETTING

# The title of your game (eg. Super Mario)
title=RetroFracture

# The name of the author (eg. Jane Doe)
author=Your Name

# The genre of your game (eg. Platformer)
genre=Multi-Genre Mashup

# A Description of your game
description=8-bit neon arcade game that switches genres each level - Platformer, Run & Gun, Beat 'em Up, and more!

# A classification rating to advise the nature of the content (eg. MA 15+)
rating=PG

# Programming language the game is written in (eg. C++)
language=C++

# Path to your game thumbnail image (eg. images/icon.png)
image=assets/sprites/ui/preview.png

# Path to the executable (game.exe)
executable=RetroFracture.exe

# Location of git repo (eg. https://github.com/studioant/arcade_game)
repository=https://github.com/your-username/arcade-games
1 change: 1 addition & 0 deletions in-progress-games/RetroFracture/include/splashkit
Loading