고도엔진으로 화려한 테트리스 만들기
Eli · 2D 게임 프로토타입 만들기 · · 좋아요 0 · 답글 0
연재 2D 게임 프로토타입 만들기 4/12편
30초 데모 영상입니다. 직접 플레이: https://game.dev-play.kr/neon-stack/
테트리스를 다시 만든 이유
클로더즈 고도엔진 게임제작 스터디를 수강하면서, Godot으로 게임을 만들고 배포하는 과정을 경험해 보고 싶었습니다. 연습용으로 선택한 게임은 테트리스였습니다.
23기 때도 게임을 만들어 봤기 때문에, 이번에는 Godot 엔진의 장점을 좀 더 활용해 보고 싶었습니다. 그래서 첫 요청에 한마디를 덧붙였습니다. “화려하게.”
테트리스 godot 엔진을 활용해서 만들어봐. godot 엔진의 장점을 많이 활용해서 화려하게.
이렇게 시작한 게임의 이름은 NEON STACK입니다. 단순한 블록 퍼즐에서 출발해 네온 스타일의 게임으로 만들었습니다.
“화려하게”의 결과, 그리고 생각보다 길어진 작업
한 줄 프롬프팅으로 시작된 작업으로 클로드는 블록 이동·회전·홀드·줄 삭제 같은 기본 규칙 위에 네온 블록과 배경, 블록이 떨어질 때의 파편과 빛, 줄을 지울 때의 연출, 화면 전환과 팝업 등을 얹었습니다. 배경음악과 효과음도 넣고, 음악에 반응하는 배경까지 만들었습니다.
결과물은 마음에 들었지만 작업은 생각보다 오래 걸렸습니다. 처음에는 Claude로 진행했는데, 당시 skip permission 모드를 쓰지 않아 작업 중간중간 승인을 기다리는 상태가 됐습니다. 제가 계속 지켜보며 yes를 눌러 주지 않으면 진행이 멈춰 있는 경우가 있었습니다.
프롬프트 기록을 다시 보니 제가 “진행하고 있어?”, “다 된거야?”, “아직 진행중?”이라고 여러 번 물었습니다. 작은 수정 뒤에도 같은 테스트를 반복하는 모습이 보여 “왜 똑같은 테스트를 계속하는거야?”라고 묻기도 했습니다.
결국 작업 내용을 정리해 두고, 아스트라로 이어받아 완성했습니다. 이 과정에서 긴 작업을 AI에게 맡길 때는 요청 내용뿐 아니라 승인 방식, 작업 범위, 완료 기준, 검증을 어디까지 할지도 정해 두는 게 중요하다는 것을 느꼈습니다. 이어서 작업할 수 있도록 현재 상태와 남은 일을 남겨 두는 것도 도움이 됐습니다.
만들고 나서 웹·exe·dmg까지 내보내 보기
게임이 실행되자 궁금한 것이 하나씩 늘었습니다. “웹으로 배포할 수 있지?”, “내보내기는 내가 에디터에서 해야 해?”, “exe와 dmg도 만들 수 있을까?” 같은 질문을 이어 갔습니다.
웹 버전은 기존에 운영하던 개발놀이터에 폴더를 만들고 등록했습니다. 덕분에 설치 없이 브라우저에서 플레이할 수 있게 됐습니다. Windows용 exe와 macOS용 dmg 패키지도 만들어 보며, 하나의 Godot 프로젝트를 여러 형태로 내보내는 과정을 경험했습니다.
배포 후 휴대폰으로 접속해 보니 터치로 시작조차 할 수 없는 문제가 있었습니다. PC에서 키보드로 잘 된다고 끝나는 게 아니었습니다. 터치로 게임을 시작할 수 있게 고치고, 모바일 화면 아래에 네 방향키와 드롭·홀드 버튼을 추가했습니다.
소리도 실제로 써 보면서 손봤습니다. 기존 게임에서 사용하던 MP3를 배경음악으로 넣었고, 배경음악과 효과음의 볼륨을 따로 조절하거나 전체 음소거를 할 수 있게 했습니다. 위의 영상은 배경음악을 30%로 맞춰 녹화한 데모입니다.
가장 크게 체감한 것은 최적화였습니다
가벼운 웹게임을 만들 때와 달리 이번에는 성능 문제가 눈에 들어왔습니다. 제 Mac에서 게임 실행 창을 키우니 버벅이는 느낌이 있었습니다. 블록 퍼즐 자체는 단순한데 왜 그럴까 싶었습니다.
렌더링을 비교해 보니, 큰 화면에서 빛 번짐(glow)과 화면 전체에 적용하는 후처리 효과가 부담을 늘리는 것으로 나타났습니다. Retina 환경에서는 창 크기와 실제로 그리는 픽셀 수도 달랐습니다. 화면이 커지면 같은 연출을 훨씬 많은 픽셀에 적용하게 되는 셈이었습니다.
“엔진의 기능을 많이 쓰면 더 좋아지겠지”라고 시작했지만, 그 기능마다 비용이 있다는 것을 이번에 체감했습니다. 큰 화면에서의 성능은 아직 개선할 과제로 남아 있습니다. 다음 게임에서는 목표 기기와 해상도를 먼저 정하고, 처음부터 가벼움을 유지하면서 필요한 효과를 더해 보고 싶습니다.
이번에 해 보고 배운 것
게임 제작과 배포를 한 번 이어서 경험했습니다. 기본 규칙 구현부터 시각 효과, 소리, 웹 배포와 데스크톱 패키징까지 진행했습니다.
실제 사용 환경에서 확인할 문제가 있었습니다. 모바일 터치 입력, 화면 배치, 볼륨 조절은 직접 써 본 뒤에 보완했습니다.
Godot을 코드 중심으로 활용할 수도 있었습니다. AI가 스크립트와 프로젝트 파일을 만들고, Godot으로 실행하고 내보내는 방식으로도 작업을 진행할 수 있었습니다.
AI에게 맡기는 작업에도 운영 기준이 필요했습니다. 승인 대기로 멈추는 상황과 반복 검증을 줄이려면 작업 범위와 완료 기준을 명확히 하고, 필요한 검증을 묶어서 진행하는 편이 좋겠다고 느꼈습니다.
다음에는 최적화를 처음부터 고려하려고 합니다. 이번에는 “화려하게”로 시작했지만, 앞으로는 목표 환경에서 끝까지 가볍게 돌아가는 것을 우선 기준으로 삼고 싶습니다.
익숙한 테트리스로 시작한 덕분에 게임 규칙을 새로 고민하는 부담은 줄이고, Godot으로 제작하고 배포할 때 무엇을 신경 써야 하는지 경험해 볼 수 있었습니다. 에디터를 많이 조작하지 않는 방식으로도 게임을 만들 수 있다는 감을 얻었고, 다음 작품에서는 그 방식에 성능 기준까지 함께 넣어 보려고 합니다.
태그: #게임메이커스