중간 발표, 산성비 게임 계획하기

나만무 15일차 TIL

정글일지 54

날짜

2023년 6월 15일 목요일

계획

  • 중간 발표

  • 산성비 게임 로직 생각해보
  • 산성비 게임 구현 방안 마련하기
  • 컨셉 맵 알아보기

결과

  • 중간 발표가 생각보다 잘 끝나서 너무 다행이다.
  • 이후 멀티플레이 구현을 위해 구현한 게임의 언어 변경을 생각해봐야 겠다.
  • 이후 구현에 대해 계획을 세워서 최선을 다해야 한다.

TIL

1. Websocket 과 Socket.io

WebSocket은 양방향 소통을 위한 프로토콜이다. Socket.io는 웹소켓을 활용하는 라이브러리다.

WebSocket

  • HTML5 웹 표준 기술
  • 적은 데이터를 빠르게 통신할 때 이용하는 것이 좋음
  • 이벤트를 들으면 보냄
  • 비교적 많은 데이터를 주고 받을 때 좋음

Socket.io

  • WebSocket을 이용한 라이브러리
  • Room의 개념이 있어서 일부 클라이언트에만 데이터를 전송할 수 있음
  • 따라서 세밀하게 관리할 때 좋음

이렇게 보니 다른 프로젝트들에서 Socket.io를 통해 채팅을 구현하였는지 이해가 갔다. 귓속말의 경우 두 유저에게만 데이터를 전송하면 되니 일부 클라이언트에게만 전송하는 broadcasting 기능이 있는 Socket.io가 더 적합한 것 같다.

지금 나는 한 방에서 게임하는 유저들을 위한 통신 서버를 마련하려고 한다. 따라서 게임을 하는 플레이어 둘 만을 위해 socket.io를 이용하는게 나을 듯 하다.

2. Colyseus

멀티 플레이 게임의 서버 구현을 위한 오픈 소스이다. Phaser3를 이용하였다. 또 우리가 사용하는 skyoffice도 이 Colyseus를 바탕으로 만든 오픈소스이다. 사실 Colyseus를 게임을 위한 프레임워크라 생각했는데, 서버 구축을 위한 기능이였다. skyoffice는 각자가 만드는 custom room의 관리를 colyseus를 이용하는 것이였다!

그렇다면 우리는 어떡해야할까? 현재 TypeScript 기반으로 제작한 게임들의 멀티 플레이 구현을 위해 Phaser3를 기반으로 다시 코드를 작성하고 Colyseus로 서버를 만들어야 할까? 지금 드는 생각은… 굳이..? colyseus를 이용한다고 사실 대단히 시간이 절약될까 생각이 든다. 직접 구현하는게 의미가 있을 것이란 생각도 들고.. socket.io도 라이브러리라 어느정도 편의성이 있을 것 같기도 하다. 팀원들과 협의가 필요할 것 같다.

회고

중간발표 결과가 좋아서 정말 다행이다. 새롭게 정한, 정확히는 어쩔수 없이 선택한 방향성이 알맞아서 너무너무 다행이다. 팀원들에게 고맙고, 미안하다. 이제 얼마나 구현하는지가 중요하다. 열심히 해서 자랑할 수 있는 서비스를 만들고 싶다. 하지만 욕심 부리지 않고, 계획에 맞게 철저하게 해야한다.