이어서 유니티 작업 ㄱㄱ유니티의clientPacketManager로 오면 PacketHandler를 만들어 주지 않아 에러가 발생한거 확인 가능그래서 더미클라 > PacketHandler 있는 내용들복사 ㄱㄱ그런데 이제 유니티쪽은 더미클라 PacketHandler보다
미니 프젝 진행하고 마칠 것이다.지금 PDL에서 C_chat이라는 이름으로 채팅을 보내서그것을 S_chat 이라는 서버쪽 답변 메세지 패킷을 이용해서 해당 채팅 내용을 뿌리는 어떻게 보면 굉장히 간단한 채팅 프로그램을 만들고있었다.그래서 플레이어 생성을 하고 움직이게
그래서 우리가 클라에서 채팅만 받아서 하는게 아니라이제 플레이어를 움직이거나하는 그런 간단한 작업을 해보고싶은건데그래서정상적인 Cif or else 둘중 하나는 찾아야될 것이다.그래서 Server 구동후 유니티 실행하면아무것도 안 뜬다! ??지금 Hello Server
유니티에서이런 TryWriteBytes나 Span같은 것을 사용할 수 없을 것이니유니티 프로젝트를 만들어서 나중에 수정을 해나가야 한다.유니티 프로젝트우리 CSHARP > Server 안에다가 생생 ㄱㄱ우리가 여기 ServerCore를 빌드를 한다음에 ServerCor
지난시간까지 패킷모아보내기를 알아보았다.결국에는 가장 중요하고 핵심적인 부분들은 다 완료가 된 것이다.오늘은 짜잘짜잘한 작업들 말고 오늘 살펴볼 것은지난시간에 했던 0.25초마다 Flush를 하고싶었던 것이다.그런데 나중에 게임이 커져가지고Room이 하나만있는게 아니라
우리가 지금까지 Job Queue에 대해서 알아보았다.그리고 지금이 GameRoom이라는 개념이 굉장히 중요하다.던전, 마을에 이런 Room이라는 개념이 들어갈 수 있을 것이다.그게 아니라고한다면 이게 필드에 있는 하나의 "Zone"이 될 수도 있다.그래서 이런 Zon
그래서 크래쉬가 나는거 해결했고이것을 조금더 빡세게 테스트를 해볼려면Listener에서만약 더미클라에서 동시에 500명씩 접속을 하려고 하면은그중에서 일부는 연결이 안될 것이다.why? => 지금 문지기가backlog를 10명만 인정을 하고있기 때문.그래서 원래는 문지
이 잡큐는 컨텐츠 딴에서 만들어도되고ServerCore == 라이브딴에서 만들어도 노상관이다.ServerCore -> Job 생성그다음에 이 Job이라는 개념을 어떻게 만들어 줄 것인가가 고민이다.만드는 방법은 여러가지인데 오늘 보여줄 것은 크게 두가지1) C2) 수동
오늘은 "Command패턴 이론" 대해서 알아 볼 것이다.우리가 나중에 Job, Task와 같은 것들을 관리하는 "Queue"가전형적인 Command패턴의 예제 이다.이런식으로 식당안에 클라이언트 세션이 있었는데클라세션이 이런식으로 뭔가를 요청하면 직원이 와서 요청사항
Dummy클라를 보면은이런식으로 한번만 "접속"을 하고있었다.그래서 일단 더미 클라에SessionManager를 만들어 주자 이렇게이녀석은 서버의 세션메니저와는 하는 역할이 다르다.그리고 더미클라의 Program에서 이렇게 retrun 하는 부분이렇게 바꿔주도록 하자.
패킷까지는 준비 OKsession도 어느정도 끝났기 떄문에컨텐츠를 작업할 대략적인 준비는 끝났다!그런데 이것을 그냥 딱 하고 넘겨주면 난해할것이다.그래서 이것을 어떻게 구조를 짜가지고 게임이든 MMO든 어떻게 만들어야할지아리쏭하다.다른 게임서적을 보아도 거의 여기까지인
우리가 그래서 PacketFormat에다가 PacketManager내용 옮기도록 하자.이런식으로 다 긁어 온다음에자동화 할부분을 보면은의외로 많이 없는것을 알 수 있다.Register부분만 자동화 부분이 들어가야 한다는 말인데여기 {0}번은 패킷 등록패킷등록의 {0}에
1. 개선점 찾기 1) switch문 개선 클라 세션에서 이런식으로 스위치로 패킷아이디를 구분을 해주고 있었는데 사버 클라 네트웍 통신이 많을텐데 운이 안좋게 PlayerInfoReq가 199번째 switch문이라면 쓸데없는 스위치 비교를 198번동안이나
packet을 만들어서 어느정도 자동화 되는 것까지 확인을 하였다.그런데 그 만든 코드(파일들을)PlayerInfoReq와 같은 패킷들을 이런식으로 복붙을 하고 있었는데패킷이 계속해서 바뀔텐데그럴때마다 복붙하는것은 말이 안되니까 오늘은 복붙을 안하고 참조를 하는 방식이
앞으로는 여기 GenPackets에 있는 내용들을수동으로 복붙해서 붙여 넣는게 아니라 클라든 서버든 필요한쪽에서 "참조"를 하게끄름 만들어 줘야한다.그래서 이 파일이 완전체로 제공되기 위해서뭐가 빠졌는지 유심히 살펴보면은이런식으로 enum값 필요 할테고그리고 이런 us
결국 우리가 하고싶은게 뭐냐하면은XML파일 읽은다음에여기서 하나하나씩 다 파싱을 한다음에이 기능을 이용해가지고여기다가 "파일"로 하나로 만들어 주는 것이다.이런 이름으로 만들어주고 "" 에다가 자동 완성한 무언가를 넣어주면된다." "안에다가 자동완성하는 것을 "genP
1. 준비 그래서 int, string, List 등과 같은거 직렬화 해서 보내고 받을때는 역직렬화를 통해서 Raed하는 부분까지 해보았는데 이것을 이제 "자동화"를 하는 부분을 구현읋 하도록 하자. 자동화 코드를 만들때 방법이 먼저 "하드코딩" > 재사용하
오늘은 리스트를 주고 받은 부분 할 것이다.이런식으로 리스트안에 기본 자료형인 int가 들어가 있다고 하면은string, byte\[]를 넘겼던 것과 마찬가지로List에 몇개짜리가 있는지 먼저 밀어 넣어 주고그 다음에 데이터를 밀어넣는 작업을 똑같이 해주면 될 것이다.
이어서 직렬화를 계속 작업을 해볼 것인데그래서 이런 고정된 사이즈의 데이터가 아니라string같은 가변적인 사이즈의 데이터를 갖는 것에 대해서어떻게 처리를 할것인지를 알아볼 것이다.즉, 어떻게 넘기고 어떻게 추출을 할 것인지그전에 잠깐 수정을 하자면 count += 2
이제는 문자열을 직렬화를 할 것인데즉, 네트워크 패킷에다가 문자열을 밀어 넣는 작업을 이어서 할 것이다.UNICODE & ENCODING의 내용에 대해서 훑어 보고 갈 것이다.우리가 이전에 Hellow NetWorkServer! 이런 문자열을UTF-8로 보냈었는데이 U