라벨이 protoBuf인 게시물 표시

[프로젝트 RTS] 게임서버를 만들어보자 [1]

이미지
최근 회사 일만으로 개발 실력 향상에 부족한 거 같아 게임을 만들어보자라는 계획을 잡고 후배와 진행중입니다.. (유니티 Client Unix C++ 서버 ) 목표로는 웜즈와 비슷한 UI로 Real Time 대전 액션 게임...인데 현실은... ... 어쩃든! 현재는 로그인/로그아웃만 구현이 되어있습니다. 이제 이동 및 이벤트에 대해 처리해야하는데, 갈길이 머네요 ㅎㅎ... 게임 서버 아키텍쳐에 대해서도 고민이 되고 구현 방식에도 참 다른점을 많이 느꼈습니다. (특히 protobuf가 지옥이었습니다..) 또, real time 서버에서는 구역화를 나누는게 어렵더군요 (전체 유저에게 이벤트 정보를 주기보다 구역을 나눠 근처에 있는 유저에게만 주는?) 현재 위 이슈에서 막혀있습니다... 좀더 노력을 해봐야겠네요 로그인 까지의 코드는 해당 github에 있습니다. ( https://github.com/warguss/ProjectRTS ) 추가로 읽으면 좋을 것

[Linux/CentOS/ProtoBuf] Centos - Protobuf 연동[echo 서버][2]

이미지
아래 포스팅에서의 작업은 다음과 같습니다. 1. *.proto 생성방법 2. 간단한 Echo 서버 및 Makefile 작성 3. 통신 테스트 1. *.proto 생성방법 ProtoBuf 통신을 위해서는 *.proto , *.pb 관련 파일을 생성해야 합니다. 이게 무엇인가하면, ProtoBuffer는 객체를 byte화 시키고(Serialize) Client쪽에서도 byte를 객체로(DeSerialize) 변환을 진행합니다. (통신에는 byte stream으로만 통신하기 때문에) [Serialize] [DeSerialize] 즉, Protocol과 같은 역활을 진행하기 때문에, Client - Server간에 Protocol에 해당하는 명세서를 작성한다고 생각하시면 편할것 같습니다. 그럼 이거를 수동으로 만드냐? 그건 아닙니다. ProtoBuffer에 프로그램이 존재하는데, 만드는 방법은 다음과 같습니다. protoc 프로그램을 통해, 정의된 *.proto를 *.pb로 생성하는 역활을 진행합니다. protoc 실행방법은 아래와 같습니다. (경로 = protobuf 메인/src/protoc ) protoc -I=../../../ProjectRTS/ClientRoot/proto --csharp_out=../../../ProjectRTS/ClientRoot/proto ../../../ProjectRTS/ClientRoot/proto/addressbook.proto -I에는 *.proto가 있는 경로 output에는 *.pb로 생성 될 경로 그 뒤의 경로는 어느 *.proto를 바꿀지 정의합니다. 해당 명령어는 C#에 해당하는 건데, c++의 경우는 --csharp_out을 단순 --cpp_out으로 변환하면 됩니다. 해당 명령을 진행하면 어떻게 되느냐? /* 해당 정의된 Package들이 ...

[Linux/CentOS/ProtoBuf] Centos - Protobuf 연동[echo 서버][1]

https://github.com/google/protobuf에서 clone을 받습니다. $ git clone https://github.com/google/protobuf.git 매뉴얼은 protobuf폴더 내, src/README.md 에 C++용 가이드가 있습니다. 영어로 되어 있으며 utunto 기준으로 설명을 합니다. CentOS로 풀어서 가이드로 해보면 설치 전 필요 Tool은 다음과 같습니다. 1. autoconf , $ yum install -y autoconf 2. automake , $ yum install -y automake 3. libtool , $ yum install -y libtool 4. curl , $ yum install -y curl (gmock을 다운받기 위한 용도) 5. g++ , $ yum install -y gcc-c++ 6. unzip , $ yum install -y unzip 그 다음 protobuf가 clone된 메인에서 $ ./autogen.sh 를 실행합니다. 그 이후 $ (sudo) ./configure [저의 경우는 root유저로 ./configure로 했을 때, configure: error: C++ compiler cannot create executables 가 발생하였고, sudo 를 붙이니 해결되었습니다.(가이드는 sudo없음)] $ make $ make check $ sudo make install $ sudo /sbin/ldconfig // Library를 unit library Cache에 적재 이제 이 Library와 Include들을 상대적이게 할 것 인지, 절대적으로 /usr/경로에 넣을 것인지 를 선택합니다. 저의 경우는 상대적으로 작업을 하였는데, 이유는 git에 올렸을 때, clone시 protobuf 설치 없이 가능하도록 하기 위해서 였습니다. 우선 필요 include...

이 블로그의 인기 게시물

윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석

대통령 퇴진운동 관련주: 방송·통신·촛불수혜주 완벽 분석

키움 OPEN API MFC 개발 (1)