미코치 언더테일 방송 보다가 늦게 잤더니 회사에서 하루종일 이 표정이었음


근데 또 보면서 작업하고 있었음...



동기화용 패킷들을 만들었음

아마 isLookLeft같은건 언젠가 enum으로 교체될 듯 함



클라이언트에 엔티티 생성 패킷이 도착하면 일단 임시 캐릭터를 만들어줌.

아메를 등록해뒀으니 캐릭터는 무조건 아메가 생성되는것임


접속했을 때 고유id를 발급해주는데 엔티티의 owner값이 본인 고유id와 같으면 자기꺼임

자기꺼일때만 제어할 수 있음

당연히 클라이언트 조작해서 다른사람 아메를 조작하려고 보내도 서버가 씹어버림ㅎ



유니티를 두 개 켜서 접속시키면 이렇게 됨


뭔가 엄청 동기화가 잘 되는것처럼 보이지만 사실 로컬 네트워크로 접속해서 아주 빠른거임.

저 아이피 타고 가면 아무리 멀리 가봐야 공유기까지만 갔다 돌아오기 때문


FPS게임들은 보통 33ms (60프레임 기준 2프레임)마다 한번씩 동기화하거나 하는데,

그정도로 정밀할 필요는 없어서, 100ms으로 잡더라도 위치 보간을 넣어줘야 함

아마 예측항법보단 그냥 버퍼링을 두지 않을까 싶음... 


외부IP로 접속시켜서 쓸데없이 한바퀴 돌고 오게 만들어야 정상적인 네트워크 환경에서 테스트가 가능함

근데 이사하고나서 포트포워딩 아무리 뚫어줘도 못 들어오던데... 또 아마존 서버 사서 돌려야 하나...



다른 유저가 나가도 정상적으로 처리됨

오른쪽이 나갔는데 늦게 지워지는건 게임 완전히 끄는데 시간이 걸려서 잔상이 남는거임



또 내일 출근해야한다니에...



요약

WASD로 이동 + 걷는 모션 적용 완료

다중접속 가능


다음 작업

아메 손에 MOM 대신 무기 들고 조준되게 만들기 (당연히 다른 유저도 똑같이 보여야 함)

탄환 발사체 테스트. 아마 첫 구현에 완벽하게 안 될 것 같음