현재 자동화 코드 부분이 현재는 유니티에서 그대로 사용 가능합니다.
새로 배우시는 분들 참고하시라고 메모 남겨요.
사용 유니티 버전 : 2021.3.1f1 LTS
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
유니티 연동 #1
강의실 바로가기
저도 유니티를 2021.3.11f1 로 올려서 사용해보니 기존 패킷 코드가 수정없이 바로 적용이 가능했구요.
말씀하신 것처럼 코드를 그대로 사용하면 서버가 중간에 내려가서 원인을 찾아봤습니다.
S_PlayerList가 플레이어가 일정 수 이상 늘어나면 write 부분에서 문제가 생겼던 것이었구요.
PacketFormat.cs 쪽에 가보시면
SendBufferHelper.Open(4096) 이란 부분이 있으실텐데,
거기를 65535로 올리시면 됩니다.
S_PlayerList 가 패킷 크기가 커서 거기서 Write 중에 Exception 이 나는 것이 원인인 것 같더라구요.
저렇게 수정하니 사용자 1000명 정도도 문제없이 받아졌습니다.
Span이 퍼포먼스 측면에서 더 좋고, Array.Copy 는 안쓰는 것이 더 좋을 것이라 생각하여 해당 내용 공유드립니다.
안녕하세요 질문이 있습니다.
아직 강의 초입부인데 자동화 코드는 강의 내용처럼 수정하지 않고 그대로 둬도 된다는 건가요?
강의시작부터 여태껏 열심히 작성한 코드가 유니티랑 맞지 않다는 얘길 들으니 시작부터 동공지진이 오네요 ㅎㅎ ㅠㅠ
(내용 다시 수정합니다)
자답합니다.
글에 써주신 대로 이번 강의는 유니티에서 에러나는 코드 일부를 수정하는 내용인데요, 이게 유니티 2021 버전부터 에러가 안납니다.
다만...마지막 강의 유니티 500개 연동에서 뭔가 알 수 없는 에러가 나네요.
어차피 나중에 대체될 코드이기도 하고..귀찮기도 해서 그냥 최종 올라온 소스코드로 대체했습니다.
따라하실 분들은 참고하시길 바랍니다.
오옷 Span계열 수정 필요없다는 말 맞으시죠? 이거 보기전에 질문올렸는데 해결됐다고 올려야겠네요. 감사합니다 !
저도 유니티를 2021.3.11f1 로 올려서 사용해보니 기존 패킷 코드가 수정없이 바로 적용이 가능했구요.
말씀하신 것처럼 코드를 그대로 사용하면 서버가 중간에 내려가서 원인을 찾아봤습니다.
S_PlayerList가 플레이어가 일정 수 이상 늘어나면 write 부분에서 문제가 생겼던 것이었구요.
PacketFormat.cs 쪽에 가보시면
SendBufferHelper.Open(4096) 이란 부분이 있으실텐데,
거기를 65535로 올리시면 됩니다.
S_PlayerList 가 패킷 크기가 커서 거기서 Write 중에 Exception 이 나는 것이 원인인 것 같더라구요.
저렇게 수정하니 사용자 1000명 정도도 문제없이 받아졌습니다.
Span이 퍼포먼스 측면에서 더 좋고, Array.Copy 는 안쓰는 것이 더 좋을 것이라 생각하여 해당 내용 공유드립니다.
답글
안녕하세요 질문이 있습니다.
아직 강의 초입부인데 자동화 코드는 강의 내용처럼 수정하지 않고 그대로 둬도 된다는 건가요?
강의시작부터 여태껏 열심히 작성한 코드가 유니티랑 맞지 않다는 얘길 들으니 시작부터 동공지진이 오네요 ㅎㅎ ㅠㅠ
답글
이성우
2022.07.03(내용 다시 수정합니다)
자답합니다.
글에 써주신 대로 이번 강의는 유니티에서 에러나는 코드 일부를 수정하는 내용인데요, 이게 유니티 2021 버전부터 에러가 안납니다.
다만...마지막 강의 유니티 500개 연동에서 뭔가 알 수 없는 에러가 나네요.
어차피 나중에 대체될 코드이기도 하고..귀찮기도 해서 그냥 최종 올라온 소스코드로 대체했습니다.
따라하실 분들은 참고하시길 바랍니다.
오옷 Span계열 수정 필요없다는 말 맞으시죠? 이거 보기전에 질문올렸는데 해결됐다고 올려야겠네요. 감사합니다 !
답글