첫 게임을 만들었습니다: 멀티플레이어 RTS. 개발 7일 차입니다.
I made my first game: A multiplayer RTS. Today is the 7th day working on it.
핵심 요약
Claude를 활용해 7일 만에 개발한 웹 기반 멀티플레이어 RTS 게임 'Frontline Zero'를 공개했습니다.
- 게임 특징 — 90년대 RTS 감성에 현대적인 드론 및 전자전 요소를 결합함
- 기술 스택 — TypeScript 기반의 결정론적 엔진과 WebGL/Canvas 2D를 사용함
- 개발 방식 — Claude 3.5 Opus를 활용해 그래픽 파이프라인과 코드 작성을 수행함
- 플레이 방식 — 브라우저에서 무료로 즐길 수 있는 멀티플레이어 RTS 게임임

BLUF 브라우저에서 바로 즐기는 무료 게임: www.frontlinezero.com
다들 안녕. 내가 'Frontline Zero'라는 게임을 만들었어. 현재 진행 중인 전쟁을 배경으로 우크라이나나 러시아 중 하나를 골라 플레이하는 멀티플레이어 RTS야.
90년대 후반 RTS 게임의 향수를 불러일으키면서도, 현대적인 RTS 메커니즘과 오늘날의 전쟁 요소를 섞어보고 싶었거든. 게임 플레이는 'Red Alert 2'에서 영감을 받았고, 'Company of Heroes'와 비슷한 구역 점령 기반 경제 시스템, 그리고 'C&C'와 'StarCraft'에서 따온 UI를 적용했어.
동시에 전쟁이 어떻게 진화했는지도 게임에 담고 싶었어. 전통적인 공중 지원은 쉽게 차단되고, 드론이 하늘을 지배하며, 전자전이 핵심적인 역할을 하는 그런 모습 말이야. 클래식한 RTS 느낌을 유지하면서 이 모든 걸 하나로 합치는 게 목표였지.
다들 한 번씩 해봤으면 좋겠다.
게임은 완전히 무료야. 혹시라도 게임이 잘 돼서 서버 운영비 좀 보태주고 싶은 사람들을 위해 유료 버전만 따로 만들어뒀어.
다들 즐겜해!
---
Frontline Zero는 내가 직접 만든 TypeScript 기반 RTS 엔진인 webrts로 돌아가. 시뮬레이션은 완벽하게 결정론적이야. 정수 연산, 단일 시드 RNG, 초당 25틱으로 작동하고 모든 행동은 '명령(order)'으로 처리돼. 어떤 기기에서든 같은 명령을 넣으면 똑같은 전투 결과가 나오지.
넷코드는 락스텝(lockstep) 방식이야. 플레이어들은 명령만 보내고, Cloudflare Durable Object가 이걸 턴 단위로 묶어서 상태 해시를 비교해 동기화 오류(desync)를 잡아내. 리플레이는 그냥 명령 로그 그 자체고. 그래픽은 3D 모델을 32각도 등각 투영 스프라이트로 복셀화해서 Canvas 2D나 WebGL 2로 그려냈어.
코드랑 아트워크 대부분은 Opus 5.5를 써서 만들었고, 네트워크 코드에는 잠깐 Fable 5.1을 썼어.
Opus 5.5가 그래픽 에셋 파이프라인(3D 모델 -> 복셀 -> 스프라이트)을 이해하고 있어서 일관된 아트워크를 뽑아내는 데 아주 큰 도움이 됐지.


