Dragon Ruby를 활용한 Ruby 게임 개발: 웹을 넘어 게임의 세계로

Julian Cheal - Make a Massively Multiplayer Ruby Game with Dragon Ruby

작성자
Friendly rb
발행일
2025년 07월 01일

핵심 요약

  • 1 Dragon Ruby는 Ruby 개발자들이 익숙한 Ruby 언어로 2D 게임을 개발할 수 있도록 지원하는 전문 게임 엔진입니다.
  • 2 이 엔진은 Windows, Mac, Linux, 웹, 주요 게임 콘솔 및 모바일 등 광범위한 플랫폼에 배포 가능하며, 실시간 코드 변경 반영(Live Reloading) 기능을 제공하여 신속한 개발을 가능하게 합니다.
  • 3 강연자는 간단한 캐릭터 움직임부터 맵 통합, 충돌 감지, 애니메이션, 그리고 다중 사용자 게임 시도까지 Dragon Ruby를 활용한 다양한 게임 개발 과정을 시연하며 그 잠재력을 보여주었습니다.

도입

Julian은 영국 출신의 Ruby 개발자로, 음악 제작, 요리, 자선 단체 활동 등 다양한 이력을 가지고 있습니다. 본 강연에서는 Ruby 개발자들이 게임 개발에 직면하는 어려움을 해결하고, Ruby 언어로도 전문적인 게임을 만들 수 있음을 보여주기 위해 Dragon Ruby 게임 엔진을 소개합니다. 기존의 주요 게임 엔진들이 Ruby 개발자들에게 익숙하지 않은 언어(C++, C#, GDScript, Lua)를 요구하거나 복잡한 라이선스 정책을 가지고 있다는 점을 지적하며, Ruby 기반 게임 개발의 필요성을 강조합니다.

기존 게임 엔진의 한계

  • Unreal: 3D 게임에 탁월하지만 C++ 또는 비주얼 스크립팅 언어를 요구하며, 2D 개발에는 제한적입니다. 수익 발생 시 라이선스 비용이 발생합니다.
  • Unity: 3D 및 2D 게임에 모두 사용되지만 C#을 사용해야 하며, 라이선스 정책이 변경되어 비용 부담이 커졌습니다.
  • Godot: 오픈 소스 엔진으로 3D 및 2D를 지원하지만 GDScript(JavaScript 유사), C, C++를 사용해야 하며, 콘솔 배포에 추가 비용이 발생합니다.
  • Love2D: 2D 전용 엔진으로 Lua를 사용하지만, Ruby와 유사하면서도 다른 문법으로 인해 Ruby 개발자들에게는 완전히 만족스럽지 않을 수 있습니다.

Dragon Ruby: Ruby 개발자를 위한 해결책

  • Ruby 기반: Dragon Ruby는 mRuby(임베디드 Ruby) 기반으로, Ruby 개발자들이 익숙한 Ruby 언어로 게임을 만들 수 있게 합니다.
  • SDL 활용: 하위 레벨에서는 SDL(Simple DirectMedia Layer)이라는 C 라이브러리를 사용하여 그래픽, 오디오, 입력 등을 처리하며, 개발자는 이를 직접 다룰 필요 없이 Ruby로 모든 것을 제어할 수 있습니다. Valve의 Steam 클라이언트에서도 SDL을 사용하는 등 업계 표준으로 인정받는 기술입니다.
  • 광범위한 플랫폼 지원: Windows, Mac, Linux, 웹(WASM 컴파일), PlayStation, Xbox, Nintendo Switch, Steam Deck, VR, iOS, Android 등 거의 모든 주요 플랫폼에 배포할 수 있습니다.
  • 신속한 개발 환경: Rails 앱과 달리 코드를 컴파일할 필요 없이 실시간으로 변경 사항이 게임에 반영되는 Live Reloading 기능을 제공하여 개발 속도를 크게 향상시킵니다.
  • 성능: 초당 60프레임(FPS)으로 실행되어 2D 게임에 충분한 성능을 제공합니다. 셰이더(Shader)를 활용한 고급 그래픽 처리도 가능합니다.
  • 라이선스: 유료 프레임워크이지만, 강연 참가자들에게는 표준 에디션 무료 라이선스를 제공했습니다.

Dragon Ruby를 활용한 게임 개발 시연

  • Flappy Dragon: Dragon Ruby의 ‘Hello World’ 격인 게임으로, 간단한 코드 수정으로 게임 로직을 변경하는 Live Reloading 기능을 시연했습니다.
  • 셰이더 데모: 물결 효과 등 셰이더를 활용한 고급 그래픽 효과를 Ruby 코드와 함께 보여주었습니다.
  • 단계별 게임 만들기: 기본 캐릭터 스프라이트 그리기 및 화면에 표시, 키보드 입력에 따른 캐릭터 이동, 이동 방향에 따른 스프라이트 변경 (애니메이션), Tiled 맵 에디터로 만든 맵 통합 및 카메라 팔로우 기능, 맵 오브젝트와의 충돌 감지, Stardew Valley와 유사한 식물 심기 기능 추가 등의 과정을 거쳤습니다.
  • Friendly Pong: 두 명의 자원봉사자와 함께 만든 2인용 퐁 게임을 시연하며, Ruby로 멀티플레이어 게임을 만드는 가능성을 보여주었습니다.
  • MMO (Gem Collector) 시도: Rails API와 AnyCable(웹소켓)을 사용하여 대규모 멀티플레이어 온라인 게임을 시연하려 했으나, 현장 Wi-Fi 문제로 인해 완벽한 시연에는 실패했습니다. 하지만 Ruby 기반 게임과 Rails 백엔드 간의 연동 가능성을 제시했습니다.

유용한 개발 도구

  • Tiled: 맵 생성을 위한 오픈 소스 소프트웨어.
  • Aseprite: 2D 픽셀 아트 제작 도구.
  • Itch.io: 게임 퍼블리싱 및 무료/유료 아트워크/에셋 제공 웹사이트.

결론

Julian은 Dragon Ruby가 Ruby 개발자들이 웹 애플리케이션을 넘어 게임 개발 분야로 확장할 수 있는 강력한 도구임을 성공적으로 보여주었습니다. 특히 Ruby 언어의 친숙함, Live Reloading을 통한 빠른 개발 주기, 그리고 광범위한 플랫폼 지원은 Dragon Ruby의 큰 장점입니다. 비록 MMO 시연이 기술적 문제로 완벽하지는 않았으나, Ruby를 활용한 복잡한 게임 시스템 구축의 잠재력을 충분히 입증했습니다. 이 강연은 Ruby 개발자들에게 게임 개발이라는 새로운 영역에 도전할 수 있는 영감과 실질적인 방법을 제공하며, Dragon Ruby의 활성화를 기대하게 합니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!