[태그:] 게임개발

  • 인디 게임 개발 입문: Unity·Godot 엔진 선택부터 스팀 출시 비용까지

    인디 게임 개발 입문: Unity·Godot 엔진 선택부터 스팀 출시 비용까지

    《스타듀밸리》는 혼자 만들었다. 개발자 ConcernedApe 단독으로, 4년 걸려서, 2,000만 장. 대형 게임사가 수백 명을 굴려도 내기 어려운 숫자다. 대형 IP가 방치되고 속편이 밀리는 사이, 팬 출신 개발자들이 직접 만든 인디 게임이 시장을 뒤집고 있다.

    “나도 한번 만들어볼까?” 이 생각, 한 번쯤 해봤을 거다. 실제로 지금이 시작하기 나쁜 타이밍이 아니다. 툴은 거의 무료고, 배울 자료는 유튜브에 넘쳐나고, 스팀이 전 세계 판로를 열어두고 있다.

    진입 장벽이 낮아진 건 진짜다

    10년 전 게임 엔진 라이선스비는 수백만 원이었다. 지금은 얘기가 다르다.

    • Unity: 매출 10만 달러 이하 개발사엔 무료
    • Godot: 완전 오픈소스, 상업적 이용 100% 무료
    • Unreal Engine: 출시 후 매출 100만 달러까지 로열티 0%

    언어 장벽도 낮아졌다. Unity는 C#, Godot는 Python과 닮은 GDScript를 쓴다. 프로그래밍을 처음 배우는 사람도 유튜브 튜토리얼 몇 편이면 6시간 안에 첫 프로토타입이 나오는 환경이다. 아트 에셋도 마찬가지다. Itch.io, OpenGameArt에서 무료 픽셀 아트와 사운드 팩을 구할 수 있고, Kenney.nl은 수천 개 에셋을 돈 한 푼 없이 풀어놨다.

    Unity vs Godot vs Unreal — 뭘 골라야 하나

    세 엔진의 성격은 완전히 다르다.

    Unity는 인디 씬에서 압도적으로 많이 쓰인다. 레퍼런스가 방대하고, 에셋 스토어도 잘 갖춰져 있다. 2D, 3D 둘 다 무난하게 커버한다. 단, 2023년에 논란이 된 런타임 수수료 정책처럼 회사 방침이 예고 없이 바뀔 수 있다는 게 약점이다. 이건 솔직히 좀 리스크다.

    Unreal Engine은 그래픽 퀄리티 하나는 압도적이다. AAA급 비주얼을 원하는 팀에게 딱 맞지만, 진입 난도가 높고 저사양 PC에서는 에디터 자체가 버벅인다. 1인 개발자보단 소규모 팀에 어울린다.

    Godot는 요즘 가장 빠르게 성장하는 엔진이다. 오픈소스라 개발사 정책에 흔들릴 일이 없다. 2D 게임에 강하고, 가벼워서 오래된 PC에서도 잘 돌아간다. Unity 수수료 논란 이후 커뮤니티가 급성장하면서 튜토리얼도 빠르게 쌓이고 있다.

    처음 시작한다면 Godot, 취업이나 팀 프로젝트를 생각한다면 Unity, 3D 블록버스터가 목표라면 Unreal이 맞다.

    첫 게임은 무조건 작게

    인디 개발자 99%가 첫 프로젝트에서 저지르는 실수. 스케일을 너무 크게 잡는 거다. “오픈 월드 RPG”, “멀티플레이 배틀로얄”—이런 아이디어로 시작하면 6개월 안에 번아웃이 온다. 경험자들이 입을 모아 하는 말이다.

    첫 게임의 조건은 이렇다:

    • 완성까지 2~4주 안에 끝낼 수 있는 규모
    • 핵심 메커닉 하나만 — 점프, 총쏘기, 퍼즐 중 하나
    • 스테이지 3개 이하

    《플래피버드》는 메커닉이 단 하나였다. 그게 전 세계를 강타했다. 단순함이 곧 완성 가능성이다. 첫 게임을 Itch.io에 무료로 올려보는 것도 해볼 만하다. 실제 유저 피드백을 받아본 경험이 다음 프로젝트의 질을 완전히 바꿔 놓는다.

    혼자 채우기 어려운 세 가지: 아트, 음악, 번역

    코드는 혼자 할 수 있어도, 아트와 음악은 다른 문제다. 선택지는 세 가지다.

    • 직접 배우기: 픽셀 아트는 진입 장벽이 낮은 편이다. Aseprite 같은 툴로 한 달이면 기본기가 붙는다. 음악은 LMMS나 BeepBox 같은 무료 DAW로 시작된다.
    • 에셋 활용: Itch.io 에셋 팩, Kenney.nl을 적극 활용한다. 출시 전 라이선스 조건은 꼼꼼히 확인해야 한다. 나중에 분쟁이 생기면 답이 없다.
    • 협업: Reddit r/gamedev, Discord 인디 게임 서버에는 파트너를 찾는 아티스트가 꽤 많다. 수익 분배는 구두로만 정하면 안 된다. 간단한 계약서라도 챙겨야 한다.

    번역(로컬라이제이션)은 의외로 판매량을 크게 좌우한다. 한국어, 일본어, 중국어 지원만 추가해도 아시아 시장 접근성이 확 올라간다. 초기에는 DeepL + 커뮤니티 번역가 모집으로 저비용 대응이 된다.

    스팀 출시까지 실제 비용과 시간

    비용:

    • 스팀 등록비(Steam Direct): 약 $100 — 매출 $1,000 달성 시 환급
    • Itch.io: 무료, 수수료 자율 설정 (보통 0~30%)
    • 앱스토어(iOS/Android): 각각 연 $99, 일회성 $25

    시간:

    • 프로토타입 → 알파 빌드: 1~3개월 (1인 단순 게임 기준)
    • 알파 → 출시 빌드: 추가 3~12개월 (버그 수정, 콘텐츠 추가, 마케팅)

    스팀 출시 전에는 위시리스트 캠페인을 반드시 돌려야 한다. 출시 당일 위시리스트 전환율이 초기 매출을 결정짓는다. 개발 6개월 전쯤 스팀 페이지를 열고 트레일러 하나를 올려두는 것만으로도 위시리스트 수천 개를 모을 수 있다.

    게임 완성하고도 안 팔리는 이유

    완성은 했는데 안 팔리는 경우가 많다. 이유는 대부분 마케팅 부재다.

    출시 당일 스팀 페이지를 처음 여는 것. 이게 가장 치명적인 실수다. 스팀 알고리즘은 출시 직후 트래픽 폭발에 반응한다. 위시리스트 없이 출시하면 노출을 거의 안 준다.

    • 장르 과포화 진입: 뱀파이어 서바이버류 게임이 수천 개 쏟아진 뒤, 차별화 없이 들어가면 그냥 묻힌다
    • 스크린샷·트레일러 품질 저조: 스팀에서 처음 보는 건 이미지다. 게임 자체보다 마케팅 자료가 먼저 판단받는다
    • 피드백 무시: 얼리 액세스로 유저 반응을 보면서 개선하는 팀의 생존율이 훨씬 높다

    스팀 말고 수익 채널을 나눠라

    스팀이 메인이지만, 그것만이 답은 아니다.

    • Itch.io: 인디 씬의 실험적 게임 허브. Humble Bundle 같은 번들 행사에 포함되면 순식간에 수만 명에게 노출된다
    • 킥스타터/텀블벅: 개발 전 자금 모집. 목표 금액을 보수적으로 잡고 마케팅 에너지를 집중하는 것이 열쇠다
    • 모바일: 캐주얼 게임은 여전히 모바일이 맞다. 다만 광고 수익 모델은 갈수록 경쟁이 치열해지고 있다
    • 콘솔 포팅: 닌텐도 스위치는 인디 친화적이기로 유명하다. 스팀에서 검증된 게임을 콘솔로 넘기는 전략이 잘 먹힌다

    수익보다 목표를 먼저 잡아야 한다. “취미로 게임 하나 완성해보고 싶다”와 “인디 게임으로 먹고살고 싶다”는 전략 자체가 다르다.

    결국 인디 게임 개발을 가르는 건 특별한 재능보다 지속력이다. 엔진 고르고, 작은 게임 하나 완성하고, 출시 경험 쌓는 루프를 몇 번 돌고 나면 — 실제로 팔리는 게임을 만들 수 있는 위치에 서게 된다. 대형 게임사가 안 만들어줘서 직접 만들기 시작한 팬 개발자들처럼, 가장 강력한 동기는 자기가 하고 싶은 게임을 직접 만드는 것이다.

    출처: The Verge

  • 슈퍼마리오가 NP-hard 문제라고? P vs NP와 알고리즘 복잡도 제대로 이해하기

    슈퍼마리오가 NP-hard 문제라고? P vs NP와 알고리즘 복잡도 제대로 이해하기

    슈퍼마리오 레벨을 클리어하는 게 수학적으로 NP-hard 문제와 동치라는 논문이 있다. MIT를 비롯한 여러 대학 연구자들이 실제로 증명해냈다. 황당하다고 느끼는 게 정상이다. 근데 이 발견이 컴퓨터 과학에서 수십 년째 아무도 못 풀고 있는 최대 난제와 직결된다. P vs NP 문제다.

    복잡도란 ‘어려움의 등급’이다

    컴퓨터 과학에서 ‘복잡도(complexity)’는 코드가 복잡하냐의 문제가 아니다. 입력 크기가 커질수록 시간과 자원이 얼마나 빠르게 늘어나는지를 보는 개념이다.

    100개짜리 리스트를 정렬하는 건 빠르다. 그 알고리즘으로 1,000,000개를 정렬하면? 성능 차이가 선형적(O(n))이냐 기하급수적(O(2^n))이냐에 따라 실제로 쓸 수 있는 알고리즘인지 아닌지가 완전히 갈린다. 이론이 아니라 현실 얘기다.

    여기서 두 클래스가 나온다.

    • P (Polynomial time): 다항식 시간 안에 풀 수 있는 문제. 컴퓨터가 빠르게 답을 낸다.
    • NP (Nondeterministic Polynomial time): 답이 주어지면 다항식 시간에 검증은 되는데, 직접 푸는 건 아직 느린 문제들.

    핵심 질문이 바로 이거다. P = NP인가? 즉, “답 확인이 빠른 모든 문제는 풀기도 빠른가?” 아직 아무도 모른다. 밀레니엄 수학 7대 난제 중 하나고, 증명하면 상금이 100만 달러다. 수십 년째 빈 봉투다.

    NP-hard, 이게 가장 무거운 등급이다

    NP-hard는 NP에 속하는 모든 문제보다 최소한 같거나 더 어려운 문제들을 묶은 클래스다. 교과서에 단골로 나오는 예시가 셋 있다.

    • 외판원 문제(Travelling Salesman Problem): n개 도시를 전부 한 번씩 방문하는 최단 경로 찾기
    • 배낭 문제(Knapsack Problem): 무게 제한이 있는 배낭에 가치 합계를 최대로 담는 물건 선택
    • SAT 문제: 논리식을 참으로 만드는 변수 조합 찾기

    공통점은 하나다. 입력이 조금만 커지면 완전 탐색(brute force)으로는 우주 나이보다 오래 걸린다. 그래서 실전에서는 근사 알고리즘이나 휴리스틱으로 버틴다. 완벽한 답이 아니라 “충분히 괜찮은 답”을 구하는 방식이다.

    슈퍼마리오가 NP-hard인 이유

    MIT를 비롯한 여러 대학 컴퓨터 과학자들이 슈퍼마리오 브라더스 레벨 클리어 가능성 판단 문제가 NP-hard임을 수학적으로 증명했다. 접근법이 꽤 기발하다. 레벨을 논리 회로로 변환하는 방식이다.

    마리오가 특정 경로를 지나는지 여부를 AND 게이트, OR 게이트처럼 표현하는 구조가 성립한다. 파이프, 적, 블록의 배치가 논리 연산을 수행하도록 설계되면, 그 레벨을 클리어하는 방법을 찾는 게 SAT 문제를 푸는 것과 구조적으로 같아진다. 솔직히 처음 이 논문을 봤을 때 “이게 진짜 연구야?” 싶었는데, 엄연한 수학적 증명이다.

    결국 임의의 슈퍼마리오 레벨이 클리어 가능한지 판단하는 알고리즘은 이론상 NP-hard다. 사람은 직관과 경험으로 빠르게 풀어내는 것처럼 보이지만, 컴퓨터가 보편적으로 처리하기엔 구조 자체가 극도로 어렵다. 마리오만이 아니다. 테트리스, 포켓몬, 젤다의 전설 시리즈도 같은 분석을 받았다.

    그래서 현실에서 뭐가 달라지나

    “게임이 NP-hard면 나한테 무슨 상관이야”라고 생각할 수 있다. 생각보다 파장이 있다. 세 가지만 짚는다.

    첫째, AI 게임 플레이어 개발 난이도를 설명해준다. 구글 딥마인드가 알파고로 바둑을 정복했지만, 슈퍼마리오처럼 복잡한 레벨 구조의 게임에서 AI가 고전하는 이유 중 하나가 이 계산 복잡도 구조다. 모든 경우를 탐색할 수 없으니, 강화학습으로 근사치를 찾는 방식을 쓸 수밖에 없다.

    둘째, 레벨 디자인 자동화에 이론적 한계가 있다. AI로 게임 레벨을 자동 생성하는 기술이 발전하고 있지만, 최적 레벨인지 검증하는 것 자체가 NP-hard다. 완전 자동화에는 벽이 있다는 뜻이다. 이건 좀 아이러니하다 — 만들 수는 있어도 최적인지 확인하기가 더 어렵다.

    셋째, 알고리즘 교육에서 강력한 도구가 된다. 추상적인 P/NP 개념을 게임으로 설명하면 체감 속도가 다르다. 코딩 교육에서 게임 기반 학습 효과가 꾸준히 연구로 나오는 것도 이 맥락이다.

    P vs NP를 파고 싶다면, 이 순서로

    흥미가 생겼다면 진입 경로가 몇 가지 있다. 수준별로 골라도 된다.

    • 《Introduction to the Theory of Computation》 by Michael Sipser — 계산 이론의 교과서. 복잡도 이론을 처음부터 체계적으로 다룬다.
    • Scott Aaronson의 블로그 ‘Shtetl-Optimized’ — MIT 교수가 직접 운영하며, 계산 복잡도를 일반인도 따라갈 수 있게 풀어쓴다.
    • Coursera의 ‘Algorithms’ 시리즈(Stanford) — Tim Roughgarden 교수 강의로, 복잡도 이론 파트가 포함돼 있다.
    • 코딩테스트 플랫폼(BOJ, LeetCode) — NP-hard 문제를 직접 근사적으로 풀어보는 게 체감상 가장 빠르다. 이론보다 손이 먼저다.

    수학 배경이 없어도 개념 이해는 된다. 증명까지 파고들려면 이산수학과 집합론 기초가 있으면 좋지만, “왜 어떤 문제는 컴퓨터로도 빠르게 못 푸는가”라는 감을 잡는 데는 진입 장벽이 높지 않다. 일단 시작해보면 안다.

    게임 속에 수학이 숨어 있었다

    어린 시절 거실에서 조이스틱을 잡으며 무의식적으로 다루던 구조 속에, 수십 년째 전 세계 수학자들이 매달려 있는 문제가 숨어 있었다. 이상한 얘기 같지만 사실이다.

    P vs NP 문제가 풀리지 않는 한, 슈퍼마리오 레벨 클리어 가능성을 판단하는 알고리즘은 이론상 완벽하게 효율적일 수 없다. 그 사실이 오히려 게임을 더 흥미로운 연구 대상으로 만든다. 컴퓨터 과학의 핵심 개념들이 게임, 퍼즐, 일상 문제에서 영감을 받아 발전해 온 건 우연이 아니다. 좋은 문제는 늘 의외의 곳에 있었다.

    출처: MIT Tech Review AI