Game Dev

컴퓨터 게임 개발 : 아이디어부터 배포까지

1. 나는 AI들과 컴퓨터 게임을 만든다

내가 학교에서 학생들에게 컴퓨터 게임을 만들었다고 말했더니 몇몇 아이들이 집에 안 가고 남아서 게임 만드는 방법을 알려달라고 했어요. 그래서 무슨 게임을 만들고 싶냐고 물었더니 ‘공포 게임‘, ‘ 방 탈출 게임‘, ’옷 입히기 게임 ’ 같은 걸 만들고 싶다고 하더라구요. 한 아이가 자기의 게임 아이디어인 것처럼 괴물을 연기하면서 설명했는데 알고보니 이미 있는 인기있는 게임이었어요. 폰으로 캐릭터를 보여줬는데 그런 것과 비슷한 걸 만들고 싶었나봐요. 저는 로블록스 게임은 안 만들어봤지만, 제가 게임을 만들었던 과정을 따라 할 수 있게 쉽게 설명해 볼게요.

다행스럽게도, 컴퓨터게임 개발이 다른 도전에 비해서 큰 비용이 들지 않아요. 내가 게임들을 만들어서 플랫폼을 구축할 때까지 쓴 돈은 AI 구독료, 저작권 신청 비용, 도메인 획득 비용, “ㅇ”을 많이 눌러서 고장 난 키보드를 구입한 비용이 전부입니다. 거창한 게임을 만들려면 인건비도 필요하겠지만 나는 “수수한 게임”을 만들기 때문에 큰돈이 필요하지 않았어요. 스팀이나 구글 플레이로 출시하려면 별도의 가입비(등록비)가 필요한데 나는 GitHub에 코드를 보관하고 웹 브라우저로 배포해서 비용은 아끼고 사용자들의 접근을 수월하게 했어요. 

2. 게임 아이디어는 품종개량과 비슷하다.

게임 아이디어는 품종개량과 비슷해요. 현신규 박사는 추위에 강하지만 성장이 느린 리기다 소나무와, 성장은 빠르지만 추위에 약한 테다 소나무를 교잡해서 추위에 강하고 성장이 빠른 리기테다 소나무를 만들었어요.

마찬가지로 발명도 무(無)에서 유(有)가 창조되지는 않아요. 예를 들어 볼게요. 상처에 붙이는 대일밴드는 거즈와 반창고를 더해서 만들었고, 포스트잇은 종이에 풀 바른 것이에요. 기존에 이미 있던 두 가지를 더해서 만들었어요. 세계적으로 열풍을 일으킨 워들을 분석해 볼게요.

워들=행맨+야구 게임+색깔 힌트

워들은 비밀 단어를 6번의 기회 안에 맞춰야 한다는 점에서 행맨과 비슷해요. 비밀단어에 있는 글자가 있는지 없는지 다른 위치에 있는지 알려주는 것은 단어야구 게임과 닮았어요. ( 야구게임은 내가 만든 플랫폼 수수랜드에서 플레이하실 수 있어요)
그런데 워들이 다른 점은 S, B, O라는 텍스트 대신에 색깔 패널로 직관적인 힌트를 준다는 점이에요.
이렇게 익숙한 두세 개의 게임을 섞은 다음에 무언가 자기만의 독특한 요소를 넣으면 완전히 새로운 게임이 탄생하죠. 내가 만든 게임들도 기존 게임에서 시작했어요

워퍼즈=지뢰찾기+워드 서치+데이지, 토끼풀

워퍼즈는 지뢰찾기처럼 격자가 있는데, 격자를 클릭하면 지뢰가 나와서 터지거나 숫자가 보이는 게 아니고 영어 단어나 한글 단어가 가로세로 대각선으로 들어있어요.

게임을 만들기 전에 독창적인 아이디어인지 확인한다.

아이디어가 생겼다고 코딩을 먼저 했는데 기존 게임이 있으면 헛수고가 될 테니까 기존 게임에 그런 것이 있는지 확인해야 해요. 나는 AI한테 물어보거나 포털 사이트에서 검색했어요. 조사하는 과정에서 비슷한 게임이 있으면 규칙을 바꿔서 만들었고 아이디어를 발전시킬 수도 있어요.

게임 이름, 게임 규칙, 게임 화면을 구상한다


처음에는 내 게임에 대한 설렘을 갖고 태명 짓듯이 고민을 많이 해서 지었어요. 트링클은 세모땅이었고, 넘즐의 태명은 수공재( 수학 공부 재미있게) 였어요.
내가 만든 게임들을 글로벌하게 성공시키려는 욕심을 갖고 나중에 게임 이름들을 영어 이름으로 바꿨는데, 게임 이름은 ChatGPT와 우리 가족들이 많이 지어줬어요.
게임 이름을 잘 지었다고 생각했지만 다른 게임에 이미 사용하고 있어서 못 쓴 경우도 있어서 이것도 반드시 검색해봐야 해요. 게임을 많이 만들수록 작명 실력이 점점 좋아져요.

게임 개발에서 게임 규칙 정하기가 가장 중요하고 오롯이 개발자의 몫이에요. 반면에 게임화면을 처음부터 구상하는 게 제일 쓸데없는 일이었어요. 트링클이 원래 내가 학창 시절에 공책과 펜으로 하던 게임이라서 게임 화면 바탕에 공책처럼 줄을 넣어달라고 했었거든요. 그런데 이게 코드로 구현하기가 의외로 까다로웠나 봐요. 그래서 게임화면은 일단 AI의 경험을 믿고 자율에 맡긴 후에 나중에 결과물을 받은 후에 고쳐나가는 것이 좋아요.

게임 개발은 요리 레시피 개발과 비슷하다


코딩하는 걸 좋아하면 코딩을 해도 되는데, 시간이 금이잖아요.
AI에게 코딩을 맡기고 코드를 받으면, 코드 편집 프로그램을 통해 게임을 실행해서 테스트하면 돼요.
나는 Koder로 했는데, 무료 프로그램이기도 하고 내가 아이패드로 게임을 만들다 보니까 아이패드에서 쓸 수 있는 프로그램이 별로 없어서 그냥 쓰고 있어요. 코딩 프로그램도 AI에게 추천받으세요.

게임을 테스트해서 규칙대로 작동이 안 되면 고쳐나가세요.
게임 개발을 요리 레시피에 비유해볼 게요.

게임 규칙 만들기 (개발자 담당): 새로운 요리를 개발하기 전에 맛을 상상해서 재료를 선정하고 요리 방법을 선택하는 것을 게임 규칙 만들기라고 볼 수 있어요

코딩하기 (AI 담당) : 요리하는 과정이 코딩하기라고 보고 이건 AI 가 해요

테스트하기 (개발자 담당) : 만든 요리를 맛보고 어떻게 맛을 개선할지 결정하는 게 테스트예요. 이걸 AI가 절대로 못 해요.

AI는 사용자의 경험을 절대로 디자인하지 못해요. 로봇 요리사가 음식은 만들었는데 맛을 모르는 거예요. 그런데 나는 게임 아이디어를 구상하고 발전시키는 건 재미있는데 테스트하는 건 귀찮고 재미가 없어요. 막상 버그가 발견되면 도파민이 치솟으면서 고치는 건 또 재미있거든요.

내가 테스트를 안 하고 다른 사람에게 시키는 게 게임 개발이 큰 도움이 돼요. 왜냐면 내가 예상하는 대로 게임하질 않더라고요. 덕분에 오류도 찾아낼 수 있고, 사용자가 게임하는 법을 잘 몰라서 “ 어떻게 해야 해요?”라고 물으면 게임 안에 게임 방법을 직관적으로 이해할 수 있게 설명을 추가해요. 어렵다고 하면 쉬운 모드를 만들고, 쉽다고 하면 어려운 모드를 넣어요. “재미없어요“라는 말이 제일 도움이 되는 직언이에요. 몇 초 서운하지만 “ 어떻게 더 재미있게 만들지?”라고 고민을 하게 돼요.

NPC에게 뇌를 심는 게 제일 어렵다


게임 개발 과정에서 NPC의 인공지능 알고리즘이 제일 어려워요. 컴퓨터가 사용자와 똑같은 조건에서 더 똑똑하게 생각하게 해야 하니까요.

트링클 반칙사건 : 트링클을 개발할 때 트링키가 삼각형을 그려야 하는데 사각형을 먼저 그리고 대각선을 그리면서 턴은 유지하고 사용자가 사각형을 그리면 턴을 가져가고요. 그러면서 또 삼각형 두 개 만들고, 그리고 대각선 한번 더 그려서 삼각형을 네 개 만들어서 점수를 내는 등 반칙을 쓰더라고요. 내가 Claude에게 ”화면에 있는 모든 점에 a, b, c, d,…이름을 붙이고 선분에는 ab,ac,… 이렇게 이름을 붙여보자“는 아이디어를 낸 후에 해결되었어요.

넘즐업 개발할 때 Claude를 들볶다: 넘즐업을 개발할 때 NPC를 똑똑하게 만드는 게 정말어려웠어요. 정확히 말하면 나보다 Claude가 고생을 많이 했죠. 연산기호에 루트와 파이가 들어있었는데 Claude가 “사용자도 가끔 이기게 해 주면 내가 NPC를 이겼다면서 좋아한다”는 거예요. 그 말도 맞긴 한데 NPC를 이기고 싶으면 정답이 없는 워퍼즈 게임 같은 걸 해야 돼요. 그래서 Claude한테 “ NPC가 더 똑똑해야 됩니다. 두 자리 수+두 자리 수도 계산해야 됩니다. 3 파이는 3*파이로 계산해야 합니다. ” 등등 NPC가 완벽한 정답을 만들 때까지 Claude를 들들 볶았어요.

9,076번 업로드하고 수정했다.


처음부터 완벽하게 만들 필요는 없습니다. 완벽한 게임을 내놓으려고 하면 영영 출시를 못 할 거예요. 나는 일단 게임이 작동하자마자 게임을 Github에 올려놓고 배포했어요. 2025년 5월 9일부터 이 글을 쓰는 2026년 5월 29일까지 GitHub에 파일을 9,076번 업로드하고 수정했습니다. GitHub는 모든 과정을 고스란히 저장해서 개발자의 저작권을 지켜줍니다.

사실 게임이 완성된 순간 저작권은 자동으로 생기는 것이기 때문에 저작권 신청이 급하지는 않아요. 저는 수수랜드의 게임들이 완벽하지 않아서 베타 상태라고 생각하고 계속 개선해 나가고 있어요. 

내가 만드는 게임은 나를 닮는다


나는 아직 초보 개발자이고, 저 같은 초보 개발자들에게 도움이 될 정도의 설명만 했어요.
나는 왜 인기가 많은 슈팅, 키우기, 공포, 탈출 게임들은 안 만들고 있을까 생각해 봤어요. 만들고 싶은 게임도 개발자의 성격을 닮아가는 것 같아요. 나는 배드민턴을 치면 셔틀콕을 쳐서 넘기는 게 아니라 주우러 다니는 운동이 되어버려요. 신기하게도 내가 만든 게임이 순발력이 요구되는 게임이 없네요. 그대신 나는 헬스클럽에서 중량을 드는 것을 좋아하는데 절대로 무겁게 들지 않고 느릿느릿 움직여요.
그래서 내가 만드는 게임도 사용자들을 재촉하지 않고 오래오래 생각해도 되는 게임들을 만들었나 봐요.

나는 캐주얼하고 규칙이 간단한 게임들을 만들고 있기 때문에 100% HTML과 자바스크립트로 코딩하고 있어요. 귀여운 캐릭터 디자인이나 3D 애니메이션 같은 영역은 내가 몰라서 알려드릴 수가 없어요.
AI의 실력이 일취월장하고 있어서 지금부터 게임을 만드시는 분들은 저보다 덜 고생하고 더 쉽게 자신만의 아이디어를 구현한 게임을 만들 수 있을 거예요.

댓글