| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- git
- c#
- Toy Project
- BOJ
- Unity
- Data Structure
- System Programming
- Network Programming
- design pattern
- multi-thread
- Online Judge
- PS
- team project
- Photon
- 독서
- docker
- C++
- Today
- Total
목록전체 글 (391)
I'm FanJae.
1. 시작에 앞서- Server에서는 이번 작업을 통해 Player의 이동 요청을 그대로 적용하지 않고, Map 범위와 이동 속도를 검증한 뒤 최종 위치를 결정하도록 변경했다.- 이에 따라 Client 역시 단순히 이동 요청을 전송한 뒤 자신의 위치를 바로 확정하는 방식으로는 동작할 수 없게 되었다.- Client에서 화면을 자연스럽게 움직이는 것과 Server가 실제로 인정한 Player 위치를 구분할 필요가 생겼다.- 따라서 이번 작업에서는 Client의 이동 예측 위치와 Server 확정 위치를 분리하고, MoveResponse 결과에 따라 위치를 보정하는 구조를 구현했다.2. 기존 Client 이동 방식의 문제- 기존에는 MoveRequest 전송이 정상적으로 끝나면 Client에서도 해당 좌표를..
1. 시작에 앞서- 이전까지 Player 이동은 Client가 전달한 좌표를 Server에서 받아 현재 위치로 갱신하고, 같은 Map의 다른 Player에게 전달하는 형태로 구성되어 있었다.- 하지만 이 방식에서는 Client가 비정상적으로 먼 좌표를 요청하거나 Map 범위를 벗어난 위치를 전달하더라도 Server가 이를 판단할 기준이 없었다.- 결국 Player 위치를 Server에서 관리하더라도 이동 결과 자체를 Client 요청에 의존하고 있는 상태였다.- 따라서 이번 작업에서는 Map별 이동 범위와 이동 속도를 Server가 관리하고, 이동 요청을 검증한 뒤 Server가 최종 위치를 확정하도록 구조를 변경했다.2. Map 정보를 코드에서 데이터로 분리- 기존에는 Server 시작 과정에서 Map..
1. 시작에 앞서- 전날에는 LoginServer 접속부터 캐릭터 선택, GameServer 입장, 이동, Map 변경까지 하나의 테스트 클라이언트에서 확인할 수 있도록 구성했다.- 처음에는 서버 기능을 빠르게 테스트하는 것이 목적이었기 때문에 대부분의 처리를 TestClientController 하나에 모아두었다.- 하지만 기능이 추가되면서 TestClientController가 로그인과 캐릭터 선택, 게임 입장 이후의 이동 및 Map 관리까지 모두 처리하기 시작했다.- 여기에 채팅 기능까지 추가하게 되면 하나의 Controller가 담당하는 역할이 계속 증가하게 된다.- 따라서 이번 작업에서는 먼저 로그인 단계와 게임 플레이 단계의 UI 및 상태 관리를 분리했다.- 이후 GameServer에서 구현되..
1. 시작에 앞서- 전날에는 Unity Client에서 LoginServer와 GameServer에 접속하고, 서버에서 전달되는 Player와 Monster 정보를 실제 Unity 객체에 반영할 수 있도록 기본적인 네트워크 구조를 구성했다.- 하지만 구조를 연결한 것만으로는 실제 서버 동작이 정상적인지 충분히 확인하기 어려웠다.- 특히 여러 클라이언트를 동시에 실행했을 때 세션이 정상적으로 분리되는지, Player 이동 정보가 다른 클라이언트에 제대로 전달되는지, Map 이동 이후 기존 객체가 정상적으로 정리되는지 등을 직접 확인할 수 있는 환경이 필요했다.- 따라서 이번 작업에서는 먼저 네트워크 세션과 패킷 검증을 보완한 뒤, 서버에서 전달되는 이동 정보를 화면에 자연스럽게 표현하고, 로그인부터 이동 ..