Show GN: 바이브코딩 덕에 20여년만에 만든 게임 : Mirror Break Out
(mirror-breakout-web.vercel.app)2004년 여름, 군대에서 말년을 보내고 있던 저는 남는 시간에 뭘 할까 고민하다가 게임 기획을 하기 시작했습니다. 당시 동생이 게임그래픽 디자인을 전공하고 있어서 제대하고 나면 뭔가 하나 같이 만들어 보면 좋겠다고 생각을 했거든요. (아..저는 평범한 문과생입니다. 기술은 전혀)
아마추어 도전이었기에 작고 간단한 걸 만들려고 했습니다. 가장 만만한 게임 중 하나인 벽돌깨기(알카노이드)를 베이스로 새로운 대결 방식을 더했는데, 이미 수많은 사람들이 새로운 버전을 내놓았던 게임이지만 저처럼 만든 건 없어보였습니다.
제대를 하고는 동생과 동생친구들을 모아서 야심차게 팀을 꾸렸는데 얼마 못가 각자 사정이 생기면서 금방 팀은 엎어졌습니다. 다음에 기회가 되면 만들어야지 했는데 기회가 다시 오지 않더군요. 세월이 흘러 사회생활 하면서도 가끔 생각이 났고, 잠깐 파이썬을 공부해보겠다고 했던 시절에도 목표로 뒀었지만 저에겐 너무 어려운 과제 였습니다.
그렇게 시간이 흘러흘러 20여년이 더 지난 작년 여름, 미팅 끝나고 같이 저녁식사를 하는데 같이 미팅했던 기업 대표님들이 AI 로 만들 수 있는게 너무 많아졌다며 다들 재창업을 하고 싶다는 겁니다. 그날 자극을 받은 저는 밤에 집에 돌아와 말로만 듣던 클로드 코드를 설치해보게 됩니다. 그리고 2시간 후…뺌!!
클로드코드에 첫 프로젝트로 뭘 시켜볼까 고민하다가 20년전 아이디어를 되짚어가며 주문을 했는데, 2시간 정도 지나니 제 눈 앞에서 패들과 공이 움직이며 벽돌을 깨고 있었습니다. 그때의 전율이란. 이런 간증(?) 이제 넘쳐나니 익숙하시겠지만 반년이 지난 지금은 클로드코드 없으면 못사는 삶이 되었습니다.
게임은 그동안 조금씩 다듬다가 이제 그래도 데모라고 내놓을 수 있는 수준은 되어 용기를 내어 공개를 해봅니다. 그것도 눈팅만 하던 긱뉴스에!! 원래는 2인용 대전 게임으로 구상한건데, 멀티 유저 기능은 저에게 너무 높은 벽이라 컴퓨터와 대결하는 형태로 만들었습니다.
간단히 소개를 하면,
- 컴퓨터용입니다. 모바일은 아직 대응을 못했습니다.
- 2인이 한 공간에서 서로 등지고 하는 벽돌깨기 게임입니다. 먼저 벽돌을 다 깨는 쪽이 승리합니다.
- 내가 공을 놓치면 상대방 영역으로 공이 넘어갑니다. 상대방이 놓치면 나에게 넘어 옵니다.
- 현실세계의 물리 개념을 넣어 무게, 충격, 가속도, 관성이 있습니다. 생각보다 어렵습니다.
- 데모 버전이라 단판후 재시작으로 계속 할 수 있습니다.
- 어릴적 오락실 처럼 기록을 세우면 이름을 새길 수 있습니다.
개발 과정의 교훈도 적어보자면
- 리팩토링! 리팩토링! 리팩토링!
- 말로만 듣던 리팩토링이 뭔지 알게 되었고, 지옥 중에 리팩토링 지옥이라는 것이 존재할 수 있지 않을까 생각하게 됐습니다.
- 처음에 꿈에 부풀어 배틀넷을 꿈꾸며 마구쪼개어 기능을 부풀렸다가 버그의 홍수 속에 결국 다 리셋 했다가 다시 쪼갰다가 합쳤다.. 오푸스 4.5 나오기 전이었습니다.
- 이 작은 걸 하나 만들면서도 이정도인데, 프로그래머 분들에게 존경의 마음을 가지게 됐습니다.
다행히 지금은 분수를 좀 알게됐고, 작업을 잘게 쪼개서 워크플로우 문서를 만들고, 개발로그와 깃 커밋을 꼼꼼히 챙기는 작업자가 되었습니다. 가장 큰 소득은 해보고 싶은게 정말 많아졌다는 것입니다. 일하면서 필요한 도구들을 직접 만들어보려고 열심히 궁리중입니다.
이 게임은 어찌해야할지 고민입니다. 지금 저의 상황으로는 본격 개발을 하기는 어렵고, 그렇다고 그냥 묻어버리기에는 아깝고 합니다. 아이들이 즐겁게 할 수 있는 게임이 되었으면 하는 소망이 있습니다.
항상 긱뉴스의 소식들에서 많은 것을 배우고 있고 감사히 잘 보고 있습니다. 고맙습니다.