7P by GN⁺ 23시간전 | ★ favorite | 댓글 2개
  • 20년차 소프트웨어 개발자지만, 게임 개발은 처음으로 AI 코딩 에이전트를 활용해 Phaser.js 기반 타워 디펜스 게임 "Tower of Time" 을 완성
  • AI의 실제 게임 개발 가능성을 실험하는 것이 목표였으며, 코드와 모든 AI 프롬프트 및 작업 과정을 GitHub에 문서화
  • 코드의 95% 이상이 AI에 의해 작성되었으며, Augment Code, Cursor, Claude Sonnet 4 등 다양한 AI 툴을 연계해 사용함
  • 게임은 시간 되감기(리와인드) 기능을 활용한 전략성과 다양한 타워, 에너지 관리 시스템, 웨이브별 적 등장 등 독특한 재미를 제공
  • 실시간 스트리밍, 아트 및 사운드 에셋 활용, 개발 과정에서 얻은 교훈과 실전 팁 등 게임/AI 초보자 모두에게 학습 자료로 유용함

Tower of Time 개요

  • 본 프로젝트는 AI 코딩 도구로 실질적인 게임 개발이 가능한지 실험하는 것을 목표로 진행
  • Phaser.js라는 Javascript 게임 엔진을 처음 익혀서 Beginner's Jam Summer 2025에 참가, 25~30시간 동안 'Tower of Time'을 완성함
  • 개발 전 과정과 모든 프롬프트, 코드, 문서, 플레이 링크를 GitHub에 기록

게임 소개

  • Tower of Time시간 여행 테마의 타워 디펜스 게임으로, 플레이어가 웨이브 형태로 몰려오는 적을 막아내며, 위기 상황에서 시간을 되감아 전략을 재설계할 수 있음
  • 여러 종류의 타워(기본, 스나이퍼, 슬로우다운, 스플래시 등)와 에너지 시스템(타워 건설·시간 되감기에 사용)이 결합되어 있음
  • 주요 특징
    • 시간 되감기: 불리한 순간, 이전 상태로 되돌아가서 방어 전략 재정비 가능
    • 다양한 타워: 각기 다른 특성의 타워 배치로 다양한 방어 전략 수립 가능
    • 에너지 관리: 에너지 사용처를 신중히 고민해야 하는 자원 운용 요소
  • 조작 방법
    • 키보드/게임패드 지원 (이동: 방향키/스틱, 액션: 스페이스/게임패드 버튼, 되감기: 백스페이스/트리거)

AI 코딩 실험 및 개발 과정

  • 전체 코드의 약 95%를 AI(Claude Sonnet 4, OpenAI, Augment Code, Cursor 등)로 작성
  • 모든 주요 프롬프트, 시행착오, 최종 결과물을 저장소에 PROMPTS.md로 기록
  • AI 코드 자동생성의 장점: 빠른 프로토타이핑, 반복적인 코드 작업의 자동화, 문서화 용이성
  • 한계와 주의점: AI가 코드를 과하게 생성하는 경향, 특정 구현 이슈 발생 시 프롬프트 재설계·롤백 필요, 디버깅 로그 활용 권장

개발에서 얻은 교훈

  • AI 코딩만으로도 재미있는 게임 완성이 충분히 가능
  • 프롬프트 품질, 명확한 맥락 제공, 디버깅 전략이 매우 중요
  • 코드 양을 불필요하게 늘리지 않도록 지속적으로 점검 필요

기술 스택

  • 엔진: Phaser 3 (v3.90.0) + Phaser Editor v4
  • 언어: TypeScript
  • 빌드 도구: Vite
  • 아트 에셋: itch.io, 일부 직접 보정
  • 사운드: freesound.org

브라우저에서 플레이 해보기 : Tower of Time

저도 열심히 ai를 부려서 웹게임을 만들고 있죠.

Hacker News 의견
  • 개발에 사용된 프롬프트 를 하나하나 읽어보는 재미가 쏠쏠함
    "vibe coding 성공 사례"에 관한 글들은, 마치 다수의 에이전트와 복잡한 코드 오케스트레이션, LLM으로 생성된 룰만 갖추면 “시간을 되감는 타워 디펜스 게임을 만들고 결함도 버그도 없게”라는 프롬프트 한 줄로 게임이 뚝딱 만들어진다는 식의 환상을 주는 경우가 많음
    하지만, 실제 프로젝트에 사용된 프롬프트들은 AI 코딩에 가장 잘 먹히는 방식과 일치함
    명확하고 꼼꼼한 아이디어를 수백 개의 작은 문제로 쪼개고, 정말 중요한 부분에는 구체적인 아키텍처적 가이드를 주는 방식이 효과적임

    • 기술 리드와 프로덕트 오너 역할을 병행하는 입장에서, 이 방식이 인간과 일할 때도 정석임
      내 일의 70%는 임원의 “타임 트래블 타워 게임, 버그 없이”라는 추상적 요구를, 팀이 높은 추상화를 유지하면서 서로 겹치지 않게 작업할 수 있도록, 강력한 아키텍처 비전이 맥락에 담긴 일련의 프롬프트로 바꾸는 일임

    • 간단한 Just One 보드게임용 HTML 게임 만들기에 도전했는데, 입력창이 움직이는 버그를 네 개의 LLM에 계속 프롬프트 줘도 못 잡음
      다들 게임을 한 번에 구현한다는데 나는 텍스트박스 움직임조차 못 고치는 상황이라 신기함

    • “보안 결함 없음, 버그 없음” 프롬프트에 이어 “환각(hallucination) 없음”도 꼭 필요함
      AI 초보용 기본 조건임

    • AI 코딩에서 잘 통하는 내 방식은, 기본 기능이나 게임플레이 뼈대를 AI로 ‘원샷’으로 만든 뒤, 그 위에 여러 번 반복적으로 쌓아가는 것임
      원샷 결과가 바로 인상적이지 않으면, 바로 다른 프롬프트로 보완해서 괜찮은 결과가 나올 때까지 재시도해 기반을 마련함

    • 이런 방식에 전적으로 동의함
      실제로 내 최근 포스트도 이 개념에 기반함
      코딩 전 AI로 스펙을 먼저 쓰게 하면, 사람이 처음부터 스펙을 쓰는 부담이 줄어 실제로 작성할 확률이 훨씬 올라감

  • 20년 이상 소프트웨어 업계에 있으면서, 우리 동료들 대부분은 AI 코딩에 회의적인 사람이 많다는 점을 느낌
    최근엔 34,000줄 정도 되는 큰 앱을 AI로 주로 개발해봤는데, 이때 효율은 내가 주는 지시의 질, 상호작용 구조, 출력 결과에 신경 쓰는 정도(코스 보정 포함)에 따라 기하급수적으로 올라감
    “결국 다른 모든 도구와 똑같음!”이라는 생각이 들 정도
    그런데 이 도구는 지금까지 만난 어떤 “10x 도구”와 비교해도 진짜 10배 더 레버리지가 큼
    대부분의 회의론자가 놓치는 부분은, 이런 툴들을 완전히 외부적인 존재로 취급하면 안 된다는 점임
    목표를 불분명하게 설명하고 일임하려 하면 낭패를 보게 됨
    언젠가 AI가 우리의 생각을 바로 읽을 날도 오겠지만 지금은 아님
    현재로는 생각을 명확히 정리하고, 새로운 것을 배우고, 귀찮은 부분을 빠르게 처리하는 데서 진가를 발휘함
    최대 레버리지를 위해서는 이 도구를 내 사고 과정 안에 잘 녹여야 함

    • 프로그래밍 경력은 길지만 게임은 고등학교 때 Hunt the Wumpus밖에 해본 적 없다가, 최근 AI의 도움으로 새 게임을 만들기 시작함
      AI는 크게 세 가지 역할을 함
      (1) 학습 도구 - 내가 용어를 몰라도 질문 의도를 잘 파악해서 시작점을 잡아주고, ‘내가 몰랐던 사실’까지 알려주기에 제일 중요한 역할임
      (2) 반복적이거나 지루한 일 처리 - 코드 주석, 설정 파일 작성 등은 내가 할 수도 있지만 속도를 늦추는 일들을 무난하게 처리함
      (3) 검색 - (1)번처럼 실제로 내가 원하는 게 뭔지 AI가 파악해 필터링이나 추천 등을 맡김
      AI에게 “생각”을 맡길 수도 있지만 그럴 필요는 없음
      인간보다 똑똑하지 않고 단지 더 빠르고 더 많은 걸 아는 FPU 같은 존재임

    • HN 기준으로는 꽤 회의적인 편이지만, 실제로는 회사에서 AI 도입을 계속 밀어붙이고 있고 지금도 Claude에게 뭔가를 시키면서 이 글을 쓰고 있음
      회의론의 이유는 현재 AI 솔루션이 “팔리고 있는 모습”과 “실제 하는 일” 사이의 간극 때문임
      모든 AI 솔루션, 특히 에이전트는 숙련된 사람의 가이드 없이는 쓸모 없는 결과만 냄
      실제로 “자율적”인 요소는 거의 없음
      ‘vibe coding’이라는 용어를 만든 사람조차, 업계가 순서를 거꾸로 밟고 있다고 얘기함
      이런 툴이 환상적이긴 하지만 반드시 강하게 통제해야 한다는 점을 빼놓는 건 사실상 거짓말임

    • 최근 몇 달간 내 생각 역시 비슷한 결론에 도달함
      예전에는 AI에 대해 비판적인 코멘트를 남겼지만, 최신 도구들은 확실히 많이 발전함
      예전에는 몇 주씩 걸리던 일을 이젠 몇 시간 만에 뚝딱할 수 있음
      단, 프롬프트를 잘 생각해서 세세하게 쪼개야 하고 IDE와도 잘 연동해야 함
      가장 혁신적인 부분은 완전히 새로운 라이브러리나 프레임워크를 다룰 때임
      예전엔 사용법을 검색해서 예제 코드를 뜯어고치곤 했는데, AI가 훨씬 더 직관적이고 다양한 방법을 알려줘 종종 놀라는 경우가 많음
      아직 회의적인 사람도 한 번 다시 써볼 시기임

    • 10x 레버리지에 대한 예시로, 언어를 들 수 있음
      예전에는 Lisp 등이 더 많은 일을 더 빠르게 해준다고 했는데, 이제는 실제로 작성해야 할 코드는 줄이면서도 결과물은 빠르고 고성능 언어로 생성할 수 있음
      단, 생성된 코드 중 쉽게 검증되지 않는 부분을 충분히 검토해야 한다는 ‘덫’이 있음
      고도 표현력을 가진 언어 덕분에 사전 플랜 없는 사람들이 난장판 코드베이스를 양산하기도 했던 것처럼, AI 도구로도 이런 일이 반복될 항목
      하지만 내가 진짜 시간 절약하는 부분은, 완전히 새 코드를 짜는 것보다 옛 코드와 신 코드를 통합하거나 개선할 때임
      디버깅에서 큰 도약이 일어남
      예전처럼 print만 찍지 않고, 코드를 복사해 붙여넣기만 해도 “출력이 이렇지 않고 저렇다는 데 왜 그렇냐?”고 AI에게 물어 빠르게 원인과 대안을 얻을 수 있음
      특히 SQL, IaC, 빌드 스크립트 등 디버거 붙이기 어려운 작업에서 이런 방식이 엄청나게 큰 장점임

    • 또 하나, 학습 곡선과 난이도 상한이 생각보다 훨씬 높음
      Claude Opus를 복잡한 자동화 프레임워크로 쓸 때와, 브라우저에서 GPT-4o에 복사/붙여넣기만 하는 경우 결과 차이가 큼

  • 개발 과정을 투명하게 공개하고 프롬프트까지 공유한 점이 멋져서 GitHub에서 star 표시함

  • 코드와 결과물 모두 아름답게 느껴짐
    분명 AI만 쓴 게 아니라 직접 참여한 부분도 많았을 것임
    나는 코딩을 오래 쉬었다가, 친구들의 권유로 AI를 활용한 간단한 코드를 만들어봄
    완성한 건 Bubble Wrap 터트리기와 소음기(버튼 누르면 사운드 없음) 정도임
    Bubble Popper
    Silencer

    • 안드로이드의 크롬에서 실행했는데, 버블이 제대로 터지지 않고 카운트도 0에서 안 오름
      PR 받을 계획이 있는지 궁금함
  • 인디게임이야말로 코딩 AI의 훌륭한 사용 사례로 보임
    적은 위험성과 재미 위주의 성격이 딱 맞음
    첫 커밋에는 코드가 대량 포함되어 있으나, PROMPTS.md는 아직 없음
    예를 들어 EnergySystem.ts가 첫 커밋에서 이미 존재하는데, 뒤늦게 PROMPTS.md에선 AI가 처음부터 만든 것처럼 보임
    레포지토리 히스토리에서 이 부분을 더 자세히 설명해줄 수 있는지 궁금함
    첫 커밋 링크

    • 이번 프로젝트가 게임잼 출품작이라 1주일 마감에 맞춰 처음 2~3일은 소스컨트롤을 쓰지 않아 그 기간 작업을 한 번에 큰 커밋으로 남기게 되었음
      프롬프트도 바로바로 적지 않고 게임 완성 후 사용했던 채팅 도구 이력을 뒤져 PROMPTS.md 파일에 복사함
      프로젝트 생성 과정을 보고 싶으면 프롬프트 파일을 처음부터 끝까지 읽는 게 가장 좋은 방법임
      예를 들어 EnergySystem.ts 파일은 적 경로 찾기, 생성, 타워 사격 등 구현이 끝나고 “에너지 서브시스템을 구현하고 싶다”는 프롬프트로 AI가 완전히 새로 만든 부분임
  • Augment Code란 도구는 처음 들어봄
    무슨 일을 하고 왜 골랐는지, 경쟁 도구와 차이점이나 실제 사용 경험 등 추천하는지도 궁금함

    • 이 질문에 더해서, OP가 Cursor에서 Augment Code를 썼는지, 이 조합이 어떻게 동작하며 어떤 이점이 있는지도 듣고 싶음
      둘 다 유료로 결제했는지 궁금함
  • 프롬프트를 기록한 점이 인상적이고 동기 부여가 됨
    내 경험상 ‘vibe coding’은 빠르게 진도가 나가기도, 한없이 느려지기도 함
    간결하고 명확한 지시, 빠른 코드 리뷰, 아키텍처 파악 능력이 있다면 진짜 개발 속도를 올릴 수 있음

  • 나도 한때 타워 디펜스 게임을 만들었고, 최근 AI를 활용해 새 웨이브 생성이나 밸런스 튜닝까지 적용해볼 생각이 있었음
    게임을 AI가 ‘체감’할 수 있게 하려면, 화면에 보이는 게임 상태를 토큰으로 바꿔 인코딩하는 프로토콜이 필요하지 않을까 생각됨
    지형과 게임 엔티티 위치, 그 외 플레이어가 볼 수 있는 속성 등
    전체를 오토인코더에 넣는 건 별로겠지만, 게임 요소별 리스트 토큰화라면 가능성 있음
    게임 엔진에서 화면 이미지를 제공하고, 토큰을 AI에 직접 풀어주면 AI는 실제 게임 진행 상황을 더 깊게 이해할 수 있음
    이러한 토큰을 제대로 활용하려면 어느 정도 학습셋이 필요할지 확실치 않지만, 현재 임베딩 공간으로도 몇 개 토큰 안에 표현이 가능할지도 모름
    게임 로그와 사용자 재미 평가를 모은 훈련셋만 있다면 흥미로운 데이터도 많이 나올 듯
    플레이어 취향 클러스터를 찾아 다양한 유형별 게임을 만드는 것도 가능해질 것임

  • 이런 워크플로우 공유해줘서 고마움
    나도 LLM 활용 워크플로에 추적성과 투명성 도입을 고민하고 있음
    프롬프트를 공유·이력으로 남기면 개발자가 처음 풀고자 했던 본질적 문제, 그리고 그게 어떻게 변화하고 새로운 이슈가 생겨났는지까지 한눈에 볼 수 있는 장점이 큼
    쿨한 프로젝트임
    책임감 있는 LLM 활용 관련 포스트

  • 20년 넘게 테크 쪽에 있으면서, 최근 Gemini-cli로 엔터프라이즈 앱 통합테스트 도구를 게임화하며 다양한 실험 중임
    MCP 서버와 조합해 보니, 문제를 단계별로 쪼개고 프롬프트에 명확함을 더해줄 때 가장 좋은 결과가 나옴
    AI가 실수하거나 루프에 빠질 수도 있는데(특히 앱 라우팅 같은 곳에서) 이럴 때 적극적으로 ‘페어 프로그래밍’하는 자세로 접근하는 게 유익함
    또 한 가지 주목한 점은 코드 중복 금지 같은 원칙을 이전보다 훨씬 쉽게 지킬 수 있다는 것임
    아니면 AI가 어느 한 부분만 바꾸고, 연관 파일은 놓치는 상황이 나오기 쉬움
    프로그래밍 로직뿐 아니라 UX, 앱 동작에도 똑같이 적용되는 진리임
    AI와 함께라면 예전엔 몇 주 씩 걸릴 작업도 이제는 몇 시간 만에 즐겁게 끝낼 수 있음
    Gemini에 개성을 부여하고, GEMINI.md 파일을 여러 기기에서 그대로 가져다 튜닝할 수 있다는 점이 아주 큰 장점임