오브젝트간에 통신을 하는 방법은 여러가지가 있다. 일반적으로 처음 접하게 되는게 파블릭으로 선언해 주고 손으로 다는 건데 이거는 가끔 오브젝트가 떨어져 나가는 경우가 있어서 막 배울때 빼고는 별로 사용하지 않는다.
그래서 가장 많이 쓰는 방식은 static으로 메인 메니저들을 만들어 놓고 중앙집중적으로 이어서 만드는 거다. 문제는 이거는 프로젝트의 설계가 무너지면 리스크가 빠르게 전파가 된다. 회사에 대표가 개발에 대해서 무지한 경우 혹은 기획자가 개발에 대해 무지한 경우에 이 방식을 쓰면 프로젝트도 무너진다.
그래서 유니티에서 추천하는 방식은 유니티 이벤트를 활용하거나 조금 범용적으로 델리게이트 이벤트를 활용해서 오브젝트간 통신을 하도록 한는 경우가 많다. 분산적인 구조로 가는 것이고 분산적인 구조를 짤때는 이 방식을 가장 많이 쓴다. 델리이트 문법은 고급 문법에 속하기 때문에 실력있는 팀원을 충원할수 있는 팀에서 이 방식을 많이 사용한다.
내 방식은 조금 독특한데 파인드 오브젝트 타입을 이용해 자동으로 접근하는 거다. 이 방식에는 치명적인 문제가 있는데 매니저가 하나가 아니라 복수로 다는 경우 엉뚱한 것을 찾거나 같은 타입에 오브젝트를 실수로 붙이는 경우에는 버그를 야기할 수가 있다. 죄다 다 찾아 버리기 때문이다. 이 방식은 팀원을 믿을수 있고 소통이 원활한 경우에만 쓸수가 있다.
그래서 보통 7명 내외에 소규모 인디 팀들이 이 방식을 많이 쓰는 편이다. 안티 패턴에 가깝긴 한데 장점이 있기 때문에 쓴다. 유니티가 왜 작은 팀에 최적화 되어있는지 알수 있는 패턴이다.
맨마지막은 종합 설명이다. 여기까지하고 끝인듯 싶다. 이게 마냥 따라하는 것은 재미가 없기 때문에 안보고 삽질하면서 만들어 보는 것도 하나의 방법일지도 모르겠다는 생가이 든다.
소소한 버그가 있는데 이거는 영상이 진행되면서 해결이 될꺼다. 하루에 20분씩 꾸준히 하면 다 들을수 있을듯 싶다. 이제 6일치 정도 남았다.
isOwner라는 중요한 서버에서 중요한 게념이 나온다. 플레이어가 여려명일때 자기만 조작하도록 만드는 거다. 강의를 두세번 정도 반복해서 서버에 기본 개념을 잡고 가야 할듯 싶다. 이게 중간중간 서버에 대한 개념설명이 나오기 때문에 계속 반복해서 영상을 보고 숙지를 해야 할듯 싶다.
자꾸 뒤로 가는데 이게 왜 적용이 안되는지 모르겠다. 버그만 좀 수정하고 가자.
이걸 추가해 준다. 업데이트에 이런식으로 new를 박으면 나중에 가비지 컬랙터가 열일하게 되지만 별수 없다.
여튼 잘 동작한다.
결국 실시간 서버 통신까지 해야 하는 회사에 취업을 하게 되는듯 싶다. 서버에 대한 지식이 낮아도 되는 턴제 게임을 만들다보니 실시간 서버통은 잘 모른다고 했었는데도 뽑혀부렀다. 공부를 출근할때까지 할수 있는 한도내에서 다 하고 가야 할듯 싶다.
싱글톤에 접속하는 거는 싱글톤이라고 하면 되는듯 싶다.
네트워크 애니메이터라는 것이 있는듯 싶다.
회사 다니면서 언리얼하고 스파인 애니메이션 둘을 익힐 필요가 있다. 첫월급이랑 해서는 빚진거 갚아야 하니까 일단 한 3개월 이후 부터 공부를 하면 될듯 싶다. 일단은 회사에 적응하는게 먼저다.
요거 오류가 뜨는거 해결을 해야 할듯 싶다. 호스트 버튼을 눌렸는데 실행이 안된다.
그냥 무시하고 넘어가도록 한다. 어차피 강의니까 개념만 익히면 충분하다.
길이를 전송하는 것까지 해서 1시간 10분 컷이 나는듯 싶다. 네트워크 베이어블이라는 새로운 개념이 나온다.
아 거의 엔진을 새로 배우는 느낌이다.
별다른 언급이 없으면 에브리원 서버가 디폴드 값이라고 한다. 이거 이거 이것만 해서 한 여려번 반복을 해야 할듯 싶다. 한번에 이 개념을 가져갈수는 없을듯 싶다. 잠깐 여기서 좀 쉬었다가자.
Lerp 라는 새로운 개념이 나오는데 둘 사이를 선형 보간해주는거라고 되어 있다. 일단은 넘어가고 두번째 복습할때 이거의 의미를 파악을 해야 할듯 싶다.
유니티도 배울께 쌓여서 언리얼로 넘어가는건 조금 시기 상조일꺼 같고 스파인 애니메이션 정도만 익혀두면 될듯 싶다. 모델링 보다는 애니메이션에 초점을 맞춰야 겠다.
트라이 게임 오브젝트라는 생소한 개념이 나온다.
따라다니지 않는 버그가 있다. 멀 잘못 했으려나.
자고 내일 해야 겠다.
오류가 떠서 그런거 같으니까 하나하나 해결하면 될듯 싶다. 한번에 성공하기는 쉽지가 않다. 매일 조금씩해서 일단 맛만 보고 가고 그 이후부터는 주말마다 반복해서 연습을 해야 한다. 한 10번쯤 반복해야 아 이제 좀 알꺼같다 이 단계까지 올수가 있다.
버그가 없어도 안따라다니는데 이건 그냥 내가 직접 구현을 해야 할듯 싶다.
업데이트문 자체가 실행이 안된다.
코루틴으로 바꾸니까 해결이 됬다.
잘 작동한다 속행하자. 가끔 전혀 이상한 방식으로 해결될때까 많다.
버그가 생기는 거를 해결해야 한다. 영상을 따라하면 해결되는 거라서 문제가 없을듯 싶다.
C#도 함수형 언어들처럼 함수를 집어넣을 수 있도록 바꼈나 보다. 예전에는 Action만 됬었는데 void도 가능해졌나 보다.
이제 클라이언트 정보를 기록할수 있도록 하는 걸 만들면 될듯 싶다.
2D를 안쓰다 보니 이런게 있는지 몰랐다.
폴리곤 콜라이더 2D를 설정해 준다.
네트워크 프리팹은 여기에 등록을 해주는 걸로 바뀌었다.
서버의 경우에는 컴포넌트를 접근할때 오류가 나서 튕기지 않도록 트라이 컴포넌트를 쓰는가 보다.
리지드바디를 붙이면 문제가 해결이 되는 건 또 처음 본다.
아주 잘 작동한다. 지금은 생각없이 따라해 보지만 몇번을 반복해서 따라해서 해당 원리를 익혀야 할듯 싶다.
안먹어지길래 식겁했는데 그냥 접촉이 안좋은 거였다. 이제 한 반정도 온거 같다.
한 5일에서 6일 정도 분량이 남은듯 싶다. 첫도전은 시간이 좀 걸린다. 그 다음 복습부터는 주기가 점점 짧아진다. 머든 한번에 되는것은 없는 편이다.
강의 동영상에서 코딩하는 방식이랑 일반적인 코딩방식이라는 어느정도 차이가 있다. 일반적인 코딩에는 가독성이나 코드 정리같은거를 틈틈히 하는 경향이 있다. 강의에서는 단순화 해야 하니 대부분 생략을 한다. 이 강의는 중간 중간 코드정리도 하는데 그때문에 강의가 2시간 30분이나 된다.
엑션을 만들어 놓고 이벤트를 등록해서 이벤트 발생시에 다른코드에서 등록해 둔 이벤트를 실행하는 방식으로 코드가 진행이 된다.
먼가 강의를 알꺼 같기도 하다. 한 두어번 반복하면 잘할수 있을듯 싶다.
이거 이벤트를 활용하는 방식을 잘 활용해야 할듯 싶다. 이게 FindObjectType의 경우에는 초기에 로딩을 하는 시간이 걸린다.
싱글톤 잘 안써서 몰랐었는데 이번에 좀 배워가야 할듯 싶다.
요렇게 싱글톤을 받아서 쓸수 있는듯 싶다.
아 이거 리콰이어 컴포넌트 어떻게 쓰는지 늘 궁금했는데 이번에 궁금증이 풀이는듯 싶다.
싱글톤은 이렇게 실행시키면 된다.
요 뒤에 서버나온거 보고 가면 될듯 싶다. 2/3는 지나온듯 싶다. 31까지 하면 되고 복습은 주말에 하면 될듯 싶다.
서버작업에는 트라이 겟컴포넌드를 쓴다. 이거 말고도 트라이 케치를 많이 쓰는 듯 싶다.
서버 알피시라는 새로운 개념이 등장한다.
직렬화를 해야 한다고 하는데 일단은 머가 먼지 모르니까 그냥 따라하고 2회차때 좀더 딥하게 알아보아야 할듯 싶다.
서버까지만 어찌 어찌 하면 다시 애니메이션에 집중해도 될듯 싶다.
근데 이거 완벽하게 이해하려면 시간이 좀 걸릴꺼 같다.
머가 먼지 모른채로 그냥 따라하고 있는 중이다. 그나저나 으음 이게 회사 가면 왠지 해멜꺼 같긴 하다. 턴제 게임 제작자들이 일반적으로 서버 능력이 실시간 게임 만드는 애들보다 좋지는 않다. 턴제 전략은 서버 능력이 좋지 않아도 멀티게임을 만들수 있어서 그렇게 까지 열심히 공부는 하지 않는 경향이 있기 때문이다. 머든 자기가 필요한 부분까지는 하기 마련이다.
눌 체크 방식이 조금 바뀐듯 싶다.
먼가 랙이 발생하는거 같지만 일단 넘어가도록 한다.
오류가 있고 딜레이가 있는데 일단 이번 단계에서는 넘어가도록 하자. 복습때 해결하도록 해야 겠다.
앞에서 간의로 만들어 놓은 클라이언트 네트워크 트랜스폼을 일반적인 네트워크 트랜스폼으로 바꾸어 준다.
이게 으음 양이 많기 때문에 복습하기게 딱 좋지는 않다. 이번 한번만 경험하고 넘어가고 자세한 거는 회사 들어가서 배워야 하지 않을까 싶다.
호스트 클라이언트가 아니라 서버를 보냄으로써 치팅을 막고 보다 안정적으로 게임이 진행이 될수 있다고 한다.
함수 이름이 ServerRpc로 끝나야 오류가 안생긴다.
진짜 라이더를 벗어나면 코딩이 어려울 정도로 라이더의 기능은 편한듯 싶다. 다른 툴들을 그림판이나 메모장으로 만들어 버린다.