포트폴리오

[던전 슈터] Unity 3D 온라인 FPS 게임

임녕 2024. 8. 23. 12:11

 

 

GitHub

Client (Unity 3D, C#): https://github.com/Imnyeong/DungeonShooter

 

GitHub - Imnyeong/DungeonShooter: 3D 멀티플레이 FPS 게임 WebSocket, RESTful API (Node.js)

3D 멀티플레이 FPS 게임 WebSocket, RESTful API (Node.js). Contribute to Imnyeong/DungeonShooter development by creating an account on GitHub.

github.com

RESTfulAPI (node.js): https://github.com/Imnyeong/Node_js_Restful_API

 

GitHub - Imnyeong/Node_js_Restful_API: Node.js_Restful_API

Node.js_Restful_API. Contribute to Imnyeong/Node_js_Restful_API development by creating an account on GitHub.

github.com

WebSocket (node.js): https://github.com/Imnyeong/Node_js_WebSocket

 

GitHub - Imnyeong/Node_js_WebSocket: Node.js_WebSocket

Node.js_WebSocket. Contribute to Imnyeong/Node_js_WebSocket development by creating an account on GitHub.

github.com

 

[Client]

 

2D UI 변경 방식, ViewModelType을 Enum 값으로 만들어서 Singleton 내에서 묶어서 관리

 

 

무기 Prefab의 무분별한 Instantiate 방지용 ObjectPool

 

 

Player를 따라다니는 FollwCam, 평소에는 camDistance만큼 떨어져있다가 Player와 Cam 사이에 장애물(wall)이 있다면 장애물과의 거리만큼 Cam거리가 좁혀진다.

 

 

1인칭 3인칭 변경 기능, Aim은 1인칭 일 때만 보이도록 구현

 

[통신 관련 Client 측]

1. WebSocket

 

WebSocket 통신으로 다른 유저와 Data 실시간 동기화, Packet 구성 후 WebSocket Manager에서 서버 측으로 Data 전송

 

 

Packet 수신 부분, Message를 받으면 action Queue에 먼저 들어온 순으로 실행

PacketType 에 따라 각각 알맞은 함수 호출

 

2. RESTfulAPI

 

RESTfulAPI GET 형식 또는 POST 형식의 Request 전송 후 Response를 받으면 이후 Action을 이어서 실행하는 방식

 

[ 통신 관련 Server 측 ]

1.WebSocket

 

고유 방 번호마다 WebSocket을 열어서 같은 방에 있는 사람들끼리만 정보를 주고받는다.

 

2. RESTfulAPI

 

Requset로 보낸 Packet을 파싱하여 데이터를 Query에 담아 DataBase의 정보를 수정한다.