<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1390824249408914&amp;ev=PageView&amp;noscript=1"> 40대 AI 초보 성장일지 #017 | 게임이 완성되었습니다! 그런데 끝이 아닙니다?! : 다나와 DPG는 내맘을 디피지

비교하고 잘 사는, 다나와 : 가격비교 사이트

다나와 앱
다나와 앱 서비스 목록
다나와 APP
다나와 가격비교 No.1 가격비교사이트 다나와 앱으로
간편하게 최저가를 확인하세요.
- -
QR코드
빈 이미지
다나와 앱 서비스 목록 닫기
AI

40대 AI 초보 성장일지 #017 | 게임이 완성되었습니다! 그런데 끝이 아닙니다?!

2026.10.02. 14:23:19
조회 수
268
7
댓글 수
3

공유하기

레이어 닫기

지금 보는 페이지가 마음에 든다면
공유하기를 통해 지인에게 소개해 주세요.

로그인 유저에게는 공유 활동에 따라
다나와 포인트가 지급됩니다.

자세히 >

URL이 복사되었습니다.
원하는 곳에 붙여넣기(Ctrl+V)하세요.

레이어 닫기
연결된 글 16개
연결된 글 안내
연결된 글도 함께 읽어보세요!
작성자가 연결한 다른 글로 바로 이동하실 수 있습니다. 연결된 글의 제목을 클릭해보세요!
  1. 1
    2026.07.21. 10:30:57
  2. 2
    2026.07.24. 10:59:27
  3. 3
    2026.07.28. 17:17:56
  4. 4
    2026.07.30. 17:01:38
  5. 5
    2026.08.04. 16:26:16

 

안녕하세요. 여영자입니다 :)


지난 시간에는 장애물을 추가하고

점수 팝업과 파티클, HUD의 일부 기능까지 만들어 봤습니다.


[40대 AI 초보 성장 일지] 16편

https://dpg.danawa.com/bbs/view?boardSeq=309&listSeq=6063045


게임의 모습이 대부분 갖춰진 것 같은 느낌적인 느낌이지만,

아직 끝난 게 아닙니다! ㅎㅎ



오늘은 남아 있는 기능들을 하나씩 완성해서

게임을 끝까지 마무리해 보겠습니다.

(마지막까지 가즈아~)



지난 시간에 스테이지 종료 구간에 사원증을 배치했는데요.

사실 사원증은 도착 구간에서 획득할 수 있는 특수 아이템입니다.


하지만 도착 구간을 알려주는 요소가 아직은 없다 보니

사원증이 특별 아이템이라는 느낌이 들지 않았습니다.


 

그래서 게임의 시작과 도착 구간을 명확하게 알려줄 수 있도록

게임에 말풍선을 넣어 보겠습니다.



[HUD]에 [Control]을 추가하고, 이름을 [StartDialogue]로 변경했습니다.

[StartDialogue]를 선택한 뒤 [앵커 프리셋] > [전체 공간]을 선택합니다.


 

[StartDialogue]에 [TextureRect]를 추가한 후

이름을 [DialogueImage]로 변경했습니다.

인스펙터의 [Texture]에는 시작 말풍선 이미지를 넣었습니다.


 

도착 구간에서 사용할 말풍선은

[StartDialogue]를 복제한 뒤 이미지만 도착 말풍선으로 교체했습니다.

처음에는 보이지 않도록 [EndDialogue]의 [Visible]은 꺼두었습니다.


 

이제 캐릭터가 사원증에 닿았을 때

도착 말풍선이 나타나도록 연결해 보겠습니다.



[EmployeeBadge]의 [시그널]에서 [body_entered(body: Node2D)]를 선택해

[employee_badge.gd]와 연결했습니다.

사원증에 닿으면 HUD의 도착 말풍선이 나타나도록 기능을 추가했습니다.



마지막으로 [hud.gd]에서 말풍선 스크립트를 추가했습니다.

게임을 시작하면 말풍선이 아래에서 위로 올라오고,

스페이스바를 누르면 다시 아래로 내려가며 사라지도록 설정했습니다.


도착 말풍선 역시 같은 방식으로 움직이지만,

캐릭터가 사원증에 닿았을 때만 나타나도록 설정하면 완료!



짜잔!! 게임을 시작하면 시작 말풍선이 뜨고,

스페이스바를 누르면 사라지도록 잘 구현되었어요! (얏호)


 

 

도착 구간도 완성! (좋았어!!)


자아~ 지금부터는 바로 낙사 구간을 설정해 보겠습니다.


 

지금은 뻥 뚫린 바닥 아래로 추락해도 아무런 반응이 없습니다. (심심..)


이 구간을 낙사 구간으로 설정하고,

생명이 줄어들도록 만들어 보겠습니다!


 

[Main]에 [Node2D]를 추가하고 [LifeHazards]로 변경합니다.

[LifeHazards]에 [Area2D]를 추가한 뒤 이름을 [FallZone]으로 변경합니다.


이제 [FallZone]에 [CollisionShape2D]를 추가해

캐릭터가 떨어졌을 때 감지할 추락 판정 영역을 만들었습니다.


 

[FallZone]에 스크립트를 붙인 뒤

[시그널]의 [body_entered(body: Node2D)]를 선택해 [fall_zone.gd]에 연결합니다.


 

캐릭터가 낙사 구간에 들어오면 생명이 줄어들도록

[fall_zone.gd]에 낙사 감지 기능을 추가했습니다.


[game_manager.gd]에서는 처음 생명을 3개로 설정하고,

낙사가 감지될 때마다 생명이 하나씩 줄어들도록 만들었습니다.



이제 출력창에서만 확인되던 생명 감소를

실제 게임 화면에서도 확인할 수 있도록 [hud.gd]를 수정했습니다.


HUD의 하트 3개를 남은 생명 수와 연결해

생명이 줄어들 때마다 하트도 하나씩 사라지도록 설정했습니다.


 

꺄아~ 낙사 구간에 떨어지니 생명 1개가 줄어들었습니다!!


하지만 기쁨도 잠시…


 

아직 생명이 남아 있으면 게임이 끝난 게 아니잖아요…

낙사 후 다시 시작할 위치로 이동해야 하는데 말이죠.


그렇다면 여영자를 부활시킬 리스폰 기능을 설정해 보겠습니다!!


 

[Main]에 [Marker2D]를 추가해 이름을 [FallRespawnPoint]로 변경했습니다.


캐릭터가 다시 시작할 위치를 정한 뒤 좌표를 확인하고,

[FallRespawnPoint]의 Position에 입력해 리스폰 위치를 지정했습니다.



마지막으로 [fall_zone.gd]에 기능을 추가해

캐릭터가 낙사하면 지정해 둔 [FallRespawnPoint] 위치로

다시 이동하도록 연결했습니다.


이제 리스폰 기능이 잘 작동하는지

캐릭터를 낙하시켜 보겠습니다! (두근두근)


 

리스폰될 때 캐릭터가 깜빡이는 효과를 추가하고

생명이 줄어들 때 하트가 움직이면서 사라지는 연출도 넣어봤습니다.


작은 효과들이지만 훨씬 게임다운 느낌이 나서 만족스럽네요!




하.지.만

여기까지 만들고 나니 새로운 문제가 눈에 보였습니다.


마지막 하트가 사라지면 게임 오버인데 아무런 변화가 없습니다.

그렇다면 바로 게임 오버 기능을 만들어 보겠습니다!



[HUD]에 [Control]을 추가하고 이름을 [GameOver]로 변경한 뒤,

화면 전체를 덮도록 설정했습니다.


[GameOver]에 [ColorRect]를 추가해 반투명한 검정 배경을 만들고,

이름을 [Dim]으로 변경했습니다.


 

화면 중앙에 UI를 배치하기 위해 [CenterContainer]를 추가하고,

그 아래에 [VBoxContainer]를 추가했습니다.


[VBoxContainer]에는 [TextureRect]를 추가해

이름을 [GameOverTitleImage]로 변경한 뒤 게임 오버 이미지를 불러옵니다.


 

그 아래에는 다시 시작 기능을 위한 Godot 기본 [Button]을 추가했습니다.

이름은 [RestartButton]으로 변경하고 [다시 시작] 문구를 넣었습니다.


 

이제 [hud.gd]에 기능을 연결해 생명이 0이 되면 [GameOver]가 나타나고,

[RestartButton]을 누르면 게임 데이터가 초기화된 뒤

스테이지가 다시 시작되도록 설정했습니다.



얏호! 성공입니다. 여러분!!!

게임 오버와 다시 시작 기능까지 잘 작동합니다! (헤헷)


 

이제 HUD는 단 하나의 기능만 구현하면 됩니다.

바로바로!! 우측 상단의 정지 버튼입니다.


 

[pause_button]의 [Mouse Filter]를 [Stop]으로 설정하고,

[gui_input] 시그널을 [HUD]에 연결해 버튼 입력을 받을 수 있도록 했습니다.


 

정지 버튼을 눌렀을 때 보여줄 메뉴는

별도의 [PauseMenu] 씬으로 만들었습니다.


화면을 어둡게 만드는 배경과 메뉴 이미지를 배치하고,

[계속하기]와 [다시 시작] 버튼을 추가했습니다.



게임이 멈춘 상태에서도 메뉴를 조작할 수 있도록

[PauseMenu]의 [Process Mode]는 [Always]로 설정했습니다.


이후 [hud.gd]에서 정지 버튼을 누르면

[PauseMenu]가 열리도록 연결했습니다.


 

짜잔~ 이제 정지 버튼을 누르면 게임이 멈추면서 메뉴가 나타납니다!

계속하기를 누르면 현재 위치에서 플레이를 이어가고,

다시 시작을 누르면 스테이지 처음부터 게임을 시작합니다.


여기까지 HUD에 넣어두었던 기능이 모두 완성되었습니다. (꺄아)



이제 정말 정말 라스트 작업인

게임 클리어 시 뜨는 점수판을 만들어 보겠습니다.


 

먼저 새로운 씬을 만들고 루트 노드를 [CanvasLayer]로 설정한 뒤

이름을 [StageResult]로 변경했습니다.


화면 뒤를 어둡게 만들기 위해

[ColorRect]를 추가해 [DimBackground]으로 이름을 변경하고

투명도를 140으로 조정했습니다.


 

[Control] 노드인 [ResultRoot]에 자식 노드로 [TextureRect]를 추가하고

이름을 [ScoreBoard]로 변경했습니다.


점수판에는 아이템 획득 개수와 점수는 물론,

사원증 보너스와 특수 아이템 올클리어 보너스까지 표시할 수 있도록

[Label]들을 추가했습니다.



실제 플레이 결과를 표시하기 위해 [game_manager.gd]에서

아이템 획득 수와 사원증 보너스, 올클리어 보너스를 관리하도록 수정했습니다.


 

[stage_result.gd]를 만들고, [game_manager.gd]에 저장된 데이터를 불러와

점수판의 각 항목과 최종 점수가 표시되도록 연결했습니다.


 

마지막으로 [hud.gd]의 엔딩 처리에 [StageResult]를 연결해,

회사 도착 말풍선이 끝나면 보너스를 계산하고

기존 HUD 대신 실제 플레이 결과가 담긴 점수판이 나타나도록 완성했습니다.


잘 적용되었는지 게임을 플레이해 봤습니다. (두근두근)

.

.

.


 

꺄아 성공!!!!!!!!!

마지막 기능까지 모두 성공입니다!!!!!!!!!!!!!!!!!!


 

모두 완성된 게임을 플레이해 보니

지난날의 기쁨과 좌절, 환희가 한꺼번에 떠오르네요. (크흑..감동…)


 

움직이는 캐릭터를 만들고

배경과 바닥 패턴을 고민하고 완성했던 추억이 새록새록…


 

물론 모든 작업이 수월하진 않았지만

노력한 만큼 뿌듯함이 크네요!


저 같은 AI 초보도 결국 게임 하나를 완성했습니다.

이게 되네요… 진짜로요! ㅎㅎ


 

그런데 말입니다…

게임을 완성하고 나니 욕심이 생겼습니다.


그것은 바로

STAGE 5까지 확장하기! (후후)


 

그래서 바로 실행에 돌입했습니다.


완성된 STAGE 1의 Godot 파일을 압축해서 그대로 클로드에 넣고

STAGE 2~5로 확장한 파일을 만들어 달라고 요청했습니다.


 

짜잔! 그랬더니 정말로 스테이지를 확장해서 파일을 생성했습니다.

(아니 이게 진짜 되네요?!!)


 

스테이지마다 난이도를 순차적으로 높여달라고 요청했는데,

실제로 플레이해 보니 난이도도 잘 적용되어 있었습니다.



움직이는 공중 단차를 자동으로 생성하고 장애물도 많아져서

제법 클리어하기 어렵더라고요 ㅎㅎ


물론 이렇게 AI가 만들어 줬다고 해서

바로 완성된 게임이 되는 것은 아니었습니다.


 

아이템이나 이미지 배치는 아직 어색한 부분도 있었고

충돌 영역의 위치 등은 직접 수정해야 할 부분도 보였습니다.


하지만 이 모든 것을 매번 새롭게 제작해야 한다면

스테이지 5까지 확장하는 데 꽤 오랜 시간이 걸릴 텐데 말이죠.


 

AI를 활용하니 스테이지 확장 작업이 생각보다 수월했습니다!


AI가 만들어 준 파일을 바탕으로 디자인을 교체하고

어색한 부분들을 직접 손보니

스테이지 2까지 뚝딱 완성할 수 있었습니다.



스테이지 2에서는

사무실에서 업무를 수행하는 여영자를 만나볼 수 있습니다.


맵 난이도가 올라간 게 확실히 느껴지죠?


 

열심히 일하고 스테이지 3에서는 점심도 먹으러 간다고요 ㅎㅎ 


이런 방식으로 STAGE 2~5까지 확장을 진행하고 있습니다.

그런데 게임을 만들다 보니 또 하나 욕심이 생기더라고요.

 


이왕 만든 거, 앱으로도 출시해 보면 어떨까요? (야망!)

두둥!!


물론 제가 앱 출시를 해 본 적은 없습니다.

저도 정말 하나도 몰라요;;


그래도 여기까지 왔는데 일단 한 번 도전해 보겠습니다!

과연 영자런을 실제 앱으로 출시할 수 있을까요?



진짜로 제가 도전해 보겠습니다!!!!!!!!!!!!


그 결과는…

저의 소식을 기다려주시는 분이 계시다면

다시 전해드릴게요!!



 오늘의 기록

 ✔ 게임 시작·도착 말풍선 및 연출 구현

 ✔ 낙사·생명·리스폰·게임 오버 기능 구현

 ✔ 일시정지 및 게임 클리어 결과 점수판 완성

 ✔ STAGE 1 최종 완성 및 STAGE 2~5 확장 작업 진행


 다음 미션

 ✔ 영자런 앱 출시 도전?!!!




하트


댓글과 공감은 여영자에게 정말 큰 힘이 됩니다.

공감/비공감

공감/비공감안내도움말 보기
유용하고 재미있는 정보인가요?
공감이 된다면 공감 버튼을, 그렇지 않다면 비공감 버튼을 눌러 주세요!
공감이나 비공감을 선택 하는 경우 다나와 포인트를 적립해 드립니다. ※ 공감 버튼의 총 선택 횟수는 전체 공개입니다. 비공감 버튼의 선택 여부는 선택한 본인만 알 수 있습니다.

운영자 님의 다른 글 보기

1/4
AI 상품포럼 최신 글 전체 둘러보기
1/1
AI ChatGPT 하나로 키즈 애니메이션 만들기 (with. Pollo AI) (1)
AI 주식이 왜 올랐는지 찾기 귀찮아서, 토스증권 API랑 클로드로 자동화 해봤습니다 (2)
AI 40대 AI 초보 성장일지 #017 | 게임이 완성되었습니다! 그런데 끝이 아닙니다?! (3)
AI 가상 초파리가 둠·마리오 플레이… 챗GPT보다 잘할까? (2)
AI AI업무노트 1화! 직장인 ChatGPT 초기 설정, 자주 쓰는 업무 기준 저장하기 (3)
AI AI로 티스토리 부업 도전기 10화! 애드센스 승인 성공했을까? (8)
AI 40대 AI 초보 성장일지 #016 | 게임 완성 95%?! 드디어 끝이 보입니다! (10)
AI 40대 AI 초보 성장일지 #015 | 게임 아이템을 먹으면 점수가 올라갈까요? (6)
AI AI로 티스토리 부업 도전기 9화! 코덱스로 티스토리 포스팅 자동화 가능?! (7)
AI 40대 AI 초보 성장일지 #014 | 드디어 맵 완성! 게임다운 모습이 보입니다 (12)
AI 막장 드라마 만들다 발견한 구글 Flow 영상 기능 4가지 (14)
AI GPT 이미지 2.5 vs 나노 바나나 프로 비교 테스트 | 광고 포스터부터 연속 편집까지 실사용 후기 (10)
AI AI로 티스토리 부업 도전기 8화! 가제트AI 사용 후기, 글부터 이미지를 한 번에? (5)
AI 수노 V6 업데이트 핵심 정리 | 모델 차이부터 새 기능까지 (9)
AI AI로 티스토리 부업 도전기 7화! 비슷한 글감만 추천하는 제미나이 Gems 혼내기 (5)
AI 클로드가 짜고 구글 Flow가 만든 AI 건축 쇼츠, 그 결과는? (11)
AI AI로 티스토리 부업 도전기 6화! 글은 AI가 썼는데, 서식은 아직 수동? (6)
AI AI로 티스토리 부업 도전기 5화! Gemini Gems로 티스토리 글 한 편 만들기 (6)
AI 40대 AI 초보 성장일지 #013 | 마을의 길에 높낮이와 소품을 더해봤습니다 (18)
AI 제미나이 3.8 플래시 vs 3.7 vs 3.6, 3D 마법 게임으로 붙여봤습니다 (16)
이 시간 HOT 댓글!
1/4