Skip to content

Commit c03479f

Browse files
committed
README updates
1 parent 7ef38d5 commit c03479f

1 file changed

Lines changed: 58 additions & 18 deletions

File tree

README.md

Lines changed: 58 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,28 @@
66
![CI](https://github.com/olegbespalov/rust-in-space/workflows/CI/badge.svg)
77
</div>
88

9-
A classic space shooter game built with Rust and Macroquad. Navigate through space, destroy asteroids and enemy ships, collect powerups, and try to achieve the highest score!
9+
A mission-based space shooter game built with Rust and Macroquad. Complete missions, destroy enemies, collect resources, and progress through increasingly challenging levels!
1010

1111
## Features
1212

13-
- **Classic Space Shooter Gameplay**: Rotate and thrust your ship to navigate through space
14-
- **Asteroid Destruction**: Break large asteroids into smaller fragments for bonus points
15-
- **Enemy Ships**: Battle enemy ships that shoot at you
16-
- **Powerups**: Collect health and rapid fire powerups to survive longer
13+
- **Mission-Based Gameplay**: Complete objectives across multiple levels with increasing difficulty
14+
- **Classic Space Shooter Controls**: Rotate and thrust your ship with smooth engine mechanics
15+
- **Asteroid Destruction**: Break large asteroids into smaller fragments, with rare asteroids dropping valuable loot
16+
- **Enemy Ships**: Battle enemy ships that track and shoot at you
17+
- **Loot System**: Collect scrap, rare metals, health packs, and weapon boosts
18+
- **Magnet Effect**: Loot items are automatically attracted to your ship when nearby
19+
- **Animated Loot**: Items rotate and drift realistically in space
20+
- **Resource Management**: Track scrap (ordinary currency) and rare metals (premium currency)
1721
- **High Score System**: Your high score is automatically saved and persists between sessions
18-
- **Lives System**: Start with 3 lives and collect health powerups to extend your survival
22+
- **Lives System**: Start with 10 lives and collect health packs to extend your survival
1923

2024
## Controls
2125

2226
- **Left Arrow**: Rotate ship counter-clockwise
2327
- **Right Arrow**: Rotate ship clockwise
24-
- **Up Arrow**: Thrust forward
25-
- **Space**: Shoot bullets
26-
- **Enter**: Start game (from menu) or return to menu (from game over screen)
28+
- **Up Arrow**: Thrust forward (with smooth engine ramp-up)
29+
- **Space**: Shoot bullets / Launch mission (from briefing screen)
30+
- **Enter**: Start game (from menu) / Next mission (from success screen) / Return to menu (from game over screen)
2731

2832
## Installation
2933

@@ -72,20 +76,52 @@ The pre-commit hook automatically runs the same checks as CI before each commit.
7276

7377
## Game Mechanics
7478

79+
### Mission System
80+
81+
The game features a mission-based progression system:
82+
- **Briefing Screen**: View mission objectives before launching
83+
- **Mission Objectives**: Each mission requires completing specific goals:
84+
- Destroy a certain number of enemies
85+
- Collect a certain amount of scrap
86+
- **Mission Success**: Complete objectives to progress to the next level
87+
- **Progressive Difficulty**: Missions become increasingly challenging with more enemies and asteroids
88+
7589
### Scoring
7690
- **Asteroids**: 100 points each
7791
- **Enemy Ships**: 500 points each
7892

79-
### Powerups
80-
- **Health Powerup** (Green circle): Adds one extra life
81-
- **Rapid Fire Powerup** (Purple circle): Temporarily increases fire rate (lasts 6 seconds)
93+
### Loot System
94+
95+
Loot items drop from destroyed asteroids and enemies:
96+
97+
**From Regular Asteroids:**
98+
- **Scrap** (40% chance): 1-3 scrap pieces
99+
- **Rare Metal** (5% chance): 1 rare metal piece
100+
101+
**From Rare Asteroids** (10% chance to spawn, always drop loot):
102+
- **Rare Metal** (50% chance): 2-4 rare metal pieces
103+
- **Scrap** (30% chance): 5-9 scrap pieces
104+
- **Health Pack** (10% chance): Restores 1 life
105+
- **Weapon Boost** (10% chance): Rapid fire for 10 seconds
106+
107+
**From Enemy Ships:**
108+
- **Scrap** (30% chance): 5-9 scrap pieces
109+
- **Health Pack** (10% chance): Restores 1 life
110+
- **Weapon Boost** (5% chance): Rapid fire for 10 seconds
111+
112+
**Loot Mechanics:**
113+
- Items drift and rotate in space for visual appeal
114+
- **Magnet Effect**: When within 150 units of your ship, loot is automatically attracted to you
115+
- Items are collected on contact with your ship
82116

83117
### Gameplay
84118

85-
- Start with 3 lives
119+
- Start with 10 lives
120+
- Complete mission objectives to progress
86121
- Destroy asteroids to break them into smaller pieces
87-
- Enemy ships spawn periodically and shoot at you
88-
- Powerups have a 10% chance to drop when destroying asteroids
122+
- Rare asteroids (10% spawn chance) have distinct appearance and better loot
123+
- Enemy ships spawn based on mission configuration and track your position
124+
- Collect scrap and rare metals for future upgrades (coming soon)
89125
- Colliding with asteroids or enemy bullets reduces your lives
90126
- When all lives are lost, your score is saved if it's a new high score
91127

@@ -95,9 +131,13 @@ The pre-commit hook automatically runs the same checks as CI before each commit.
95131
space_game/
96132
├── src/
97133
│ ├── main.rs # Main game loop and state management
98-
│ ├── components.rs # Game entities and data structures
99-
│ ├── systems.rs # Game systems (wrapping, save/load)
100-
│ └── draw.rs # Rendering functions
134+
│ ├── components.rs # Game entities and data structures (Ship, Asteroid, Loot, Mission, etc.)
135+
│ ├── systems.rs # Game systems (wrapping, save/load, mission generation, loot generation)
136+
│ ├── draw.rs # Rendering functions
137+
│ └── resources.rs # Resource management (texture loading)
138+
├── assets/ # Game assets (sprites, textures)
139+
│ ├── loot/ # Loot item textures
140+
│ └── ...
101141
├── Cargo.toml # Project dependencies
102142
└── highscore.json # Saved high score (auto-generated)
103143
```

0 commit comments

Comments
 (0)