-
스파르타) The Last Rollback (D-36, Node.js 게임 서버 최종 프로젝트) - ProtobufTIL-sparta 2024. 7. 22. 23:59
> 과제 진행 간 완료한 사항 및 문제점과 해결 과정을 정리해보았다.학습 키워드: Protobuf, Node.js, TCP, socket
1. 완료한 과제 진행 사항
1) 프로토콜 버퍼 / 직렬화 관련 기능 추가 완료:
- 자세한 내용은 위 PR 및 연결된 Issue 참고
- protobuf 관련 기본 세팅 완료
2) sendPacket 함수 생성 및 socket에 추가:- socket에 socket을 bind한 sendPacket 함수를 sendPacket key로 추가하여 socket.sendPacket() 같은 구조로 패킷을 쉽게 전송할 수 있는 구조를 만듦
2. 과제 진행 간 문제점
1) Unity C# 클라이언트 Protobuf 메세지 추가하기 (해결):
지급된 클라이언트 코드에 몇천 자는 되는 코드가 있어서 뭔지 살펴보다가 C#에서 사용되는 자동생성 코드라는 것을 알게 됐다. 주석에 protocol buffer compiler를 통해 생성했다고 나와있어서 protobuf github repo에서 protoc compiler를 다운받아서 사용해보기로 했다.
Windows x64 버전을 다운받고 bin 폴더를 PATH에 추가해주면 powershell에서 아래와 같이 protoc 명령어를 사용할 수 있다.
protoc -I=[src_dir] --csharp_out=[dest_dir] [proto_file_dir] # 예시 # [src_dir] = ./ # [dest_dir] = ../../ # [proto_file_dir] = ./packet.proto
[src_dir]에 source directory, [dest_dir]에 compile된 cs 파일 생성할 위치, proto_file_dir 위치에 .proto 파일의 위치를 적으면 된다.
--
REFERENCES:> 최종 프로젝트 기술 Insight
> 클라이언트 설명서
> 과제 repo
728x90'TIL-sparta' 카테고리의 다른 글
스파르타) The Last Rollback (D-34, Node.js 게임 서버 최종 프로젝트) - Protobuf (3) (2) 2024.07.25 스파르타) The Last Rollback (D-35, Node.js 게임 서버 최종 프로젝트) - Protobuf (2) (0) 2024.07.23 [Docker] Docker Desktop 설치 (Windows 11) (0) 2024.07.21 [DB] 낙관적 락(Optimistic Lock), 비관적 락(Pessimistic Lock) (3) 2024.07.21 Bull 라이브러리 (Node.js) (0) 2024.07.19