
코딩은 결국 주어진 도구를 활용해 문제를 해결하는 작업입니다. 물론 그 해결 과정에서 새로운 문제가 생기고, 또 그것을 해결해야 하죠. 이는 사실 대부분의 비디오 게임의 기본 원리와도 같아서, 코딩과 게임은 자연스럽게 만나게 됩니다. 게다가 두꺼운 공식 문서를 읽는 것보다 직접 플레이하며 배우는 것이 훨씬 즐겁다는 점도 큰 장점입니다.
이번에 소개할 코딩 게임들은 다양한 프로그래밍 언어, 연령대, 난이도를 아우릅니다. 완전한 초보자든 한 단계 더 성장하고 싶은 학습자든, '직접 해보며 배우는' 가장 효과적인 방법으로 코딩을 익히는 데 도움이 되는 게임이 여기에 있습니다.
1. Code Combat
Code Combat은 중세 판타지 RPG 형식으로 포장된 코딩 강의입니다. 변수, 메서드, 객체 등 프로그래밍의 핵심 개념에 자연스럽게 익숙해지도록 설계되어 있죠. 기초 내용을 꽤 흥미롭게 유지하지만, 게임성 자체는 특별하다고 말하기는 어렵습니다. 레벨을 건너뛸 수 없고, 게임에서 배우는 내용과 실무 적용 사이에는 다소 간극이 존재합니다.
초급 프로그래밍 강좌보다 덜 지루하게 코딩에 첫발을 내딛고 싶다면 Code Combat이 좋은 선택입니다. 반면 이미 프로그래밍 경험이 있다면, 새로운 개념을 만나기 위해 초반 레벨을 반복해서 클리어하는 과정이 지루하게 느껴질 수 있습니다. 실무 개발 스킬 습득보다는 '프로그래머처럼 생각하는' 마인드를 기르는 데 더 적합한 게임입니다.

추천 대상: 초보자, 어린이
지원 언어: Python, JavaScript, HTML, CSS
2. Ruby Warrior
루비가 요즘 가장 주목받는 언어는 아니지만, 그래도 이 게임은 한 번쯤 시도해볼 가치가 있습니다. Ruby Warrior는 2D 횡스크롤 게임으로, 루비 코드와 일반적인 프로그래밍 로직을 사용해 캐릭터를 조작합니다. 별도의 설명 없이 바로 게임에 던져져 진행하면서 배우게 되는데, 정보 전달력, 단순함, 재미 모두 훌륭한 수준입니다. 루비를 꼭 배워야 하는 상황이 아니더라도, 귀엽고 도전적인 매력을 지닌 게임이라 충분히 즐길 수 있습니다.

추천 대상: 초중급자
지원 언어: Ruby on Rails
3. CodinGame
CodinGame은 알고리즘과 코드 기반 문제 해결에 초점을 맞춘 퍼즐 모음집이라 할 수 있습니다. 재미 요소도 분명 존재하지만(퍼즐마다 편차는 있지만), 몇몇 챌린지를 풀다 보면 머리에 김이 오를 정도로 까다롭습니다. 복잡한 사고력과 상당한 프로그래밍 전문성이 필요한 문제들이 많습니다.
다양한 언어와 난이도를 폭넓게 다루지만, 초보자가 시작하기에는 적합하지 않습니다. 쉬운 난이도의 문제조차 코드와 알고리즘적 사고에 대한 기본적인 이해를 전제로 하기 때문입니다.

추천 대상: 중급~고급 개발자
지원 언어: C, C#, C++, Java, JavaScript, Python3, Bash, Go, Ruby, Rust, Swift, PHP 등
4. CodeGym
CodeGym은 엄밀히 말하면 게임이라기보다 강좌에 가깝지만, 꽤 탄탄한 스토리 요소가 포함되어 있습니다. 목표는 스토리 기반 챌린지와 프로젝트를 통해 거의 제로 상태에서 주니어 자바 개발자 수준까지 끌어올리는 것입니다. IntelliJ IDE(통합 개발 환경) 안에서 진행되기 때문에, 앞으로 실무에서 사용하게 될 개발 도구에 대한 좋은 입문 경험이 됩니다. 일부 콘텐츠는 유료지만, 무료로 제공되는 부분만으로도 이 강좌가 자신의 자바 학습 여정에 맞는지 충분히 가늠해볼 수 있습니다.

추천 대상: 초보자 + α
지원 언어: Java
5. CheckiO
CheckiO의 '게임' 요소는 사실 코딩 챌린지와 학습 자료 위에 얹힌 얇은 껍데기에 가깝습니다. 처음 플레이하다 보면 "잠깐, 게임은 언제 시작되지?"라는 생각이 들 정도죠. 그래도 어느 정도 코딩 지식이 있는 사람에게는 챌린지들이 분명 도움이 되고, 여러 코딩 섬을 오가며 미션을 수행하는 컨셉이 학습 경험에 색채를 더해줍니다.

추천 대상: Python 또는 JavaScript 학습자
지원 언어: Python, JavaScript
6. Elevator Saga
JavaScript를 어느 정도 알고 있고, 실력을 유지하며 갈고닦을 흥미로운 문제를 찾고 있다면 Elevator Saga가 딱 맞습니다. 컨셉은 단순합니다. 엘리베이터가 층을 이동하고 사람을 태우고 내리는 규칙을 코드로 작성하는 것입니다. 하지만 레벨이 올라갈수록 금방 복잡해지기 때문에, 몇 번 포기했다가 다시 돌아오게 될지도 모릅니다.

추천 대상: JavaScript 연습
지원 언어: JavaScript
7. Untrusted
Untrusted는 JavaScript ES5 기준으로 만들어진 게임이지만, 중급~고급 자바스크립트 실력을 활용하기에 여전히 훌륭한 선택입니다. 텍스트 어드벤처 형식으로, 당신을 가둔 적들이 사용하는 코드를 직접 수정해 위기를 헤쳐나가야 하는 스토리가 전개됩니다. 코드가 스토리의 자연스러운 일부가 되는 재치 있는 설정이 인상적입니다. 초보자에게는 적합하지 않고 최신 자바스크립트 문법을 가르쳐주지는 않지만, 도전할 가치가 충분한 재미있는 게임입니다.

추천 대상: JavaScript 연습
지원 언어: JavaScript
그 외 추천 리소스
위 목록에는 오르지 못했지만 소개할 가치가 있는 사이트들도 있습니다. 게임성이 부족하거나, 코딩을 직접 가르치지 않거나, 유료이거나, 어린 학습자 대상이거나, 고수들을 위한 곳들이지만 여전히 살펴볼 만합니다.
- Screeps
- CodeWars
- Edabit
- Schemaverse
- Robocode
- VIM Adventures
- CryptoZombies
- CodeMonkey
- TIS-100
- Hack 'n' Slash
- Cyber-Dojo
다만 이런 코딩 게임들이 해줄 수 있는 것은 어디까지나 연습입니다. 결국 진정한 코더가 되려면 직접 나가서 자신만의 프로젝트를 만들어야 합니다. CodinGame이나 Codewars 같은 사이트는 실력을 유지하고 성장시키는 데 도움이 되지만, 기본 문법을 익힌 후에는 점점 더 큰 프로젝트를 만들어가는 것이 가장 확실한 학습 방법입니다.