Game Arena
운영 중오프라인에서만 할 수 있던 심리·보드게임을 온라인으로 옮긴 플랫폼. 게임마다 규칙이 달라서 룰 엔진을 게임별로 분리해 7종 이상 구현했다.
- 기간
- 2026.03 – 2026.04
- 역할
- 기획 · 개발 · 배포
풀려고 한 문제
예능에서 보는 심리게임은 사람을 모아야 할 수 있다. 규칙이 게임마다 완전히 다르기 때문에, 하나 만들고 복사하는 방식으로는 두 번째 게임에서 무너진다.
규모
- 커밋 99개
- 서버측 룰 엔진 7종 이상 (게임별 *-engine.ts 분리)
- 방 · 턴 · 플레이어 관리는 공통 레이어로 분리
기술 결정
상황
심리게임은 정보를 숨기는 것이 규칙 자체라는 점
선택
모든 판정을 서버 룰 엔진에서만 수행하고 클라이언트에는 공개 가능한 상태만 내려보냄
이유
클라이언트가 전체 상태를 갖고 있으면 개발자 도구만 열어도 남의 패가 보입니다. 이 장르는 그러면 게임이 성립하지 않습니다. 그래서 클라이언트를 아예 신뢰하지 않는 구조로 시작했습니다.
상황
규칙이 서로 다른 게임을 계속 추가해야 하는 구조
선택
게임별 엔진 파일 + 공통 방/턴 관리로 분리
이유
공통 추상화를 먼저 크게 잡으면 다음 게임이 거기에 안 맞습니다. 반대로 게임마다 엔진을 따로 두고 방·턴처럼 확실히 같은 것만 공통으로 뺐습니다. 새 게임 추가가 엔진 한 파일로 끝납니다.
시현 가능한 것
라이브에서 방을 만들고 게임 한 판 진행
사용 기술
TypeScriptReactRadix UIExpressDrizzle ORMPostgreSQL