From cf268c391dbc1e6dd5e417c73d0cadafb7c135ce Mon Sep 17 00:00:00 2001 From: joowon Date: Sat, 12 Apr 2025 04:50:17 +0900 Subject: [PATCH] 20200150 --- PROPOSAL_20200150.md | 134 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 PROPOSAL_20200150.md diff --git a/PROPOSAL_20200150.md b/PROPOSAL_20200150.md new file mode 100644 index 0000000..838b2ba --- /dev/null +++ b/PROPOSAL_20200150.md @@ -0,0 +1,134 @@ +# My proposal + +**Name**: joowonkim +**Student ID**: 20200150 +**Repository URL**: http://git.prototyping.id/20200150/homework5 + +--- + +## Table of Contents +- [Game Title : "polygon alleyway"](#game-title--polygon-alleyway) +- [Brief Description](#brief-description) +- [More Description](#more-description) +- [Game Component](#game-component) +- [Implementation Plan](#implementation-plan) +- [Detailed Plan](#detailed-plan) +- [Expected Challenges](#expected-challenges) +- [Class Features](#class-features) +- [Code Implementation Plan](#code-implementation-plan) + +--- + +## Game Title : "polygon alleyway" + +## Brief Description +This game is an FPS game where you roam around alleyways and shoot key targets to eliminate them. +I got the idea from *airsoft* games. + +--- + +## More Description +- The player wins by eliminating key targets while avoiding enemies. +- Player controls movement and shooting using WASD and mouse. +- Hidden enemies, object collisions, and an HP system exist. +- Bullets lose damage over distance and have ballistic falloff. +- The game will look like a typical FPS scene, with guns, enemies, and 3D objects. + +![FPSscene](./assets/FPSscene.png) + +![airsoft image](./assets/Airsoft.png) +Image from: [News article](https://www.chosun.com/national/weekend/2022/05/21/VW7LNLQHHNEAVLLZKKLNE3VQUU/) + +--- + +## Game Component +- 3D polygon character +- 3D polygon gun +- 3D objects (interact with bullets) +- 3D enemies +- Walls and obstacles + +--- + +## Implementation Plan +I plan to use Unity. + +1. Background implementation +2. Character movement and animation +3. Shooting system +4. Collision system +5. Target objects +6. Enemies that attack the player + +--- + +## Detailed Plan +- For character rigging and animation, I will use [Mixamo](https://www.mixamo.com/#/?page=2&type=Character)'s free assets. +- Among them, I plan to use the character shown below: + +![character image](./assets/chracter.png) + +--- + +## Expected Challenges +- Enemy movement and shooting AI +- Player detection algorithm for enemy +- Splitting upper/lower body movement based on mouse direction + +--- + +## Class Features +I plan to use the following features covered in class: + +- Collision detection +- Simple UI animations (e.g., HP bar) +- Event-driven battle interactions + +--- + +## Code Implementation Plan + +The following classes describe the modular components that will make up the game logic in Unity. + +--- + +### `PlayerMovement` +Handles WASD-based movement for the player. + +```csharp +public class PlayerMovement : MonoBehaviour { + public float speed = 5f; + + void Update() { + float x = Input.GetAxis("Horizontal"); + float z = Input.GetAxis("Vertical"); + transform.Translate(new Vector3(x, 0, z) * speed * Time.deltaTime); + } +} + +```csharp +public class PlayerController : MonoBehaviour { + void Update() { + Vector3 mousePos = Input.mousePosition; + // Rotate character to face mouse position + } +} + +```csharp +public class GunController : MonoBehaviour { + public GameObject bulletPrefab; + + void Update() { + if (Input.GetMouseButtonDown(0)) { + Shoot(); + } + } + + void Shoot() { + Instantiate(bulletPrefab, transform.position, transform.rotation); + } +} +```markdown +- `PlayerHP` : manages health and death logic +- `BulletMover` : handles bullet movement and collision +- `EnemyMove` : moves enemy based on player's position