AI/godot

고도엔진으로 AI 사용하여 게임만들기

blacknabis 2026. 3. 8. 01:06
반응형

AI와 고도 엔진(Godot)으로 만드는 하드코어 2D 플랫포머 제작기

안녕하세요! 오늘은 AI 개발 에이전트와 Godot 4.6 Engine을 활용하여 스팀의 인기 게임인 '스마일모(Smilemo)' 느낌이 나는 2D 하드코어 런 게임을 어떻게 기획하고 구현했는지 공유해 보려고 합니다.

혼자서 모든 것을 코딩하는 대신, AI 에이전트와 역할을 나누어 "파이프라인 오케스트레이션(Pipeline Orchestration)" 이라는 방식으로 병렬 개발을 진행해 본 아주 흥미로운 경험이었습니다.


1. 프로젝트 기획 (PRD 작성)

가장 먼저 한 일은 AI와 함께 개발 기획서(PRD)를 작성하는 것이었습니다. 게임의 목표와 방향성을 명확히 해야 AI 에이전트가 코드를 짤 때 방황하지 않기 때문입니다.

핵심 메커니즘 도출

기존 플랫포머 게임과 이 게임의 가장 큰 차이점은 체력(HP) 시스템의 부재바운스 기믹입니다.

  • HP 없음: 적(바이러스)에 닿으면 죽거나 체력이 다는 것이 아니라, 닿은 반대 방향으로 강력하게 튕겨납니다.
  • 연쇄 바운스: 잘못 튕기면 구덩이에 빠지거나, 다른 바이러스에 연속으로 부딪혀서 스테이지 맨 처음('태초마을')으로 날아갈 우려가 있습니다.
  • 조작 타격감 보강: Z키(보유 시 달리기), 벽타기(Wall Slide/Jump), 그리고 슬라이딩 기능을 넣어 극한의 피지컬 컨트롤 요소가 필요하게 설계했습니다.
  • 수집 요소: 스테이지에 흩어진 '백신 캡슐'을 100% 모두 수집해야만 다음 스테이지로 가는 골(Goal)이 열립니다.

우리는 이 내용을 prd.md 파일에 정리하고, 지속적으로 업데이트하며 개발의 나침반으로 사용했습니다.


2. 개발 프레임워크: 파이프라인 오케스트레이션

제가 지시자를 내리면, AI 에이전트는 작업을 한 번에 순차적으로 처리하는 대신 병렬 파이프라인(Parallel Pipelines) 으로 쪼개서 작업을 기획하고 쳐냈습니다.

예를 들어, 에이전트가 코드를 짤 때:

  • Pipeline A: 물리 엔진 및 캐릭터 조작(player.gd 수정)
  • Pipeline B: 스테이지 기믹 및 렌더링 세팅(scenes/level.tscn 구성)
  • Pipeline C: 개발 일지 갱신(devlog.md, task.md 현행화)

이렇게 오케스트레이션 방식을 요청하자, 에이전트가 로직 구현과 문서화를 동시에 진행하면서 놀라울 정도로 빠르고 체계적으로 아키텍처를 잡고 기능을 구현해주었습니다.


3. 고도 엔진(Godot Engine)에서의 구현 포인트

1) CharacterBody2D를 활용한 커스텀 물리 엔진

고도의 내장된 물리 노드들을 단순히 쓰는 것을 넘어 지상/공중 쿨다운, 가변 점프 높이, 벽 반동 계산 등을 스크립트로 직접 통제했습니다.

# 벽 반동(Wall Jump) 처리 예시
if is_on_wall() and Input.is_action_just_pressed("jump"):
    velocity.y = WALL_JUMP_FORCE_Y
    velocity.x = wall_direction * WALL_JUMP_FORCE_X

2) 타격감 피드백 (게임 필)

바이러스에 맞아 튕겨 나갈 때의 불쾌함을 줄이고 시각적 만족감을 주기 위해 다음 기능들을 조합했습니다.

  1. 역경직 (Hit Pause): Engine.time_scale을 아주 잠깐 0.1로 낮추어 슬로모션 효과 유발.
  2. 카메라 셰이크 (Camera Shake): 카메라 스크립트에 decay 함수를 적용해 튕겨나가는 순간 화면을 진동시킴.
  3. 파티클 (CPUParticles2D): 충돌 지점에서 파편이 튀는 시각 효과 발동.

3) 에셋 자동 생성과 통합 (AI Image Generation)

가개발 단계에서는 단순히 Gothi의 기본 도형인 폴리곤(Polygon2D) 노드로 네모낳게 만들어서 테스트했습니다. 하지만 어느 정도 플레이가 쾌적해진 후, 에이전트에게 "직접 API를 호출해 스프라이트 리소스를 그려서 적용해줘" 라고 요청했습니다.
AI가 플레이어(😃), 바이러스(😈), 아이템 캡슐(💊) 도트 그래픽을 생성해서 스스로 Godot 프로젝트 assets 폴더에 넣고 .tscn 파일 코드를 Sprite2D로 치환까지 전부 해냈습니다!


4. AI 페어 프로그래밍 개발 소감

가장 크게 느낀 점은 "개발 일지(devlog.md)와 태스크 리스트(task.md)의 위력" 입니다.
보통 개인 프로젝트 수준에서는 문서화를 귀찮아서 잘 안 하게 되는데, AI가 코딩을 하면서 동시에 마크다운 문서를 업데이트하게 하니 다음과 같은 장점이 있었습니다.

  • 맥락 유지: 채팅 컨텍스트가 길어져서 AI가 깜빡하더라도, prd.mdtask.md를 다시 열어보게 하면 즉시 원래의 핵심 기획 의도로 돌아옵니다.
  • 빠른 디버깅: 어디서 무얼 고치다가 오류가 났는지 서로 트래킹하기가 굉장히 쉬웠습니다.
  • 오케스트레이션 효율: 어떤 모듈 구조에 어떤 기능이 담당되어 있는지 텍스트 문서로 정리되어 있으니, A모듈 작업과 B기능 수정을 병렬로 완전히 분리해서 요청하기 좋았습니다.

플레이화면 아직 이미지는 제대로 처리되지 않는다.

 

후기.

유니티로 개발하는것보다 하이퍼캐주얼쪽으로는 AI친화적이라 개발 속도 및 아웃풋이 생각보다 굉장히 좋네요. 고도엔진의 스크립트를 아직 보지 않았기 때문에 100% 바이브코딩으로 진행하였습니다.

반응형

'AI > godot' 카테고리의 다른 글

Godot엔진으로 Lucky7Quest 만들기(codex,antigravity,claude code)  (0) 2026.03.11