728x90

나만무 63

24.04.30 나만무, 멘토 면담

나만무플레이어 결승선 도착플레이어가 결승선에 도달했을 때의 코드를 작성했다.아직 멍청서버를 만들고있기 때문에 후에 더 수정 될 예정이다.원래의 broadcast의 경우 나를 제외한 나머지 유저들에게 정보를 보내는 코드여서 broadcastAll이라는 함수를 새로 만들어서 사용했다.플레이어 출발결승선을 만들고 난 뒤, 출발도 만들었다.일단 outgame 부분과 로딩을 확인하는 부분이 없으니 플레이어 한명이 버튼을 누르면 그 트리거를 바탕으로 프로토콜을 전달 받으며 게임을 실행하는 것으로 간단하게 만들었다.UML 구조GameStart 프로토콜을 서버가 클라이언트에게서 받으면 GameStartCountDown()을 호출한다. GameStartCountDown()에서 플레이어에게 카운트 다운을 시작하라고 Gam..

24.04.29 나만무

나만무순환참조 문제InGameServer.js의 broadcast()를 ProtocolHandler.js에서 사용하기 위해 InGameServer를 import했는데, InGameServer에서 이미 ProtocolHandler를 참조(import)하고 있었기에 순환 참조 문제가 발생했다.broadcast() 함수를 ProtocolHandler로 옮겨서 해결했다.코드 아키텍쳐 설계의 중요성을 다시 한 번 알게됐다.변수 수정 문제유저를 id로 관리할 때, 기존에는 간단하게 구현했었다.sockets의 size를 id 삼아서 사용했었는데, 이를 id를 랜덤으로 생성하도록 변경한 후, 이 부분을 다시 변경해주지 않아서 문제가 발생했다.변수를 잘못 사용하던 부분을 수정하여 해결했다.협업 문제클라이언트와 소통하는 ..

24.04.28 나만무

나만무Buffer issue다른 플레이어가 접속했을 때, 33번 프로토콜을 전송했는데, 이상한 프로토콜을 받아오는 문제가 있었다.보내고 받을 때, 비슷한 형식의 코드를 쓰고 있었기 때문에 코드에 문제점은 없었고, 실제로 console.log를 찍어봤을 때에도 문제가 없었다.유니티에서 스트림이 쌓여 있을 때, ReceiveData() 함수를 실행한다.이것을 보고 혹시 버퍼의 다른 값이 들어가 있어서 새로운 값이 들어 왔을 때, 버퍼가 합쳐지면서 값이 달라졌을 것이라고 생각했다.서버쪽의 코드를 확인해보았는데, 확인용으로 써놨던 broadcast(”newPlayer”,socket) 함수가 있었고, 클라이언트 쪽에서는 이 부분이 프로토콜이 없다보니 읽지 않아서 스트림에서 빠져나가지 않고, 차있는 상태였다. 그래..

나만무 슬레이어즈 4

나만무순환참조 문제InGameServer.js의 broadcast()를 ProtocolHandler.js에서 사용하기 위해 InGameServer를 import했는데, InGameServer에서 이미 ProtocolHandler를 참조(import)하고 있었기에 순환 참조 문제가 발생했다.broadcast() 함수를 ProtocolHandler로 옮겨서 해결했다.코드 아키텍쳐 설계의 중요성을 다시 한 번 알게됐다.변수 수정 문제유저를 id로 관리할 때, 기존에는 간단하게 구현했었다.sockets의 size를 id 삼아서 사용했었는데, 이를 id를 랜덤으로 생성하도록 변경한 후, 이 부분을 다시 변경해주지 않아서 문제가 발생했다.변수를 잘못 사용하던 부분을 수정하여 해결했다.협업 문제클라이언트와 소통하는 ..

Study/Project 2024.04.30

24.04.27 나만무

나만무멀티접속 구현, 동기화 x멀티 접속까지는 구현에 성공했다.같은 씬 안에 들어온 다른 캐릭터가 구현이 됐지만, 현재 같은 플레이어 이동 스크립트를 가지고 있기 때문에, 내 캐릭터를 움직이면 이 멀티 캐릭터도 움직이는 문제가 발생했다.이 부분은 프리팹에서 스크립트를 제거해주고, 움직임을 동기화하는 방법으로 해결하면 될 것같다.Node.jsclass함수는 기능을 포장하는 기술이라면 클래스는 그렇게 만들어진 변수와 함수 중 연관있는 변수와 함수를 선별해 포장하는 기술이다. 포장하는 이유는 객체 단위로 코드를 그룹화하고 재사용하기 위함이다.기능에 국한된 것이 아니라 특정한 개체를 만드는 용도로도 사용될 수 있으며, 이 클래스를 이용해서 객체를 실체화하는 것을 인스턴스화라고 한다.costructor클래스의 인..

나만무 슬레이어즈 3

나만무Buffer issue다른 플레이어가 접속했을 때, 33번 프로토콜을 전송했는데, 이상한 프로토콜을 받아오는 문제가 있었다.보내고 받을 때, 비슷한 형식의 코드를 쓰고 있었기 때문에 코드에 문제점은 없었고, 실제로 console.log를 찍어봤을 때에도 문제가 없었다.유니티에서 스트림이 쌓여 있을 때, ReceiveData() 함수를 실행한다.이것을 보고 혹시 버퍼의 다른 값이 들어가 있어서 새로운 값이 들어 왔을 때, 버퍼가 합쳐지면서 값이 달라졌을 것이라고 생각했다.서버쪽의 코드를 확인해보았는데, 확인용으로 써놨던 broadcast(”newPlayer”,socket) 함수가 있었고, 클라이언트 쪽에서는 이 부분이 프로토콜이 없다보니 읽지 않아서 스트림에서 빠져나가지 않고, 차있는 상태였다. 그래..

Study/Project 2024.04.30

나만무 슬레이어즈 2

나만무멀티접속 구현, 동기화 x멀티 접속까지는 구현에 성공했다.같은 씬 안에 들어온 다른 캐릭터가 구현이 됐지만, 현재 같은 플레이어 이동 스크립트를 가지고 있기 때문에, 내 캐릭터를 움직이면 이 멀티 캐릭터도 움직이는 문제가 발생했다.이 부분은 프리팹에서 스크립트를 제거해주고, 움직임을 동기화하는 방법으로 해결하면 될 것같다.

Study/Project 2024.04.30

나만무 슬레이어즈 1

슬레이어즈설레일팀의 슬레이어즈로 기획이 컨펌되고, 여러 환경설정이나 맞춰가는 시간을 가졌다.멘토님이 정해져서 멘토님과의 면담도 진행했다.멘토님은 5민랩의 CTO님이셨고, 여러 걱정이나 그런것들이 있었는데, 면담 시간을 갖고나서 그런것들이 싸그리씨그리싸그리 없어졌다.너무 친절하게 다 집어주시고, 중요한 부분 아키텍처나 프로젝트의 시간적인 그런 부분까지 다 고려해서 말씀해 주시는 부분이 너무 좋았다.서버에 대해서도 말씀해주셨는데, 말씀을 듣고 여러 생각을 해본 결과 C++에서 Node.js로 옮기게 됐다. 아마 서버 구현이 끝나고, 시간이 남으면 c++로 그 서버 그대로 짜보는 연습이나 시간을 가질듯하다.면담을 통해 큰 줄기 잡힌것같고, 그 큰 줄기에 여러 타임라인이 새겨진 느낌이다.잘 해 나갈 수 있을 것..

Study/Project 2024.04.26

24.04.26 나만무, Node.js

슬레이어즈설레일팀의 슬레이어즈로 기획이 컨펌되고, 여러 환경설정이나 맞춰가는 시간을 가졌다.멘토님이 정해져서 멘토님과의 면담도 진행했다.멘토님은 5민랩의 CTO님이셨고, 여러 걱정이나 그런것들이 있었는데, 면담 시간을 갖고나서 그런것들이 싸그리씨그리싸그리 없어졌다.너무 친절하게 다 집어주시고, 중요한 부분 아키텍처나 프로젝트의 시간적인 그런 부분까지 다 고려해서 말씀해 주시는 부분이 너무 좋았다.서버에 대해서도 말씀해주셨는데, 말씀을 듣고 여러 생각을 해본 결과 C++에서 Node.js로 옮기게 됐다. 아마 서버 구현이 끝나고, 시간이 남으면 c++로 그 서버 그대로 짜보는 연습이나 시간을 가질듯하다.면담을 통해 큰 줄기 잡힌것같고, 그 큰 줄기에 여러 타임라인이 새겨진 느낌이다.잘 해 나갈 수 있을 것..

24.04.25 최종 기획

최종 기획드디어 최종 기획 발표가 끝났다.지금까지의 기획 발표는 코치님들 앞에서 하는 기획 발표였는데, 이번에는 원장님도 참여한 기획 발표였다. 지금까지 원장님이 게임을 엄청 반대하신다고 들었다. 게임을 너무 좋아하시는 만큼 게임에 대해 가볍게 생각하고 접근하는 것을 싫어하시고, 사실 이 짧은 기간동안 완성도 있는 게임을 개발하는게 당연 어려운일이기 때문에 그것에 대해서는 이상하게 생각하지는 않았다.물론 생각이 이런거지 무척 긴장되고, 무서웠다.반려 당하면 또 기획하면 되지라는 생각은 항상 있지만, 사람이라는게 기계가 아닌 이상 지치게 되고, 내 마음 한켠에서도 이럴거면 그냥 웹이나 다른거 할걸 이라는 생각이 나올 수 있다고 생각해서 걱정이 됐다. 아마 우리 팀 모두 같은 생각을 했을 것 같다.특히 발표..

728x90