
Amazon Q CLI로 게임 만들어 보기
Amazon Q CLI로 게임을 만들어 공유하면 티셔츠를 주는 이벤트가 있어서 참가해 봤습니다.
주로 웹 프론트엔드 개발을 해와서 게임 개발 경험은 거의 없습니다.
그래서 티셔츠도 받을 겸, 새로운 경험도 해볼 겸 참여해 보게 되었습니다.
결과물보다는 ‘해보는 과정’에 더 가까운 글이니 가볍게 봐주시면 감사하겠습니다 :)
이벤트에 대한 상세한 내용은 아래 안내 페이지를 참고해 주세요.
Build Games with Amazon Q CLI and score a T shirt 🏆👕
Amazon Q CLI란?
Amazon Q CLI는 Amazon Q라는 생성형 AI를 쉽게 사용할 수 있는 서비스의 CLI 버전입니다.
여러 AWS의 기존 서비스들과 함께 사용하거나, 이번에 제가 사용한 것 처럼 독립적으로 사용할 수 있습니다.
자세한 내용들은 아래 링크들을 참고해 주세요.
Amazon Q: Amazon Q - 생성형 AI 도우미
Amazon Q CLI Docs: Installing Amazon Q for command line
Github: https://github.com/aws/amazon-q-developer-cli
카타카나 외래어 연습 게임 만들기
게임은 pygame을 이용해 만들어 보려 했습니다. 이벤트에서 예시로 제공하기도 해서, Amazon Q CLI가 잘 만들 수 있지 않을까 하는 마음에 그대로 사용했습니다.
이벤트에 참가하기 위해 무슨 게임을 만들까 하다가, 요즘 곤란한 부분이 있어서 게임으로 만들어 보려 했습니다.
개인적으로 업무에서 일본어를 쓰면서 매번 곤란한 부분이 있는데, 그건 바로 일본어의 외래어 표기법입니다.
한국어로 외래어를 쓸 때는 제가 발음하는 대로 쓰다 보면 되니 크게 곤란한 부분이 없는데요. 제가 일본어를 배운 거지, 일본어로 말하는 마인드를 배운 게 아니라서, 제 생각대로 외래어(영어 등)를 카타카나(일본어 문자)로 옮기면 일본인 입장에서는 알 수 없는 단어가 되어 있는 경우가 종종 있었습니다.
그래서 이걸 어떻게 게임으로 만들까 생각하다가, 어렸을 때 하던 한컴타자연습의 산성비 모드가 떠올랐습니다. 산성비 모드는 위에서 단어가 떨어지고, 저희는 그 단어를 맞추면 되는데요, 저는 영어에 따른 카타카나를 입력하는 방식으로 해보면 좋지 않을까 해서 만들어 봤습니다.
위 GIF는 제가 만든 게임입니다.
AI가 제 생각대로 잘 만들어줬고, 만드는 과정도 꽤 재미있었습니다.
전체 코드는 아래 레포지토리를 참고해 주세요.
GitHub: https://github.com/tolluset/b
Amazon Q CLI 설치
Amazon Q CLI를 사용하기 위해 아래 페이지에서 다운을 받거나, brew install amazon-q
를 통해 다운받을 수 있습니다. (cask 형태로 앱이 따로 있습니다.)
다운로드 페이지: Installing Amazon Q for command line
다운을 하고 실행시켜 보면 아래와 같은 형태의 앱이 보입니다. 이후 AWS의 커뮤니티 계정으로 로그인을 하였습니다.
이후 터미널에서 q doctor
로 설치가 문제가 없는지 확인해서 문제가 없으면 준비 완료입니다!
게임 만들기
아래처럼 만들고 싶은, 게임의 사양을 CLI에 입력하면 Amazon Q CLI가 해당 디렉토리에서 여러 가지 작업을 하게 됩니다.
처음 시작이다 보니, 게임의 전반적인 코드를 작성해 주는 걸 확인할 수 있었습니다.
작성하는 걸 기다리면 끝에, 실제로 반영할 건지 물어보게 됩니다. 저 같은 경우 t
를 눌러 앞으로 여러 작업을 알아서 하게 하는 설정을 했습니다.
그리고 처음 실행을 해보았습니다. 직접 플레이해 보니, 생각보다 너무 내려오는 속도가 빨랐고, 영어 단어에 해당 카타카나가 없는 게 불편했습니다. 그리고 가장 중요한, 폰트 문제(입력창에 일본어를 입력하면 네모가 됨)가 생겼습니다. 그래서 이러한 사항들을 수정해달라고 요청해 봤습니다.
수정을 요청하고, 수정이 모두 완료되면, 어떤 태스크를 해주었는지 알려주게 됩니다. 처음 사용할 때는 아래처럼 영어로 나왔는데, 나중에 한국어로 알려달라고 지시 사항을 주면, 한국어로 알려주었습니다. 처음부터 한국어로 달라고 하는 걸 추가하시길 추천해 드립니다.
이후에는, 위의 과정처럼 수정 사항을 계속 요청하고 실행해 보는 반복 작업으로 게임을 완성할 수 있었습니다.
간단하죠?
후기
게임을 만드는 게 생각보다 더 어려웠습니다. 제가 게임 개발에 대한 이해도가 없으니, AI가 작성해 주는 코드에서 생긴 문제를 이해하거나 더 나은 방향으로 지시하는 게 쉽지 않았습니다.
예를 들어, 일본어가 제대로 표시 안 되는 문제가 있었습니다. 그냥 폰트를 추가해 주면 될 줄 알았는데, 생각보다 간단한 문제가 아니었습니다.
일본어는 입력 시에 아래처럼 입력에 대해 여러 제안을 주고 선택하는 키보드(IME)를 사용할 수 있습니다.
위의 경우 입력 중의 글리프에 대한 폰트라든지, IME의 엔터와 실제 단어를 입력한 엔터의 이벤트를 구분한다든지, 이런 문제들이 있었습니다. 웹에서 개발할 때는 브라우저가 대부분의 문제를 해결해 주었기 때문에 몰랐지만, pygame의 경우 저런 부분을 직접 해결해야 했습니다. 실제 작업에서는 pygame으로 해결을 못 해서, pygame-ce(커뮤니티 에디션)을 사용해 다양한 이벤트를 처리하는 방향으로 문제를 해결했습니다...
외에도, 직접 코드를 고치는 경우 AI가 이해하고 있던 코드와 달라져서 싱크하는 과정에 시간이 걸린다든지, 복합적인 문제를 해결하는 경우에는 추가적인 검색도 필요하긴 했습니다.
하지만, 대부분의 작업을 AI가 알아서 해주었습니다. 디테일적인 부분은 직접 손을 보거나 자신이 해당 지식을 좀 가지고 있는 게 필요하다는 걸 느꼈지만, 간단한 프로그램이나, PoC적인 형태는 매우 유용할 것 같습니다.
AI가 잘 발전하고 있다는 생각이 드네요. 🥸