|
|
--- |
|
|
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 ์ฌ์ ์ง์ฐ |
|
|
- ๊ณ ์ฌ์ ๊ทธ๋ํฝ ์ค์ ์์ ํ๋ ์ ๋๋กญ ๊ฐ๋ฅ |
|
|
- ํ๋ ์ด ํจ๊ณผ๊ฐ ๊ฐํน ๋ฏธ์ฌ์ผ์ ์๋ฒฝํ ํํผํ์ง ๋ชปํ ์ ์์ |
|
|
|
|
|
|