GGWiki
새 문서
일반/위키

jMonkeyEngine

공식 자료를 바탕으로 AI가 작성한 초안 · 출처 보기

편집 이의 제기 토론 수정 이력 토론에서 언급
jMonkeyEngine 로고
jMonkeyEngine 로고 · 이미지 출처 ↗

개요편집이의 제기

jMonkeyEngine(약칭 JME 또는 jME)은 자바(Java) 프로그래밍 언어로 작성된 오픈 소스 크로스 플랫폼 3D 게임 엔진이다. 2003년 처음 공개되었으며, BSD 라이선스와 zlib 라이선스 하에 배포되는 자유 소프트웨어다[1]. 자바 가상 머신(JVM) 위에서 동작하며, 마이크로소프트 윈도우, 리눅스, macOS, 솔라리스 등 주요 데스크톱 운영체제와 안드로이드, iOS(알파 단계), 라즈베리 파이 등 모바일 및 임베디드 플랫폼을 지원한다[2]. 기본 렌더러로 LWJGL(Lightweight Java Game Library)을 사용하며, JOGL(Java OpenGL) 기반의 대체 렌더러도 지원한다[2]. 엔진 핵심은 라이브러리 모음 형태로 제공되어 저수준 개발 도구에 가깝지만, 공식 SDK(통합 개발 환경)와 결합하면 그래픽 에디터와 플러그인 시스템을 갖춘 고수준 개발 환경이 된다[2].

역사편집이의 제기

개발 배경과 초기 버전(0.1~2.0)

2003년 마크 파월(Mark Powell, 닉네임 MojoMonkey)이 "자바로 완전한 기능을 갖춘 그래픽스 API를 작성할 수 있는가"를 확인하기 위한 사이드 프로젝트로 개발을 시작했다[2]. 초기 API 설계는 데이비드 에벌리(David Eberly)의 C++ 서적인 《3D Game Engine Design》에서 많은 영감을 받았다[2]. 2004년 1월 조슈아 슬랙(Joshua Slack, 닉네임 Renanse)이 합류했고, 이후 2년간 커뮤니티 기여자들의 도움을 받아 상업적으로 이용 가능한 수준의 API로 발전시켰다[2]. 2008년 8월 15일 조슈아 슬랙이 적극적인 개발에서 물러나겠다고 발표하면서 초기 핵심 개발진이 프로젝트를 떠났다[2]. 버전 2.0은 2008년 마지막 릴리스까지 공식 안정 버전으로 나오지 못한 채 커뮤니티에서 가장 인기 있는 버전으로 남았다[2].

버전 3.0으로의 전환

핵심 개발진이 떠난 2008년 말 이후 코드베이스는 수개월간 사실상 정체 상태였다. 커뮤니티가 패치를 계속 커밋했으나 명확한 방향성은 없었다[2]. 버전 3.0 개발은 실험적 시도로 시작되었다. 2009년 4월 1일 키릴 바이나(Kirill Vainer, 닉네임 shadowislord)가 공식 저장소에 새로운 브랜치를 만들고 jMonkeyEngine 3.0의 첫 공개 코드를 커밋했으며, 곧 "test" 상태를 반영해 브랜치 이름이 변경되었다[2]. 2009년 6월 24일 공식 3.0 브랜치에서 프로젝트의 새로운 출발이 있었으며, 초기 설계와 개발은 키릴 바이나가 단독으로 수행했고, 관리 책임은 에를렌드 소게 헤겐(Erlend Sogge Heggen)이 맡았으며 얼마 뒤 스카이 북(Skye Book)이 합류했다[2].

2010년 5월 17일 jMonkeyEngine 3 첫 알파 버전이 출시되었고, 같은 날 jMonkeyEngine SDK 첫 알파 버전도 공개되었다[2]. SDK는 몇 달 전 기획 단계에서 시작되어 빠르게 첫 알파에 도달했으며, 이후 jME3 개발자에게 권장되는 기본 다운로드 제품이 되었다[2]. 2010년 9월 7일 프로젝트 웹사이트가 전면 개편되었고, 새 도메인 jmonkeyengine.org가 프로젝트 및 커뮤니티 활동 전용으로 지정되었으며, 기존 jmonkeyengine.com은 제품 홍보 사이트로 용도가 변경되었다[2]. 2011년 10월 22일 jMonkeyEngine 3 SDK 베타가 출시되었고, 나이트리 빌드 대안으로 안정 업데이트 트랙이 도입되었다[2]. 2014년 2월 15일 jMonkeyEngine 3 SDK 안정 버전이 공식 출시되었다. 기술적으로는 오래전부터 안정적이었으나 공식 3.0 SDK 릴리스는 2014년 2월까지 지연되었다[2].

SDK 지원 변화와 커뮤니티 유지

2016년 3월 5일 핵심 팀이 SDK를 더 이상 공식적으로 지원하지 않겠다고 발표했으나, 커뮤니티가 적극적으로 유지보수를 이어가고 있다[2]. "jMonkeyPlatform"이라는 용어도 jMonkeyEngine 3 SDK와 혼용되어 쓰인다[2]. SDK는 넷빈즈(NetBeans) 플랫폼을 기반으로 하여 그래픽 에디터와 플러그인 기능을 제공하며, 기본 넷빈즈 업데이트 센터 외에 자체 플러그인 저장소와 안정 포인트 릴리스 또는 나이트리 업데이트 선택 기능을 갖춘다[2].

최근 버전 현황

공식 사이트에 따르면 2023년 6월 26일 3.6.1-stable 패치 릴리스가 권장 버전으로 공개되었고[3], 2025년 5월 8일 3.8.0-stable, 2026년 1월 28일 3.9.0-stable이 연이어 출시되었다[3]. 3.10 베타는 플랫폼 백엔드 전면 재작성, iOS 지원 개선, 호환성 및 DPI 처리 향상, 입력 시스템 개선, 조명 및 PBR(물리 기반 렌더링) 동작 개선, 셰이더 이슈 수정, glTF 지원 강화 등을 포함한다[3]. 위키데이터에는 3.2.0부터 3.3.2까지의 판본이 기록되어 있다[1].

Ardor3D 포크

2008년 9월 23일 조슈아 슬랙과 리카르드 헤를리츠(Rikard Herlitz)가 jMonkeyEngine에서 포크해 Ardor3D를 시작했다[2]. 명명, 출처, 라이선스, 커뮤니티 구조 등에서 조정 불가능한 문제가 있다고 판단했고, 기업 지원을 받는 강력한 오픈 소스 자바 엔진을 원했기 때문이다[2]. 첫 공개 릴리스는 2009년 1월 2일 나왔으며, 이후 몇 달 간격으로 새 버전이 나왔다[2]. 2011년에는 NASA 에임스(Ames)와 NASA JPL이 화성 큐리오시티(Curiosity) 미션에서 지형 시각화와 로버 이동 시뮬레이션에 Ardor3D를 사용했다[2]. 2014년 3월 11일 조슈아 슬랙이 프로젝트 포기를 발표했으나, 소프트웨어 자체는 zlib 라이선스 하에 자유롭게 제공되며, 줄리앵 구에스(Julien Gouesse)가 유지하는 "JogAmp's Ardor3D Continuation"이라는 부분 집합이 2014년 기준으로 여전히 활발히 유지되고 있었다[2].

특징과 기능편집이의 제기

렌더링 파이프라인

공식 사이트 설명에 따르면, 단일 안정적인 GLES 3.0 백엔드를 제공하며, 이는 ANGLE을 통해 최신 Vulkan, Metal, DirectX 위에서 동작해 이식성과 테스트 용이성을 높인다[3]. 또한 OpenGL 3.2부터 4.5까지 직접 사용하는 것도 가능하다[3]. GLES 3.0 파이프라인은 데스크톱과 모바일에서 통합된 렌더링 모델을 제공한다[3].

플랫폼 지원

자바 11부터 자바 21까지의 최신 JVM 환경에서 실행되며, Gradle 빌드 시스템과 JVM 도구 생태계를 그대로 활용할 수 있다[3]. 타겟 플랫폼은 윈도우, macOS, 리눅스, 안드로이드, iOS로, x86_64와 ARM64 아키텍처를 모두 지원한다[3]. 라즈베리 파이도 지원 대상에 포함된다[2].

네트워킹

실시간 멀티플레이어 기반으로 TCP, UDP, RPC(원격 프로시저 호출), 동기화 패턴을 제공하며, 게임이 필요로 하는 네트워크 모델을 자유롭게 선택할 수 있는 여지를 둔다[3].

물리 시뮬레이션

강체(Rigid body), 소프트 바디(Soft body), 차량 시뮬레이션을 Bullet, Box2D, Jolt Physics 통합을 통해 지원한다[3].

GUI 시스템

HUD, 메뉴, 디버그 패널, 에디터 인터페이스를 엔진 내부에서 직접 구축할 수 있으며, 내장 GUI 지원(Nifty GUI 등)과 커뮤니티 UI 툴킷을 모두 활용할 수 있다[3].

후처리 및 셰이더

내장 PBR(물리 기반 렌더링), 커스텀 머티리얼 및 셰이더, 블룸(Bloom), FXAA, SSAO, 톤 매핑 등 후처리 효과를 제공하며, 파이프라인을 커스터마이징해 독자적인 룩을 구현할 수 있다[3].

오디오

크로스 플랫폼 위치 기반 3D 오디오를 지원하며, 리스너 상대 사운드, 감쇠(attenuation), 공간 씬 통합 기능을 갖춘다[3].

월드 및 지형

하이트맵 지형, 페이징된 월드, 복셀 환경, 아이소서페이스 기법, 절차적 생성을 씬 그래프 위에서 모두 구현할 수 있다[3].

파티클 시스템

일반적인 효과를 커버하는 내장 파티클 이미터를 제공하며, 커스텀 파티클과 커뮤니티 확장을 위한 개방성을 유지한다[3].

개발 패러다임 유연성

단일 개발 아키텍처를 강제하지 않는다. 씬 그래프 컨트롤(Controls), 앱 스테이트(AppStates), ECS 스타일 시스템, 커스텀 프레임워크, 또는 이들 하이브리드 스택을 자유롭게 조합할 수 있다[3].

VR 및 XR 지원

커뮤니티 툴킷을 통해 헤드셋 상호작용, 핸드 입력, 몰입형 애플리케이션 구조 등을 다루며 VR/XR 프로젝트로 확장 가능하다[3].

엔진 임베딩 및 확장성

자체 앱, 에디터, 툴체인, 엔진의 기반으로 jME를 사용할 수 있으며, GLES/GL 호출과 내부 구조에 접근해 특수 요구사항에 맞게 흐름을 조정할 수 있다[3].

자산 파이프라인

glTF 자산을 블렌더(Blender) 패리티를 목표로 하는 워크플로로 임포트할 수 있어, 머티리얼, 조명 선택, 씬 설정이 예측 가능하게 엔진으로 전송된다[3].

생태계와 라이선스

21년 이상의 개발 역사와 국제적인 전담 커뮤니티가 BSD 라이선스 핵심 주변에 모듈, 라이브러리, 플러그인, 예제, 커뮤니티 프로젝트를 축적해왔다[3]. 라이선스는 BSD-3(허용적 라이선스)로, 상업적 이용과 수정이 자유롭다[1][3].

사용 게임편집이의 제기

자료에 언급된 jMonkeyEngine 기반 게임 및 프로젝트는 다음과 같다[2].

Nord: 스카이고블린(Skygoblin)이 개발한 페이스북 기반 브라우저 MMO(대규모 다중 접속 온라인 게임)

Grappling Hook: 독립 개발자가 만든 1인칭 액션 퍼즐 게임

Drohtin: 실시간 전략 게임(RTS)

Chaos: 4Realms가 개발한 3D 판타지 협동 롤플레잉 게임(RPG)

Skullstone: 블랙 토치 게임즈(Black Torch Games)가 만든 3D 레트로 스타일 싱글 플레이 던전 크롤러

Spoxel: 에파가 게임즈(Epaga Games)가 개발한 2D 액션 어드벤처 샌드박스 게임

Lightspeed Frontier: 크라우드워크 스튜디오(Crowdwork Studios)가 만든 우주 샌드박스 게임으로 RPG, 건설, 탐험 요소를 포함

Subspace Infinity: 2D 탑다운 우주 전투기 MMO

3079, 3089: 프루트 소프트웨어(Phr00t's Software)가 개발한 무작위 생성 오픈 월드 RPG 시리즈

New Star Soccer: 뉴스타 게임즈(New Star Games)가 만든 모바일 축구 게임

평가편집이의 제기

수상 및 인정

2008년 JavaOne 프레젠테이션에서 소개됨[2]

2010년 PacktPub 오픈 소스 그래픽스 소프트웨어 어워드 결선 진출[2]

커뮤니티 중심 개발 모델

공식 사이트는 "JME의 미래는 커뮤니티의 손에 달려 있다. 경험, 자금, 코드, 시간의 기부를 통해 함께 그 미래를 보장할 수 있다"는 메시지를 전면에 내세우고 있다[3]. 182명의 기여자가 깃허브 저장소 전반에 걸쳐 활동 중이며, 49명의 후원자가 오픈컬렉티브(OpenCollective)를 통해 정기 후원하고 있다[3]. 핵심 팀이 2016년 SDK 공식 지원을 중단한 뒤에도 커뮤니티가 SDK를 적극적으로 유지보수하고 있다[2].

상업적·교육적 채택

위키백과 자료에 따르면 여러 상업 게임 스튜디오와 교육 기관에서 사용되고 있다[2]. 공식 사이트 쇼케이스에도 커뮤니티 프로젝트와 실제 게임이 함께 소개되고 있다[3].

기술적 평가 포인트

자바 생태계(JVM 도구, 라이브러리, Gradle 빌드)를 게임 개발에 그대로 가져올 수 있다는 점이 강점으로 꼽힌다[3].

단일 GLES 3.0 파이프라인으로 데스크톱과 모바일을 아우르며, ANGLE을 통해 Vulkan/Metal/DirectX 위에서 동작해 이식성이 높다[3].

SDK가 넷빈즈 플랫폼 기반이라 플러그인 생태계와 그래픽 에디터를 기본 제공하나, 핵심 팀의 공식 지원 중단(2016년) 이후 커뮤니티 유지보수에 의존하는 점은 주의할 부분이다[2].

Ardor3D 포크 사례에서 보듯, 라이선스·거버넌스·명명 이슈가 커뮤니티 분열로 이어질 수 있음을 역사적으로 보여준다[2].

엔진 아키텍처와 설계 철학편집이의 제기

자료에 나타난 jMonkeyEngine의 설계 철학은 "코드 우선(Code-first)", "유연함(Flexible)", "완전한 제어를 원하는 크리에이터를 위해 구축됨(Built for creators who want full control)"으로 요약된다[3]. 엔진은 단일 개발 패러다임을 강제하지 않고, 씬 그래프 기반 컨트롤, 앱 스테이트, ECS 스타일 시스템, 커스텀 프레임워크 등 다양한 아키텍처 패턴을 개발자가 선택·조합할 수 있게 열어둔다[3]. 렌더링 백엔드는 GLES 3.0으로 통일하되, 하위에서는 ANGLE을 통해 Vulkan, Metal, DirectX를 추상화해 플랫폼별 차이를 흡수한다[3]. 자산 파이프라인은 glTF와 블렌더 워크플로를 중심으로 표준화해 예측 가능한 임포트를 지향한다[3].

커뮤니티 및 지원 채널편집이의 제기

공식 사이트는 깃허브(GitHub), 트위터(Twitter), 유튜브(YouTube), 디스코드(Discord) 링크를 제공하며, 깃허브 릴리스 감시, 웹사이트 RSS 구독, 오픈컬렉티브 백커 뉴스레터 구독을 통해 업데이트를 받아볼 수 있도록 안내한다[3]. 공식 머천다이즈 스토어 수익 전액은 프로젝트 메인 펀드에 기부된다[3].

이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.

출처

3개
1Wikidata ↗https://www.wikidata.org/wiki/Q285718
2위키백과 (영어) · JMonkeyEngine ↗https://en.wikipedia.org/wiki/JMonkeyEngine
3공식 사이트 ↗https://jmonkeyengine.org