
비게임 개발자도 게임을 만들고 Steam에 출시해봤다 4편: AI 활용법
요약
본 글은 비개발자도 게임을 제작하고 Steam에 출시한 경험을 공유하며, 특히 AI 개발 지원 도구 활용법에 초점을 맞추고 있습니다. Unity와 Rust로 구성된 카드 배틀 게임 'Caldra'를 만들 때, 서버 측 코드 생성 과정에서 AI를 어떻게 효과적으로 사용했는지 구체적인 프롬프트 작성 방법을 소개합니다.
핵심 포인트
- AI 개발 지원 도구(Codex/Cursor) 활용 경험 공유
- Unity와 Rust 기반의 카드 배틀 게임 제작 과정 설명
- 프롬프트에 '목표'와 '사양/제약 조건'을 명확히 제시하는 것이 중요함
- AI가 자율적으로 기능을 추가할 때 발생하는 문제점과 인간 리뷰의 필수성 강조
최근 오랫동안 개발해 온 게임을 Steam에서 출시했습니다.
개인 제작으로는 비교적 규모가 큰 게임이 된 만큼, 기술적인 면과 게임 제작적인 측면 모두 많은 공학과 어려움이 있었습니다.
본 글에서는 앞으로 게임 제작을 해보고 싶은 분이나 개인 개발로 온라인 게임을 만드는 것에 관심 있는 분들을 위해, 저의 경험담을 곁들여 제작 내용을 소개하고자 합니다.
이번에는 이 게임을 제작하는 데 활용했던 Codex나 Cursor 같은 AI 개발 지원 도구에 대해, 제가 사용하는 방법을 소개해 드리겠습니다.
솔직히 말하면, AI가 없었다면 아직 출시하지 못했을 것 같습니다...
제작물 『Caldra』에 대하여 (일부 재게재)
『Caldra』는 2인 대전 카드 배틀 게임입니다.
아키텍처는 아래와 같은 구성으로 되어 있으며, 주로 게임 화면을 담당하는 Unity, 조작 수신 및 게임 관리를 수행하는 Rust의 게임 서버, 세션 관리나 룸 생성 등을 하는 Rust의 로비 서버로 구성됩니다.
이 중에서도 주로 Rust로 작성된 서버 측에서 AI를 활용한 코드 생성을 사용하고 있습니다.

제가 기본적인 지시(프롬프트)를 작성하는 방식은 대략 다음과 같습니다.
[만들고 싶은 것]에 대한 코드를 작성해 주세요
・[목표]를 하고 싶습니다
・[사양1]로 해 주세요
...
'목표'에는 왜 그 처리를 추가하고 싶은지 작성합니다.
예를 들어, 다음과 같은 내용이 있습니다.
- 오류가 발생할 것 같으니 사전에 체크 처리를 추가하고 싶습니다
- 장래에 ○○ 기능을 만들기 위해 지금부터 확장하기 쉬운 형태로 만들고 싶습니다
- 기존 처리와 같은 형식으로 새로운 카드 효과를 추가하고 싶습니다
'사양'이나 '제약'에는 프로그램을 작성할 때 충족되었으면 하는 것, 고려해 주었으면 하는 것을 작성합니다.
예를 들어, 다음과 같은 내용이 있습니다.
- 카드 ○○와 조합했을 때는 ××처럼 작동하는 것이 예상됩니다
- 전장의 유닛 수가 상한을 넘지 않도록 해 주세요
- DB에 저장할 때의 테이블명은 ○○로 해 주세요
- 응답 형식은 기존 △△ API와 같은 형태로 해 주세요
실제 예시로는 다음과 같습니다.
GPT-5 정도의 버전부터 성능이 매우 향상되었고, 최근 AI는 상당히 성능이 좋아져서 생성되는 코드에 명확한 결함이 있는 경우는 줄어들었다고 느낍니다. 특히 인간이 실수하기 쉬운 경계값이나 부등호 방향을 틀리는 같은 사람다운 실수는 거의 하지 않습니다.
AI의 경우, 사람이 예상하는 기능과 다른 형태로 구현해 버리는 '사양 오인(仕様誤認)'이 많은 인상을 받습니다.
사람에게 작업을 부탁했을 경우, 작업에 결함이 있으면 그 결함 부분에 대해 질문해 줄 것이라고 생각합니다. 하지만 AI의 경우는 아무런 지시를 하지 않으면 무언가 알아서 하려는 경향 때문에 프로그램 자체는 작동하지만 스파게티 코드(spaghetti code)가 되거나 예상과 다른 동작으로 구현됩니다.
그 결과, 프로그램으로는 작동하지만 다음과 같은 문제가 발생할 수 있습니다.
- 불필요한 기능이 추가됨
- 과도한 분기문이 늘어나 가독성이 떨어짐
- 언뜻 보기엔 편리해 보이지만 나중에 부채(負債)가 되는 처리가 포함됨
그러한 동작을 하기 때문에, 앞서 예시에서 보여드린 것처럼 사양 1, 사양 2, 제약 조건 등에서 최대한 구속하여 지시하고 있습니다.
또한, 인간의 리뷰도 필수적입니다. 확실하게 리뷰해야 합니다( ᯣωᯣ )
이것은 저에게만 해당되는 사례입니다.
로비 서버 프로그램을 개인적인 학습 차원에서 익숙하지 않은 아키텍처로 AI에게 작성하게 했는데, 결과적으로 제가 그 프로그램을 읽을 수 없게 되었습니다...
Rust도 아직 완전히 숙련된 언어는 아니었고, 게다가 익숙하지 않은 아키텍처를 채택했기 때문에 상당히 감당하기 어려운 상태가 되었습니다. 뭔가 실제 운영 환경에서는 문제없이 작동하지만, 정말로 왜 작동하는지 모르겠습니다.
개인 제작이라 그런 다소 임시적인 운용을 하고 있지만, 업무에서는 절대로 해서는 안 됩니다.
이번에는 Caldra 개발 과정에서 Codex나 Cursor 같은 AI 개발 지원 도구를 어떻게 사용했는지 소개했습니다.
저의 대략적인 감상을 요약하자면 '코드를 작성하는 것은 빠르지만, 리뷰는 필수'라는 위치입니다.
만약 이 글을 읽고 계신 분들 중 아직 사용해 본 적이 없는 분들이 있다면, 꼭 한번 사용해 보시길 바랍니다. 다루기 까다로운 아이이지만 업무 처리 속도는 폭발적입니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기