본문 바로가기
프로그램 (PHP,Python)

로블록스 게임 "김치 타워 디펜스" - AI 개발 프로젝트 완벽 가이드

by 날으는물고기 2025. 9. 29.

로블록스 게임 "김치 타워 디펜스" - AI 개발 프로젝트 완벽 가이드

728x90

프로젝트 개요

게임 소개

제작자: 훈이겜터 (유튜브 크리에이터 @hun2game)
플랫폼: 로블록스 (Roblox)
장르: 한국형 타워 디펜스
특징: AI 코딩으로 95% 개발된 한국 전통 음식 테마 게임
개발기간: 3주 (2025년 6월-7월)

 

초등 유튜버의 유튜브 & 블로그 제작 히스토리 (훈이놀이터)

우리 첫째 아들 훈이놀이터는 3~4살때부터 집에서 그림 그리기와 클레이 만들기를 아주 많이 하고 또래보다 훨씬 잘 했다. 자동차, 공룡을 특히나 많이 그리고 만들었다. 소질이 있어보여 6살에

try.pages.kr

게임 콘셉트

핵심 메커니즘:
• 김치, 깍두기, 파김치 등 한국 전통 음식 타워로 적 방어
• 발효 시스템: 시간이 지날수록 타워가 강해짐 (신김치→적당히 익은 김치→묵은지)
• 김장 보너스: 특정 타워 조합으로 추가 효과 발생
• 매운맛 등급: 안매움 → 살짝매움 → 매움 → 지옥매움 → 신급매움
• 한국 전통 마을 배경과 구불구불한 돌담길 경로
 

[NEW]김치 타워 디펜스

🇰🇷 김치 타워 디펜스 (Kimchi Tower Defense) 🌶️ 귀여운 김치들이 세계를 지키기 위해 나섰다! 전략적으로 김치 타워를 배치하고 몰려오는 적들을 막아내세요! 그룹에 가입하여 보상을 받으세요

www.roblox.com

1. 핵심 게임 시스템

1.1 타워 시스템

김치 등급별 타워 종류

-- 타워 등급 시스템
local TowerRarities = {
    안매움 = {color = Color3.fromRGB(255, 200, 200), damage = 10, cost = 100},
    살짝매움 = {color = Color3.fromRGB(255, 150, 150), damage = 25, cost = 250},
    매움 = {color = Color3.fromRGB(255, 100, 100), damage = 50, cost = 500},
    지옥매움 = {color = Color3.fromRGB(200, 50, 50), damage = 100, cost = 1000},
    신급매움 = {color = Color3.fromRGB(150, 0, 0), damage = 200, cost = 2000}
}

발효 시스템 (혁신적 메커니즘)

  • 신김치 (0-30초): 기본 성능
  • 적당히 익은 김치 (30-90초): 데미지 +20%, 범위 +10%
  • 묵은지 (90초+): 데미지 +50%, 범위 +20%, 슬로우 효과 추가

김장 보너스 콤보

  1. 김장 기본 세트: 배추김치+깍두기+파김치 = 공격속도 +30%
  2. 매운맛 폭탄: 고추장 타워 3개+ = 스플래시 데미지 +50%
  3. 발효 마스터: 묵은지 3개+ = 전체 발효 속도 2배
  4. 전통의 맛: 된장+고추장+간장 = 처치시 추가 김치포인트
  5. 김치 냉장고: 모든 종류 1개씩 = 발효 단계 유지

1.2 로비 및 유닛 시스템

뽑기 시스템

-- 등급별 확률 (행운 게임패스 보유시 희귀 등급 2배)
local SummonRates = {
    안매움 = 60,      -- 60%
    살짝매움 = 25,    -- 25%
    매움 = 10,        -- 10%
    지옥매움 = 4,     -- 4%
    신급매움 = 1      -- 1% (행운 게임패스시 2%)
}

장착 시스템

  • 최대 5개 유닛까지 장착 가능
  • 360도 자동 회전 디스플레이
  • 드래그 앤 드롭으로 유닛 배치/해제
  • 실시간 유닛 프리뷰

1.3 경제 시스템

코인 및 게임패스

  • 코인 획득: 적 처치, 웨이브 완료, 코드 입력
  • 럭키 게임패스: 뽑기 확률 2배, 코인 보상 1.5배
  • 개발자 상품: 코인 직접 구매 가능
  • 자동판매: 등급별 중복 유닛 자동 처리

2. AI 활용 개발 프로세스

2.1 개발 환경 구성

AI 도구 스택:
• Claude Opus 4: 복잡한 시스템 설계 및 아키텍처
• Claude Sonnet 4: 실시간 디버깅 및 문제 해결
• Cursor: 코드 작성 보조 및 자동완성
• GitHub: 프롬프트와 코드 버전 관리

2.2 체계적인 프롬프트 작성법

초기 프로토타입 프롬프트 예시

훈이겜터 프롬프트 #1:
"로블록스에서 '김치 타워 디펜스' 게임의 기본 구조를 만들어줘.

요구사항:
1. 한국 전통 마을 배경의 맵 시스템
2. 적들이 따라갈 구불구불한 돌담길 경로 (MAP 폴더 내 1~11 순차 이동)
3. 타워 설치 가능한 논/밭 그리드 시스템
4. 김치 항아리 모양의 기본 타워 (ReplicatedStorage/Units 구조)
5. UI: 김치포인트(화폐), 한옥 체력, 웨이브 정보

기술 요구사항:
- ServerScriptService 메인 게임 로직
- RemoteEvent 보안 검증 포함
- 메모리 효율적인 오브젝트 풀링
- 익스플로잇 방지 코드 적용"

반복 개선 프롬프트 패턴

단계별 개선 패턴:
1단계 → 기본 기능 구현 요청
2단계 → 버그 발견 및 수정 요청  
3단계 → 성능 최적화 요청
4단계 → UI/UX 개선 요청
5단계 → 밸런싱 조정 요청

2.3 실제 개발 사례: 발효 시스템

문제 정의 프롬프트

발효 시스템 구현 요청:
"김치가 시간이 지나면서 익어가는 발효 시스템을 만들어줘.

상세 요구사항:
1. 모든 김치 타워는 시간에 따라 '발효 레벨' 상승
2. 발효 단계: 신김치(0-30초) → 적당히 익은 김치(30-90초) → 묵은지(90초+)
3. 발효 레벨별 효과:
   - 데미지 증가: 레벨당 +20%
   - 공격 범위: 레벨당 +10% 
   - 묵은지 특수효과: 적 슬로우 추가
4. 시각적 표현: 타워 색상이 점점 진해짐
5. UI에 발효 진행도 표시 바

기존 코드와 호환되게 모듈화해서 구현"

AI 생성 결과

-- ReplicatedStorage/Modules/FermentationSystem.lua
local FermentationSystem = {}

FermentationSystem.Stages = {
    {name = "신김치", duration = 30, damageMultiplier = 1.0, rangeMultiplier = 1.0},
    {name = "적당히익은김치", duration = 60, damageMultiplier = 1.2, rangeMultiplier = 1.1},  
    {name = "묵은지", duration = math.huge, damageMultiplier = 1.5, rangeMultiplier = 1.2}
}

function FermentationSystem:Initialize(tower)
    tower.FermentationData = {
        startTime = tick(),
        currentStage = 1,
        level = 0
    }

    -- 발효 진행 코루틴
    coroutine.wrap(function()
        while tower.Parent do
            self:UpdateFermentation(tower)
            wait(1)
        end
    end)()
end

3. 기술적 구현 세부사항

3.1 프로젝트 구조

로블록스 스튜디오 구조:
ServerScriptService/
├── GameManager.lua          # 메인 게임 로직
├── TowerSystem.lua          # 타워 관리
├── WaveManager.lua          # 웨이브 시스템
├── EconomySystem.lua        # 경제/코인 관리
└── ComboSystem.lua          # 김장 보너스

ReplicatedStorage/
├── Remotes/                 # RemoteEvent들
├── Modules/
│   ├── FermentationSystem.lua
│   ├── TargetingSystem.lua
│   └── EffectsSystem.lua
└── Units/                   # 유닛 모델들
    ├── 안매움/
    ├── 살짝매움/
    ├── 매움/
    ├── 지옥매움/
    └── 신급매움/

StarterPlayer/StarterPlayerScripts/
├── UIManager.lua            # 메인 UI 관리
├── LobbyUI.lua             # 로비 시스템
├── GachaUI.lua             # 뽑기 시스템
└── EffectsClient.lua       # 클라이언트 이펙트

3.2 핵심 코드 예시

타워 설치 시스템 (보안 강화)

local placementCooldowns = {}
local COOLDOWN_TIME = 0.5

function GameManager:PlaceTower(player, position, towerType)
    local userId = player.UserId

    -- 쿨다운 및 스패밍 방지
    if placementCooldowns[userId] and 
       tick() - placementCooldowns[userId] < COOLDOWN_TIME then
        return false, "너무 빠른 설치 시도"
    end

    -- 원자적 연산으로 포인트 처리
    local cost = self:GetTowerCost(towerType)
    local currentPoints = self.State.kimchiPoints

    if currentPoints >= cost then
        self.State.kimchiPoints = currentPoints - cost
        placementCooldowns[userId] = tick()

        local tower = self:CreateTower(position, towerType)
        table.insert(self.State.towers, tower)
        return true
    end

    return false, "김치포인트 부족"
end

공격 애니메이션 시스템

-- 달빛 김치 공격 이펙트 (몽환적 파란/보라색)
elseif towerName == "루나 블루" then
    -- 음향 효과
    createSound("rbxassetid://122283352809655", workspace, 0.4, 0.8)

    -- 화면 블러 & 색상 보정
    local blur = Instance.new("BlurEffect")
    local colorCorrection = Instance.new("ColorCorrectionEffect")

    -- 달빛 분위기 연출
    local blurTween = TweenService:Create(blur, 
        TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut),
        {Size = 15}
    )

    local moonlightTween = TweenService:Create(colorCorrection,
        TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.Out),
        {
            Brightness = 0.15,
            Contrast = 0.2, 
            Saturation = -0.3,
            TintColor = Color3.fromRGB(200, 200, 255) -- 은은한 파란 빛
        }
    )

4. 밸런싱 및 게임플레이

4.1 난이도 시스템

local DifficultyModes = {
    쉬움 = {waves = 15, enemyMultiplier = 1.0, rewardMultiplier = 1.0},
    보통 = {waves = 25, enemyMultiplier = 1.5, rewardMultiplier = 1.2}, 
    어려움 = {waves = 40, enemyMultiplier = 2.0, rewardMultiplier = 1.5},
    지옥 = {waves = 60, enemyMultiplier = 3.0, rewardMultiplier = 2.0}
}

4.2 웨이브 관리

  • 웨이브 스킵: 모든 적 스폰 완료시 가능
  • 오토 스킵: 토글 버튼으로 자동 진행
  • 보스 웨이브: 5의 배수마다 "김치 도둑" 보스 등장

4.3 타겟팅 시스템

-- 타겟팅 옵션
local TargetingModes = {
    맨앞 = "First",      -- 기본값
    맨뒤 = "Last", 
    강한적 = "Strong",
    약한적 = "Weak",
    가장가까운 = "Close"
}

5. 문서화 및 컨텐츠 제작

5.1 개발 과정 문서화

프롬프트 기록 시스템

# PROMPTS.md 템플릿

## [기능명] - 날짜

### 목표
구체적인 구현 목표

### 사용한 프롬프트
전체 프롬프트 내용

### AI 응답 핵심
- 주요 제안사항
- 생성된 코드 구조

### 결과
- ✅ 성공사항
- ⚠️ 수정사항  
- 📝 배운점

### 관련 커밋
Git 커밋 해시와 설명

### 유튜브 연관성
해당 영상의 타임스탬프

개발 일지 작성

# Day N - 날짜

### 🎯 오늘의 목표
- [x] 완료된 작업
- [ ] 미완료 작업

### 💡 주요 개발 내용
구체적인 구현 과정과 의사결정

### 🐛 버그 및 해결
발견한 문제와 해결 과정

### 📹 유튜브 촬영 내용  
촬영한 장면과 편집 포인트

### 🤔 내일 계획
다음 작업 우선순위

5.2 유튜브 컨텐츠 구성

영상 시리즈 구성

  1. #1 기획편: "AI로 로블록스 게임 만들기 도전!"
  2. #2-4 개발편: 핵심 시스템 구현 과정
  3. #5-6 고급편: 발효 시스템, 김장 보너스
  4. #7 완성편: 최종 테스트 및 출시

영상별 핵심 내용

영상 #3: "김치가 익어간다고? 발효 시스템 구현"
- 타임스탬프 15:30~22:45: 발효 시스템 프롬프트 작성
- 22:45~28:10: AI 코드 검토 및 수정
- 28:10~35:20: 테스트 및 밸런싱
- 35:20~40:00: 시각적 효과 추가

6. 완성된 게임 특징

6.1 플레이어 경험

  1. 로비 입장: 김치 테마의 따뜻한 UI, 유닛 360도 회전 디스플레이
  2. 뽑기 시스템: 화려한 애니메이션과 김치 이펙트
  3. 게임 시작: 한국 전통 마을 배경, 돌담길 경로
  4. 타워 디펜스: 김치 타워 설치, 발효 시스템 체험
  5. 콤보 시스템: 김장 보너스로 전략적 타워 배치
  6. 보상 시스템: 웨이브 클리어시 김치포인트 획득

6.2 한국적 요소 구현

  • 비주얼: 김치 항아리, 한옥 배경, 전통 색상 팔레트
  • 사운드: 김치 담그는 소리, 한국 전통 음악
  • 용어: 신김치, 묵은지, 김장, 매운맛 등급
  • 문화: 발효 과정, 김치의 시간에 따른 변화 표현

6.3 AI 개발의 성과

  • 전체 코드의 95%가 AI 생성: 인간은 기획과 디렉팅만
  • 3주 만에 완성: 기존 개발 속도의 5-10배 향상
  • 버그율 현저히 낮음: AI의 체계적 코드 구조
  • 문서화 품질 우수: 모든 과정이 프롬프트로 기록됨
300x250

7. AI 게임 개발 노하우

7.1 효과적인 프롬프트 작성법

1단계: 컨텍스트 설정

"로블록스 게임 [게임명]을 개발 중이야.
현재 [현재 상황] 상태이고,
[구체적 목표]를 구현하려고 해."

2단계: 구체적 요구사항

요구사항:
1. 기능적 요구사항 (무엇을)
2. 기술적 요구사항 (어떻게) 
3. UI/UX 요구사항 (어떻게 보일지)
4. 성능 요구사항 (얼마나 빨리)
5. 보안 요구사항 (어떻게 안전하게)

3단계: 제약사항 명시

제약사항:
- 로블록스 환경 제한사항
- 기존 코드와의 호환성
- 메모리/성능 고려사항
- 모바일 지원 여부

7.2 AI와의 효과적인 협업 패턴

반복 개선 사이클

1. 초기 프로토타입 요청 → AI 구현
2. 테스트 및 버그 발견 → 수정 요청  
3. 기능 확장 요청 → AI 개선
4. 최적화 요청 → 성능 향상
5. 문서화 요청 → 코드 설명

품질 관리 체크포인트

각 단계별 확인사항:
✅ 기능이 의도대로 작동하는가?
✅ 성능 이슈는 없는가?
✅ 보안 취약점은 없는가?  
✅ 사용자 경험이 좋은가?
✅ 코드가 이해하기 쉬운가?

8. 프로젝트 성과 및 학습

8.1 정량적 성과

  • 개발 기간: 21일 (기존 추정 60-90일)
  • 코드 라인: 약 3,000라인 (95% AI 생성)
  • 기능 구현: 계획된 모든 핵심 기능 완성
  • 버그 발생: 초기 대비 70% 감소
  • 문서화: 100% 완료 (모든 프롬프트 기록)

8.2 정성적 학습

  1. AI는 도구, 기획자는 인간: 명확한 비전과 요구사항이 핵심
  2. 반복 개선의 힘: 한 번에 완벽한 코드보다는 점진적 개선
  3. 문서화의 중요성: 모든 프롬프트와 과정 기록이 자산
  4. 커뮤니케이션 스킬: AI와 대화하는 능력이 새로운 핵심 역량
  5. 품질 관리: AI 코드도 사람의 검증과 테스트가 필수

8.3 향후 개선 계획

  • PvP 시스템: 플레이어 간 대전 모드
  • 시즌 시스템: 정기적 컨텐츠 업데이트
  • 길드 시스템: 협력 플레이 요소
  • 모바일 최적화: 터치 인터페이스 개선
  • 소셜 기능: 친구 초대, 순위 경쟁

AI 게임 개발의 미래

성공 요인 분석

  1. 명확한 비전: "한국적 타워 디펜스"라는 독특한 컨셉
  2. 체계적 접근: 작은 기능부터 점진적 확장
  3. 완벽한 문서화: 모든 과정을 투명하게 기록
  4. 지속적 테스트: 각 단계마다 실제 플레이 테스트
  5. 커뮤니티 피드백: 유튜브를 통한 실시간 피드백

한계점 인식

  • 창의성 한계: AI는 기존 패턴 조합, 혁신적 아이디어는 인간 몫
  • 복잡한 로직: 매우 복잡한 시스템은 여전히 인간 개입 필요
  • 최종 판단: 재미와 밸런스 조정은 사람의 감각이 중요
  • 예술적 요소: 비주얼, 사운드 등 감성적 요소는 별도 작업

미래 전망

AI 게임 개발은 "AI 코딩 + 인간 기획"의 협업 모델이 표준이 될 것입니다. 중요한 것은 AI를 어떻게 활용하느냐가 아니라, 무엇을 만들고 싶은지에 대한 명확한 비전입니다.

 

훈이겜터의 김치 타워 디펜스 프로젝트는 이러한 미래의 모범 사례로서, 개인 크리에이터도 AI의 도움을 받아 상업적 품질의 게임을 만들 수 있음을 보여주었습니다.

 

핵심 메시지: "vibe coding"이 아닌 "정밀한 AI 협업"을 통해, 누구나 자신만의 독특한 게임을 세상에 선보일 수 있습니다.

728x90
그리드형(광고전용)

댓글