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