강의가 전부 끝났다. 좋아해야 할지 말아야 할지 말 모르는 조금 애매한 감정이 든다. 그도 그럴것이 이제 정말로 '내 프로젝트'를 시작해야 하기 때문이다. 내 개인적인 감정을 뒤로하고 마지막 강의를 말하자면 아마 모든 수강자가 제일 좋아하는 파트이지 않을까 한다. 네트워크로 통신하며 그 결과를 직접 볼 수 있는. 모든 강의가 그러하겠지만 앞서 본 강의 모두가 이 마지막 강의를 위해 존재했다는 것을 느낄 수 있었다. 그러면서 조금 갑갑한 느낌을 느끼는 것은 역시 내 프로젝트를 시작해야 하기 때문이다. 간단하게 ppt를 이용해 화면 구성도를 만들고, Excel로 데이터를 만들고.... 다행해 DB는 사용할 줄 아니 하겠지만 이것도 할때마다 느끼는건데 할때마다 시행착오를 겪어야 한다. 그리고 여러 시행착오를 ..
게임서버 검색 결과
오늘 간단하게 Job Queue 2개 남은 것만 하려다 "유니티 연동! 참을 수 없지!"하고 유니티 연동 #1까지 해버렸다. 느낌은 재미있다였다. JobQueue는 처음 JobQueue를 발견 했을 때 그 감동이 다시 느껴졌다면 유니티 연동을 시작하는 순간 진짜 게임에 가까워져 왔다는 느낌이 확 들었다. 뭐든 그렇듯 시작이 재미있다. 버전이 맞지 않아 강의 내용과 다르게 경고가 많이 뜬다.(빨간 느낌표인 오류 말고 노란 느낌표 경고다.) 전부가 최신 C#에서 적용하는 Nullable관련 경고다. C#에서 전부 ?, !를 붙여가며 열심히 했는데, 유니티에선 굳이 안 붙여도 되는거 같다. 그 때문에 ?기능 사용하려면 어쩌고 저쩌고 그러면서 경고를 내뱉고 있다. 물론 무시했고, 잘 사용되고 있다. 나중에 한번..
드디어 JobQueue다. 이걸 처음 봤을 때 느꼈던 그 황홀감이 잊혀지지 않는다. JobQueue의 최대 장점은 뭐니뭐니해도 lock사용을 줄여준다는 것이다. 전에 언급했던 20년 된 게임.... 기억하기로 JobQueue는 쓰고 있었다. 하지만 lock도 함께 열심히 쓴 덕분에 멀티쓰레드를 가장한 싱글쓰레드 게임이 되었을 뿐이었다. 해당 강의에서도 언급한 것중 하나가 JobQueue를 사용하는 class면 lock을 모두 빼주라고 말하고 있다. lock이라는것 자체가 하나의 공용 데이터에 여러 쓰레드가 "내꺼야!"하면서 우다다다닥 들어가는 것이 문제다. 하지만 JobQueue는 Job을 관리하는 하나의 쓰레드가 순서를 지키며 Job을 처리하기 때문에 굳이 lock을 적극적으로 해줄 필요는 없다. 다만..
패킷 직렬화 강의를 끝냈다. 어제 #2까지 봤다고 생각했는데, 오늘 보니 어제 #3까지 봤었다. 어제 많이 피곤했었나보다..... 결론적으로 오늘 3개의 강의만 보면 됐었다. 전반 3개의 강의는 패킷을 자동화 하는 '기본'이라면 후반 3개는 더욱더 편하게 하는 '개선'이었다. 개선점은 bat파일을 만들어 Packet Generator로 만들 packet.cs파일을 클라이언트와 서버에 각각 Copy해주는 작업이라던가, PacketManager.cs를 만들고 이를 서버에만 필요한 것, 클라에만 필요한 것을 구분해서 각각 필요한 곳에 Copy해주는 작업 등이었다. 다른것 들은 그냥 하면 되는데, 나처럼 최신 버전으로 해보고 싶은 사람들은 조금 걸릴만한 곳이 있다. (기존에도 null 가능하게 하려면 ?붙이고,..
오늘은 2강의 밖에 듣지 못했다.(Packet Generator 1, 2) 약 30분 짜리라 분명 1시간 정도면 됐을 터인데 약 3시간이 지나가 있었다....(왜....?) Generator를 구글 번역기에 치면 생성 프로그램이라는 번역이 나온다. 즉, 이번 강의는 패킷 생성 프로그램을 만드는 강의다. 해당 강의에서는 xml을 사용하는데, xml을 사용하는 패킷은 처음이었다. 전에 언급한 20년된 게임은 직접 하드코딩해서 txt에 담아(문서로 남길 겸) 클라이언트분께 넘겨줬었다. 다른 게임들은 서버나 클라가 그냥 만들거나 수정하고 Generator를 돌리면 자동으로 서버, 클라이언트에게 패킷 파일이 넘어가게 되어 있었다. 물론 이때도 수정 사항은 꼼꼼히 적어 상대에게 보내야 한다. (꼭 기억하자. 회사의..
직렬화. Serialization이란 단어를 보자마자 든 생각은 간단했다. '이거 어떻게 하는거더라.....?' 하는 방법은 안다. 내가 만든 패킷이 몇개인데. 하지만 그건 모두 강의에서 봤던것들, 블로그에서 보고 따라한 것, 오픈소스에 있는 것을 본 것 들이었다. 솔직히 직접 패킷을 직렬화 하는 부분을 만들일이 적었다. 요즘 오픈 소스가 워낙 잘 되어 있어서 직접 만드는 곳이 있을까 하는 생각이 들 정도였다. 그러다보니 '어어?'하면서 할 줄은 아는데 막상 생각해보려니 잘 기억이 안나는 이상한 느낌이 들었다. 강의 초반이라 하드코딩을 주로 사용했다. 만든지 20년 이상 된 게임 유지보수를 해 보았는데, 이정도 까지 하드코딩을 하진 않았다. 조금 더 나은 수준이었지만..... 게임 개발할 땐 Packet..
최근댓글