01 / Context
무엇을 해결할 것인가.
모바일 실시간 게임에 음성과 AI 전술을 더하면 지연과 자원 사용이 늘어날 수 있습니다. 게임 판정의 일관성을 유지하면서 추가 연산을 분리해야 합니다.
세균과 백혈구 진영이 이동·포식·진화를 거쳐 거점을 점령하는 실시간 웹게임.
02 / Direction
프로젝트를 바라본 방향.
이동·충돌·점령은 서버의 게임 규칙으로 처리하고 AI는 전술과 임무를 비동기로 보완하도록 구성했습니다. 접속자가 없거나 다른 서비스에 자원이 필요하면 연산과 모델 점유를 줄입니다.
03 / Experience
사용자의 다음 행동을 설계하다.
진영별 캐릭터와 터치 조작, 7개 거점과 행동 기반 진화를 구성했습니다. 라운드 결과를 다음 판의 정복자 이력으로 이어갑니다.
04 / Making
경험을 실제 시스템으로.
WebSocket 기반 서버가 이동과 게임 판정을 처리하고 Canvas가 전황을 그립니다. LiveKit 음성과 Ollama의 비동기 전술 생성을 연결했습니다.
05 / In detail
구현의 디테일.
- 서버 기준의 실시간 이동·충돌·포식 판정
- 7개 거점 점령과 라운드 이력
- 행동 기반 진화와 캐릭터 외형 동기화
- 모바일 조이스틱·전체 지도·랭킹
- 음성 대화와 로컬 AI 팀 전술
- 접속자 없는 방의 연산 중지·모델 해제
06 / Intelligence & automation
AI를 설계하는 원칙.
로컬 AI는 전황 요약을 받아 팀 전술과 임무를 제안합니다. 출력 형식과 길이를 검증하고 실시간 판정과 분리해 처리합니다. 응답 실패나 자원 부족 시 기본 전략으로 전환합니다.
07 / Outcome
그래서, 가능해진 일.
실시간 다중 사용자 플레이에 거점 점령, 진화, 음성과 AI 전술을 결합했습니다. 접속 상황에 따라 연산과 모델 사용을 조절하도록 구성했습니다.
프로젝트 직접 보기 ↗08 / Continuity
만든 이후의 시간까지.
게임 밸런스, 진영과 음성 연결, 메모리 사용을 관리합니다. 접속자가 없으면 시뮬레이션을 멈추고 모델을 해제합니다. 웹·게임·음성 프로세스를 분리하고 이전 릴리스로 복구할 수 있습니다.
