Spaces:
Running
Running
title: 3D Air Combat Simulator | |
emoji: ๐ | |
colorFrom: blue | |
colorTo: yellow | |
sdk: static | |
pinned: false | |
license: cc-by-nc-4.0 | |
short_description: One-minute creation by AI Coding Autonomous Agent 'MOUSE-I' | |
# 3D Air Combat Simulator | |
link: https://huggingface.co/spaces/cutechicken/3D-Airforce-Simulator | |
Developer: https://huggingface.co/spaces/cutechicken | |
## ๐ฎ Project Overview | |
A high-quality web-based 3D fighter jet simulator created with **VIBE CODING**. Built with Three.js, this is a full-scale aerial combat game that runs in your browser, featuring realistic physics engine and combat systems. | |
## โจ Key Features | |
### ๐ฉ๏ธ Realistic Flight Physics | |
- **Real Aircraft Dynamics Simulation**: Realistic flight considering lift, gravity, and drag | |
- **G-Force System**: Blackout effects during extreme maneuvers | |
- **Stall System**: Loss of control when speed drops below threshold | |
- **Altitude-based Performance**: G-Force increases with altitude | |
### ๐ฏ Combat System | |
- **20mm Cannon**: 940 rounds, continuous fire capability | |
- **AIM-9 Sidewinder Missiles**: 8 missiles with 3-stage lock-on system | |
- **Flare System**: Heat-seeking countermeasures (3 uses) | |
- **Enemy AI**: Smart AI capable of evasive maneuvers, missile launches, and flare deployment | |
### ๐จ Immersive HUD | |
- **Fighter HUD**: Speed, altitude, heading, pitch/roll indicators | |
- **RWR (Radar Warning Receiver)**: Enemy position and lock-on warnings | |
- **Pitch Ladder**: Aircraft attitude display | |
- **Target Markers**: Automatic enemy marking within crosshair | |
### ๐ Sound Design | |
- Engine sounds, cannon fire, missile launches | |
- Warning system (altitude, stall, Over-G, missile alerts) | |
- Voice guidance system | |
- Distance-based volume control | |
## ๐ฎ Controls | |
### Basic Controls | |
- **W/S**: Throttle increase/decrease | |
- **A/D**: Rudder (yaw) control | |
- **Mouse**: Pitch/roll control | |
- **Left Click**: Fire weapon | |
- **R**: Switch weapon (Cannon โ Missile) | |
- **F**: Deploy flares | |
- **G**: Escape stall (hold for 2 seconds) | |
### Combat Tips | |
1. **Missile Lock**: Keep enemy in crosshair for 3 seconds in AIM-9 mode | |
2. **Flare Usage**: Press F immediately when missile warning sounds | |
3. **Over-G Warning**: Level out when vision darkens during extreme maneuvers | |
4. **Stall Recovery**: Hold G for 2 seconds when speed drops below 300kt | |
## ๐ Installation & Setup | |
### Requirements | |
- Modern web browser (Chrome, Firefox, Edge recommended) | |
- WebGL support | |
- Mouse required | |
## ๐ Project Structure | |
``` | |
3D-Airforce-Simulator/ | |
โโโ index.html # Main HTML (HUD and UI) | |
โโโ game.js # Game logic (physics, AI, combat systems) | |
โโโ models/ # 3D model files | |
โ โโโ f-15.glb # Player fighter | |
โ โโโ mig-29.glb # Enemy fighter | |
โโโ sounds/ # Sound files | |
โ โโโ main.ogg # BGM | |
โ โโโ normal.ogg # Engine sound | |
โ โโโ ... # Various sound effects | |
โโโ effects/ # Visual effects | |
โโโ symbol.png # RWR symbol | |
``` | |
## ๐ ๏ธ Tech Stack | |
- **Three.js**: 3D graphics rendering | |
- **Vanilla JavaScript**: Game logic | |
- **Web Audio API**: Sound processing | |
- **Pointer Lock API**: Mouse control | |
## ๐ฏ Game Objectives | |
- **Mission**: Destroy all enemy aircraft (4) within 180 seconds | |
- **Victory Conditions**: | |
- Destroy all enemies | |
- Survive time limit + destroy all enemies | |
- **Defeat Conditions**: | |
- Health reaches 0 (hit/collision) | |
- Ground collision | |
- Time expires with enemies remaining | |
## ๐ Scoring System | |
- Cannon kill: 100 points | |
- Missile kill: 100 points | |
- Collision kill: 200 points | |
## ๐ก VIBE CODING Achievement | |
This project was created using the **VIBE CODING** methodology. Through rapid prototyping and immediate feedback, we achieved a high-quality 3D fighter jet simulator. | |
### Special Features | |
- Complete game engine in a single JavaScript file | |
- Real-time physics simulation | |
- Complex AI behavior patterns | |
- Professional HUD system | |
- Immersive sound design | |
## ๐ Known Issues | |
- BGM playback delay due to autoplay policies in some browsers | |
- Possible frame drops on high graphics settings | |
- Flares may occasionally fail to perfectly evade missiles | |
# 3D Air Combat Simulator : 3D ์ ํฌ๊ธฐ ์๋ฎฌ๋ ์ดํฐ | |
link: https://huggingface.co/spaces/cutechicken/3D-Airforce-Simulator | |
๊ฐ๋ฐ์: https://huggingface.co/spaces/cutechicken | |
## ๐ฎ ํ๋ก์ ํธ ์๊ฐ | |
**VIBE CODING**์ผ๋ก ์ ์๋ ์์ฑ๋ ๋์ ์น ๊ธฐ๋ฐ 3D ์ ํฌ๊ธฐ ์๋ฎฌ๋ ์ดํฐ์ ๋๋ค. Three.js๋ฅผ ํ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ ๋ณธ๊ฒฉ์ ์ธ ๊ณต์ค์ ๊ฒ์์ผ๋ก, ์ค์ ์ ํฌ๊ธฐ์ ๋ฌผ๋ฆฌ ์์ง๊ณผ ์ ํฌ ์์คํ ์ ๊ตฌํํ์ต๋๋ค. | |
## โจ ์ฃผ์ ํน์ง | |
### ๐ฉ๏ธ ๋ฆฌ์ผ๋ฆฌ์คํฑํ ๋นํ ๋ฌผ๋ฆฌ | |
- **์ค์ ํญ๊ณต๊ธฐ ์ญํ ์๋ฎฌ๋ ์ด์ **: ์๋ ฅ, ์ค๋ ฅ, ํญ๋ ฅ์ ๊ณ ๋ คํ ํ์ค์ ์ธ ๋นํ | |
- **G-Force ์์คํ **: ๊ธ๊ธฐ๋ ์ ๋ธ๋์์ ํจ๊ณผ ๊ตฌํ | |
- **์คํจ(์ค์) ์์คํ **: ์๋ ๋ถ์กฑ ์ ์กฐ์ข ๋ถ๋ฅ ์ํ ์ฌํ | |
- **๊ณ ๋๋ณ ์ฑ๋ฅ ๋ณํ**: ๊ณ ๋์ ๋ฐ๋ฅธ G-Force ์ฆ๊ฐ | |
### ๐ฏ ์ ํฌ ์์คํ | |
- **20mm ๊ธฐ๊ดํฌ**: 940๋ฐ ํ์ฝ, ์ฐ์ฌ ๊ฐ๋ฅ | |
- **AIM-9 ์ฌ์ด๋์์ธ๋ ๋ฏธ์ฌ์ผ**: 8๋ฐ ์ฅ์ฐฉ, 3๋จ๊ณ ๋ฝ์จ ์์คํ | |
- **ํ๋ ์ด ์์คํ **: ๋ฏธ์ฌ์ผ ํํผ์ฉ ์ด์ถ์ ๊ต๋ ์ฅ์น (3ํ ์ฌ์ฉ) | |
- **์ ๊ธฐ AI**: ํํผ ๊ธฐ๋, ๋ฏธ์ฌ์ผ ๋ฐ์ฌ, ํ๋ ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ์ค๋งํธ AI | |
### ๐จ ๋ชฐ์ ๊ฐ ์๋ HUD | |
- **์ ํฌ๊ธฐ HUD**: ์๋, ๊ณ ๋, ํค๋ฉ, ํผ์น/๋กค ํ์ | |
- **RWR (๋ ์ด๋ ๊ฒฝ๋ณด ์์ ๊ธฐ)**: ์ ๊ธฐ ์์น ๋ฐ ๋ฝ์จ ๊ฒฝ๊ณ | |
- **ํผ์น ๋๋**: ํญ๊ณต๊ธฐ ์์ธ ํ์ | |
- **ํ๊ฒ ๋ง์ปค**: ํฌ๋ก์คํค์ด ๋ด ์ ๊ธฐ ์๋ ํ์ | |
### ๐ ์ฌ์ด๋ ๋์์ธ | |
- ์์ง์, ๊ธฐ๊ดํฌ, ๋ฏธ์ฌ์ผ ๋ฐ์ฌ์ | |
- ๊ฒฝ๊ณ ์ ์์คํ (๊ณ ๋, ์คํจ, Over-G, ๋ฏธ์ฌ์ผ ๊ฒฝ๊ณ ) | |
- ์์ฑ ์๋ด ์์คํ | |
- ๊ฑฐ๋ฆฌ๋ณ ์๋ ์กฐ์ | |
## ๐ฎ ์กฐ์๋ฒ | |
### ๊ธฐ๋ณธ ์กฐ์ | |
- **W/S**: ์ค๋กํ ์ฆ๊ฐ/๊ฐ์ | |
- **A/D**: ๋ฌ๋ (์) ์กฐ์ | |
- **๋ง์ฐ์ค**: ํผ์น/๋กค ์กฐ์ | |
- **์ขํด๋ฆญ**: ๋ฌด๊ธฐ ๋ฐ์ฌ | |
- **R**: ๋ฌด๊ธฐ ์ ํ (๊ธฐ๊ดํฌ โ ๋ฏธ์ฌ์ผ) | |
- **F**: ํ๋ ์ด ๋ฐ์ฌ | |
- **G**: ์คํจ ํ์ถ (2์ด๊ฐ ์ ์ง) | |
### ์ ํฌ ํ | |
1. **๋ฏธ์ฌ์ผ ๋ฝ์จ**: AIM-9 ๋ชจ๋์์ ์ ๊ธฐ๋ฅผ ํฌ๋ก์คํค์ด์ 3์ด๊ฐ ์ ์ง | |
2. **ํ๋ ์ด ์ฌ์ฉ**: ๋ฏธ์ฌ์ผ ๊ฒฝ๊ณ ์์ด ๋ค๋ฆฌ๋ฉด ์ฆ์ Fํค๋ก ํ๋ ์ด ๋ฐ์ฌ | |
3. **Over-G ์ฃผ์**: ๊ธ๊ธฐ๋ ์ ์์ผ๊ฐ ์ด๋์์ง๋ฉด ์ํ ๋นํ์ผ๋ก ํ๋ณต | |
4. **์คํจ ํ๋ณต**: ์๋ 300kt ์ดํ์์ Gํค๋ฅผ 2์ด๊ฐ ๋๋ฌ ํ๋ณต | |
## ๐ ์ค์น ๋ฐ ์คํ | |
### ์๊ตฌ์ฌํญ | |
- ์ต์ ์น ๋ธ๋ผ์ฐ์ (Chrome, Firefox, Edge ๊ถ์ฅ) | |
- WebGL ์ง์ | |
- ๋ง์ฐ์ค ํ์ | |
## ๐ ํ๋ก์ ํธ ๊ตฌ์กฐ | |
``` | |
3D-Airforce-Simulator/ | |
โโโ index.html # ๋ฉ์ธ HTML (HUD ๋ฐ UI) | |
โโโ game.js # ๊ฒ์ ๋ก์ง (๋ฌผ๋ฆฌ, AI, ์ ํฌ ์์คํ ) | |
โโโ models/ # 3D ๋ชจ๋ธ ํ์ผ | |
โ โโโ f-15.glb # ํ๋ ์ด์ด ์ ํฌ๊ธฐ | |
โ โโโ mig-29.glb # ์ ์ ํฌ๊ธฐ | |
โโโ sounds/ # ์ฌ์ด๋ ํ์ผ | |
โ โโโ main.ogg # BGM | |
โ โโโ normal.ogg # ์์ง์ | |
โ โโโ ... # ๊ฐ์ข ํจ๊ณผ์ | |
โโโ effects/ # ์๊ฐ ํจ๊ณผ | |
โโโ symbol.png # RWR ์ฌ๋ณผ | |
``` | |
## ๐ ๏ธ ๊ธฐ์ ์คํ | |
- **Three.js**: 3D ๊ทธ๋ํฝ ๋ ๋๋ง | |
- **Vanilla JavaScript**: ๊ฒ์ ๋ก์ง | |
- **Web Audio API**: ์ฌ์ด๋ ์ฒ๋ฆฌ | |
- **Pointer Lock API**: ๋ง์ฐ์ค ์ปจํธ๋กค | |
## ๐ฏ ๊ฒ์ ๋ชฉํ | |
- **๋ฏธ์ **: 180์ด ๋ด์ ๋ชจ๋ ์ ๊ธฐ(4๋) ๊ฒฉ์ถ | |
- **์น๋ฆฌ ์กฐ๊ฑด**: | |
- ๋ชจ๋ ์ ๊ธฐ ํ๊ดด | |
- ์๊ฐ ๋ด ์์กด + ๋ชจ๋ ์ ๊ธฐ ํ๊ดด | |
- **ํจ๋ฐฐ ์กฐ๊ฑด**: | |
- ์ฒด๋ ฅ 0 (ํผ๊ฒฉ/์ถฉ๋) | |
- ์ง๋ฉด ์ถฉ๋ | |
- ์๊ฐ ์ด๊ณผ ์ ์ ๊ธฐ ์์กด | |
## ๐ ์ ์ ์์คํ | |
- ๊ธฐ๊ดํฌ ๊ฒฉ์ถ: 100์ | |
- ๋ฏธ์ฌ์ผ ๊ฒฉ์ถ: 100์ | |
- ์ถฉ๋ ๊ฒฉ์ถ: 200์ | |
## ๐ก VIBE CODING์ ๊ฒฐ๊ณผ๋ฌผ | |
์ด ํ๋ก์ ํธ๋ **VIBE CODING** ๋ฐฉ๋ฒ๋ก ์ผ๋ก ์ ์๋์์ต๋๋ค. ๋น ๋ฅธ ํ๋กํ ํ์ดํ๊ณผ ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ํตํด ๋์ ์์ฑ๋์ 3D ์ ํฌ๊ธฐ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ๊ตฌํํ์ต๋๋ค. | |
### ํน๋ณํ ์ | |
- ๋จ์ผ JavaScript ํ์ผ๋ก ๊ตฌํ๋ ์์ ํ ๊ฒ์ ์์ง | |
- ์ค์๊ฐ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ | |
- ๋ณต์กํ AI ํ๋ ํจํด | |
- ์ ๋ฌธ์ ์ธ HUD ์์คํ | |
- ๋ชฐ์ ๊ฐ ์๋ ์ฌ์ด๋ ๋์์ธ | |
## ๐ ์๋ ค์ง ์ด์ | |
- ์ผ๋ถ ๋ธ๋ผ์ฐ์ ์์ ์๋ ์ฌ์ ์ ์ฑ ์ผ๋ก ์ธํ BGM ์ฌ์ ์ง์ฐ | |
- ๊ณ ์ฌ์ ๊ทธ๋ํฝ ์ค์ ์์ ํ๋ ์ ๋๋กญ ๊ฐ๋ฅ | |
- ํ๋ ์ด ํจ๊ณผ๊ฐ ๊ฐํน ๋ฏธ์ฌ์ผ์ ์๋ฒฝํ ํํผํ์ง ๋ชปํ ์ ์์ | |