← Dev Projects

Game Arena

운영 중

오프라인에서만 할 수 있던 심리·보드게임을 온라인으로 옮긴 플랫폼. 게임마다 규칙이 달라서 룰 엔진을 게임별로 분리해 7종 이상 구현했다.

기간
2026.03 – 2026.04
역할
기획 · 개발 · 배포

풀려고 한 문제

예능에서 보는 심리게임은 사람을 모아야 할 수 있다. 규칙이 게임마다 완전히 다르기 때문에, 하나 만들고 복사하는 방식으로는 두 번째 게임에서 무너진다.

규모

  • 커밋 99개
  • 서버측 룰 엔진 7종 이상 (게임별 *-engine.ts 분리)
  • 방 · 턴 · 플레이어 관리는 공통 레이어로 분리

기술 결정

상황

심리게임은 정보를 숨기는 것이 규칙 자체라는 점

선택

모든 판정을 서버 룰 엔진에서만 수행하고 클라이언트에는 공개 가능한 상태만 내려보냄

이유

클라이언트가 전체 상태를 갖고 있으면 개발자 도구만 열어도 남의 패가 보입니다. 이 장르는 그러면 게임이 성립하지 않습니다. 그래서 클라이언트를 아예 신뢰하지 않는 구조로 시작했습니다.

상황

규칙이 서로 다른 게임을 계속 추가해야 하는 구조

선택

게임별 엔진 파일 + 공통 방/턴 관리로 분리

이유

공통 추상화를 먼저 크게 잡으면 다음 게임이 거기에 안 맞습니다. 반대로 게임마다 엔진을 따로 두고 방·턴처럼 확실히 같은 것만 공통으로 뺐습니다. 새 게임 추가가 엔진 한 파일로 끝납니다.

시현 가능한 것

라이브에서 방을 만들고 게임 한 판 진행

사용 기술

TypeScriptReactRadix UIExpressDrizzle ORMPostgreSQL