2026년 최고의 복셀 게임 엔진 — 그리고 설치가 필요 없는 엔진 하나
나만의 복셀 게임 엔진 만들기
복셀 게임 엔진을 비교합니다 — Hytopia, Noa, Luanti, Godot, Unity — 그리고 아무것도 설치하지 않고 걸어 들어갈 수 있는 브라우저 복셀 세계까지.
복셀 게임 엔진은 세 갈래로 나뉩니다. 전용 복셀 엔진, 복셀 계층을 덧붙인 범용 엔진, 그리고 아무것도 설치하지 않고 탭에서 렌더링되는 브라우저 세계입니다. 전용 엔진은 첫날부터 청크 저장, 메시 생성, 빛 전파를 제공하지만 그 주변의 모든 것을 제약합니다. 범용 엔진은 완전한 툴체인을 주는 대신 청크 파이프라인을 숙제로 남깁니다. 브라우저 세계는 설치와 빌드 단계를 통째로 건너뜁니다.
이 페이지는 Hytopia, Noa, Luanti, 복셀 플러그인을 붙인 Godot, 복셀 플러그인을 붙인 Unity를 비교합니다. 각각 실제로 무엇이고, 그 안에서 무엇을 작성하며, 어디서 시간이 소모되는지를 다룹니다. 마지막에는 브라우저 선택지, 즉 설명한 그 순간에 열어서 걸어 다닐 수 있는 세계로 끝맺습니다.
빠른 답변: 어떤 복셀 엔진을 써야 할까요?
Noa나 Luanti 같은 전용 복셀 엔진: 세계 데이터 자체가 결과물이고, 화면에 무언가 보이기 전에 메셔, 청크 스트리머, 플러드 필 라이트 패스를 직접 작성하고 싶지 않을 때 사용합니다.
Godot나 Unity 같은 범용 엔진에 복셀 플러그인: 애니메이션, UI, 물리, 오디오, 입력 매핑, 플랫폼 내보내기가 필요하고, 남의 프레임 루프 안에서 청크 파이프라인을 책임지는 것을 받아들일 때 사용합니다.
설치할 필요가 없는 브라우저 세계, 예컨대 Neta Studio 빌더: 첫 번째 장애물이 다른 사람에게 세계를 보여주는 일이고, 링크가 다운로드와 툴체인과 빌드 단계보다 저렴할 때 사용합니다.
결정적 기준은 무엇이 핵심 경로에 놓여 있느냐입니다. 어려운 부분이 콘텐츠라면 아이디어에서 그 안을 걸어 다니기까지의 거리가 가장 짧은 파이프라인을 고르세요. 어려운 부분이 시뮬레이션이라면, 수천 개의 상호작용하는 블록, 사용자 정의 물리, 결정론적 네트워크 상태라면 프로파일링하고 패치하고 다시 컴파일할 수 있는 툴킷을 고르세요.
엔진 비교
아래 다섯 가지 선택지를 순위가 아니라 성격으로 설명합니다. 모두 복셀을 렌더링합니다. 차이는 무엇을 주고 무엇을 기대하는지에 있습니다.
먼저 언어 열을 읽으세요. 네이티브 빌드 단계 없이 런타임을 얼마나 바꿀 수 있는지를 결정하고, 그것이 새벽 두 시에 어떻게 디버깅할지를 좌우합니다.
Hytopia
Hytopia는 JavaScript와 TypeScript SDK를 갖춘 호스팅 복셀 게임 플랫폼입니다. 세계는 복셀 기반이고 클라이언트는 브라우저에서 실행되며, 멀티플레이어는 따로 추가하는 것이 아니라 플랫폼의 일부입니다. SDK의 엔티티와 플레이어 API에 맞춰 게임 로직을 작성하면 플랫폼이 서버를 처리합니다. 대가는 게임이 그들의 런타임 위에서 산다는 점입니다. 설정하고 스크립트로 작성할 수는 있지만, 엔진의 독립 실행형 바이너리를 배포하지는 않습니다.
Noa
Noa는 Three.js 위에 만들어진 JavaScript 복셀 엔진으로 브라우저를 겨냥합니다. 청크 지형, 메시 생성, 엔티티 시스템, 간단한 충돌과 중력을 처리하며, 나머지는 직접 가져오기를 기대합니다. 렌더링 설정, 입력, 게임 규칙, 네트워킹입니다. API가 처음부터 끝까지 읽을 수 있을 만큼 작다는 것이 진짜 장점입니다. 무언가 이상하게 동작할 때 실패는 블랙박스가 아니라 열어 볼 수 있는 코드 안에 있습니다.
Luanti (이전 이름 Minetest)
이전에 Minetest라 불린 Luanti는 단일 게임이 아니라 오픈 소스 복셀 플랫폼입니다. 엔진은 C++이지만 게임플레이는 Lua로 작성된 게임과 모드로 들어오므로, 다시 컴파일하지 않고도 블록 동작, 제작, 엔티티를 바꿀 수 있습니다. 세계는 16x16x16 맵블록의 노드 격자이고, 서버는 네트워크를 통해 블록을 클라이언트로 스트리밍합니다. 서버를 로컬에서 실행할 수 있고, 같은 서버 코드가 임대 호스트에서도 실행됩니다. active_block_range와 max_block_send_distance 같은 설정이 플레이어가 얼마나 멀리 보는지, 클라이언트가 RAM을 얼마나 쓰는지를 결정합니다.
복셀 플러그인을 붙인 Godot
Godot은 핵심 엔진에 복셀 지형이 없습니다. 직접 추가해야 합니다. 청크 메시를 생성하는 커뮤니티 애드온이거나, ArrayMesh 표면과 충돌 셰이프를 만들어 내는 자체 메셔입니다. Godot은 복셀을 둘러싼 부분, 즉 씬 트리, AnimationPlayer, UI, 물리 바디, 입력, 내보내기 템플릿을 제공하고, 메시 생성 코드를 위해 GDExtension을 통한 GDScript, C#, C++도 제공합니다. 청크 메시 생성은 작업자 스레드나 WorkerThreadPool 작업에 속합니다. 메인 스레드에서 처리하는 것이 플레이어가 청크 경계를 넘을 때 끊김이 생기는 흔한 원인입니다.
복셀 플러그인을 붙인 Unity
Unity는 툴체인이 더 무거운 같은 이야기입니다. 복셀 지형은 플러그인이나 자체 청크 시스템에서 옵니다. 생산적인 경로는 C# Job System의 Burst 컴파일 작업으로, 작업자 스레드에서 메시 데이터를 생성하고 Mesh.SetVertices 같은 호출로 업로드하는 것입니다. 충돌이 반복되는 문제입니다. 청크마다 MeshCollider를 두면 굽는 비용이 비싸므로, 많은 프로젝트가 대신 블록 격자에 대한 복셀 레이캐스트와 AABB 충돌을 작성합니다. 데스크톱과 웹 타깃 전반에서 Unity의 애니메이션, UI, 오디오 믹서, 빌드 파이프라인을 그대로 유지합니다.
| 엔진 | 성격 | 작성 언어 | 실행 방식 |
|---|---|---|---|
| Hytopia | SDK를 갖춘 호스팅 복셀 플랫폼 | TypeScript 또는 JavaScript | 그들의 호스팅 런타임 위의 브라우저 클라이언트 |
| Noa | Three.js 기반 브라우저 복셀 엔진 | JavaScript | 자체 페이지와 자체 서버 |
| Luanti | Lua 게임을 갖춘 오픈 소스 복셀 플랫폼 | 게임과 모드용 Lua | 설치형 클라이언트와 직접 호스팅하는 서버 |
| 복셀 애드온을 붙인 Godot | 복셀 지형을 추가한 범용 엔진 | GDExtension을 통한 GDScript, C#, C++ | 데스크톱 내보내기, 또는 브라우저 빌드를 위한 웹 내보내기 |
| 복셀 플러그인을 붙인 Unity | 복셀 지형을 추가한 범용 엔진 | C#, 메시 생성에는 Burst 작업 | 데스크톱, 콘솔, 또는 WebGL 빌드 |
| Neta Studio 3D 게임 빌더 | 브라우저 세계 빌더 | 일상어 설명 | 브라우저 탭, 설치 없음 |
아무것도 설치하지 않고 복셀 세계 플레이하기
복셀 세계를 만들고 싶은지 결정하는 가장 빠른 방법은 그 안에 서 보는 것입니다. Neta Studio 3D 게임 빌더는 브라우저 탭에서 실행됩니다. 세계, 지형, 분위기, 구조물에 대한 설명을 입력하면 빌더가 WASD와 마우스로 걸어 다닐 수 있는 플레이 가능한 Three.js 장면을 생성합니다. SDK도, 편집기 설치도, 빌드 단계도, 먼저 연결할 에셋 파이프라인도 없습니다.
얻는 세계는 영상이 아니라 실제 지오메트리입니다. 그와 충돌하고, 그 안에서 카메라를 움직이고, 변경을 설명하는 방식으로 바꿉니다. 물을 올리고, 다리를 놓고, 계곡을 넓힌 다음 다시 생성합니다. Agent Sprite Forge는 2D 계층을 담당합니다. 에이전트, 소품, 아이템을 위한 스프라이트를 제공해 장면이 캐릭터 아티스트를 기다리며 멈추지 않습니다. Mini World는 가장 작은 데모이며 노트북에서 첫 목표로 적합합니다. The Cyclops' Island는 더 큰, 직접 제작한 세계이며 지형과 조명이 평평하지 않을 때 장면이 어떤 모습인지 보여줍니다.
이것이 하지 않는 일: 전용 엔진의 블록 수준 스크립팅 API를 제공하지 않고, 스토어용 독립 실행형 실행 파일을 만들어 내지도 않습니다. 파이프라인의 검토와 반복 단계에 해당하며, 다른 사람에게 복셀 세계가 무엇을 뜻하는지 가장 빠르게 보여주는 방법입니다.
01
최신 데스크톱 브라우저에서 빌더를 엽니다. Chrome, Edge, Firefox, Safari 모두 작동합니다. 요구 사항은 WebGL2를 지원하는 GPU이며, 내장 그래픽으로도 데모 세계에는 충분합니다.
02
세계를 설명하는 문장 하나를 작성합니다. 구체적인 명사가 형용사를 이깁니다. 돌탑과 얕은 석호가 있는 안개 낀 소나무 섬은 멋진 섬보다 생성기가 배치할 것이 더 많습니다.
03
생성한 다음 걸어 봅니다. 이동은 WASD와 마우스 시점입니다. 경사 충돌과 물 경계를 먼저 확인하세요. 생성된 지형이 보통 잘못되는 곳이기 때문입니다.
04
개별 블록을 옮기는 대신 변경을 설명해서 편집합니다. 세계가 아직 변하는 중에는 지오메트리를 손으로 배치하는 것보다 재생성이 저렴합니다.
05
얼굴이 필요한 모든 것에 Agent Sprite Forge로 스프라이트를 추가합니다. 에이전트, 소품, 아이템입니다.
06
링크를 공유합니다. 상대방은 아무것도 설치하지 않고 탭을 열어 같은 세계에 들어갑니다.
정말로 중요한 것
네 가지 속성이 3개월쯤 뒤에 복셀 엔진이 쾌적할지 고통스러울지를 결정합니다. 어느 것도 기능 목록에는 나오지 않지만, 모두 투자하기 전에 측정할 수 있습니다.
세계 크기
저장은 저렴하지만 스트리밍은 그렇지 않습니다. 세계는 보통 16x16x16 또는 32x32x32 블록의 청크로 잘리고, 엔진은 그 청크를 일정 반경만큼 상주시킵니다. 메모리는 대략 반경의 세제곱에 비례하므로, 시야 거리를 두 배로 늘리면 메시를 세기 전에 블록 데이터가 약 여덟 배가 됩니다. 좌표도 중요합니다. float32 위치는 원점에서 멀어지면 정밀도를 잃고, 이는 100,000 단위를 훨씬 넘어서면 카메라 흔들림과 z 파이팅으로 나타납니다. 엔진은 이를 원점 재기준화나 카메라 상대 렌더링으로 처리합니다. 대륙을 계획하기 전에 여러분의 엔진이 어느 쪽을 쓰는지 알아보세요.
조명
복셀 조명은 보통 플러드 필입니다. 각 블록은 광량을 저장하고, 햇빛은 불투명 블록에 닿을 때까지 아래로 전파되며, 횃불은 감쇠를 가지며 바깥으로 퍼집니다. 블록당 비용은 저렴하지만 정확하게 유지하는 비용은 비쌉니다. 플레이어가 블록을 놓거나 없애면 그 청크와 이웃의 조명을 다시 계산해야 하고, 이웃 청크를 건너뛰면 밝은 이음매로 경계를 넘어 빛이 새어 나옵니다. 엔진이 조명을 정점 색상에 굽는다면, 편집할 때마다 메시를 다시 굽습니다. 셰이더에서 조명을 계산한다면 유니폼 한계와 추가 드로우 콜로 비용을 치릅니다.
멀티플레이어
복셀 멀티플레이어는 대부분 대역폭 문제입니다. 서버가 권위를 가집니다. 즉 서버가 블록 격자를 보유하고 클라이언트는 위치가 아니라 의도를 보냅니다. 델타로 이동하는 것은 편집뿐이고, 관심 반경 안의 청크만 전송되므로 트래픽은 세계 크기가 아니라 플레이어 수 곱하기 시야 반경에 비례합니다. 두 클라이언트가 같은 틱에 같은 블록을 파는 경우는 답을 정의해야 하는 실제 사례입니다. 고른 엔진에 네트워킹이 없다면 관심 시스템, 델타 형식, 클라이언트 예측을 직접 작성하는 것입니다. 그것은 기능이 아니라 프로젝트입니다.
브라우저에서 실행
브라우저 타깃은 설치 단계를 없애는데, 누군가에게 세계를 시험해 보라고 할 때 가장 큰 이탈 지점입니다. 대가는 더 작은 예산입니다. WebGL2 드로우 콜, SharedArrayBuffer를 위한 교차 출처 격리를 설정하지 않는 한 하나의 메인 JavaScript 스레드, 모든 에셋의 다운로드 크기입니다. WebGPU는 최신 데스크톱 브라우저에 있지만 일관되지는 않으므로 WebGL2 폴백이 여전히 일반적인 관행입니다. 세계가 탭에서 실행되면 메시지로 보낼 수 있습니다. 런처가 필요하면 그럴 수 없습니다.
복셀 샌드박스 대 복셀 엔진
복셀 샌드박스는 우연히 블록으로 만들어진 완성된 게임입니다. 다운로드해서 플레이하면 블록 팔레트는 개발자가 배포한 그대로입니다. 복셀 엔진은 툴킷입니다. 청크 저장, 메시 생성, 렌더러, 그리고 그것에 맞춰 작성하는 API입니다. 검색 결과가 둘 다에 같은 단어를 쓰기 때문에 이 구분이 중요합니다.
페이지에서의 신호입니다. 런처와 스크린샷 갤러리가 있으면 샌드박스입니다. API 레퍼런스, 클래스 이름, 설치할 패키지가 있으면 엔진입니다. 블록 유형이 등록하는 런타임 객체가 아니라 편집하는 데이터 파일이라면, 제품이 어느 계층에 사는지 알려줍니다. 내보내기나 독립 실행형 빌드 경로가 있으면 툴킷을 사는 것입니다. 게시하는 유일한 방법이 그들의 플랫폼 안이라면, 그것을 빌리는 것입니다.
하이브리드는 흔하며 짚어 둘 가치가 있습니다. Luanti는 플랫폼입니다. 엔진은 툴킷이고, 배포된 게임은 그 위에 만들어진 샌드박스이며, 어느 계층에서 일할지 스스로 고릅니다. Hytopia는 SDK이자 호스팅 런타임이라, 남의 서버에서 실행되는 엔진 수준 코드를 작성합니다. 브라우저 빌더는 콘텐츠 쪽 극단에 있어 시스템이 아니라 세계를 만들어 냅니다. 기능 목록을 비교하기 전에 어느 계층을 소유하고 싶은지 정하세요. 좋은 편집기가 있는 샌드박스는 API가 있는 엔진을 대신하지 못하기 때문입니다.
그것이 속한 세계로 걸어 들어가기
스프라이트는 설 자리가 없는 캐릭터입니다. 마지막 단계는 아무도 제공하지 않는 것입니다. 방금 만든 시트를 누군가 걸어 다닐 수 있는 세계에 넣으세요. 작은 섬, 행성, 비 내리는 길모퉁이입니다. 이 사이트의 모든 세계는 하나의 글로 된 설명에서 만들어졌고, 플레이할 수 있는 페이지로 게시되었습니다.
FAQ
브라우저에서 복셀 게임을 만들 수 있나요? +
네. 메시 생성, 충돌, 플러드 필 조명을 갖춘 청크 복셀 세계는 탭의 WebGL2에서 실행되고, Three.js가 렌더링 쪽을 담당합니다. Noa와 Hytopia 모두 브라우저를 겨냥하며, Neta Studio 빌더는 아무것도 설치하지 않고 걸어 다닐 수 있는 블록으로 만든 세계를 생성합니다. 제약은 드로우 콜, 하나의 메인 JavaScript 스레드, 에셋 다운로드 크기입니다.
Godot은 복셀에 좋은가요? +
Godot은 복셀 주변의 모든 것에 강하고 복셀 자체에는 중립적입니다. 내장 복셀 지형이 없으므로 커뮤니티 애드온이나 자체 코드로 청크 시스템, 메셔, 충돌을 추가하고, 스트리밍이 프레임을 멈추지 않도록 작업자 스레드에서 메시를 생성합니다. 이미 Godot을 안다면 합리적인 거래입니다. 모른다면 엔진을 배우면서 동시에 복셀 계층을 작성하는 것입니다.
Luanti는 무료인가요? +
네. 이전에 Minetest라 불린 프로젝트 Luanti는 무료이자 오픈 소스이며, 유료 등급도 없고 플레이하거나 호스팅하는 데 계정도 필요하지 않습니다. 자체 컴퓨터나 임대 호스트에서 서버를 실행할 수 있고, 그 위의 게임과 모드는 Lua로 작성되므로 엔진을 다시 빌드하지 않고 게임플레이를 바꿀 수 있습니다.
복셀 엔진을 만들려면 C++가 필요한가요? +
보통은 아닙니다. Hytopia는 JavaScript와 TypeScript, Noa는 JavaScript, Luanti 게임플레이는 Lua, Godot은 GDScript와 C#, Unity는 C#입니다. C++를 찾게 되는 것은 엔진 코어를 바꾸거나 Godot GDExtension 모듈이나 Unity 네이티브 플러그인 같은 네이티브 확장을 작성할 때입니다. 메시 생성 알고리즘은 어느 쪽이든 같습니다.
복셀이란 무엇인가요? +
복셀은 정수 좌표로 주소가 지정되는 규칙적인 3차원 격자 위의 값이며, 렌더링하는 정육면체가 아닙니다. 보이는 블록은 복셀의 연속에서 생성된 메시입니다. 메셔가 격자를 훑으며 빈 공간에 닿는 면만 방출하고, 그리디 메싱은 같은 블록 유형의 동일 평면 면을 더 큰 사각형으로 병합합니다. 저장은 격자이고, 보이는 정육면체는 렌더링 결정입니다.
복셀 게임에서 멀티플레이어는 어떻게 작동하나요? +
서버가 권위 있는 블록 격자를 보유하고 클라이언트는 위치가 아니라 의도를 보냅니다. 델타로 이동하는 것은 편집뿐이고, 서버는 각 플레이어 주변의 관심 반경 안에 있는 청크를 스트리밍하므로 대역폭은 세계 크기가 아니라 플레이어 수 곱하기 시야 반경에 비례합니다. 클라이언트 측 예측은 이동의 왕복 지연을 숨기고, 서버는 두 플레이어가 같은 틱에 같은 블록을 편집하는 경우를 해결합니다.
복셀 성능 문제를 실제로 일으키는 원인은 무엇인가요? +
세 가지이며 순서대로입니다. 메인 스레드에서의 메시 생성, 너무 많은 드로우 콜, 콜라이더 굽기입니다. 작업자에서 청크 메시를 생성해 완성된 버퍼를 업로드하고, 블록마다 객체 하나가 아니라 청크마다 메시 하나를 유지하며, 카메라 절두체에 대해 청크를 컬링합니다. 물리 쪽에서는 청크마다 메시 콜라이더를 두는 것이 블록 격자에 대한 레이캐스트와 AABB 테스트보다 훨씬 비쌉니다.
브라우저에서 만든 세계를 내보낼 수 있나요? +
Neta Studio 빌더는 세계를 탭에서 실행하므로 공유는 링크이고 상대방은 설치할 필요가 없습니다. 독립 실행형 바이너리 내보내기 파이프라인은 아니므로, 다운로드 가능한 빌드나 콘솔 패키지가 필요하다면 자체 복셀 계층을 갖춘 Godot나 Unity가 필요합니다. 많은 팀이 브라우저에서 배치를 프로토타이핑하고, 세계가 더 이상 변하지 않으면 엔진에서 다시 만듭니다.
3D 게임 빌더로 돌아가기
완성된 3D 세계, 게임, 장면 31개가 모두 한 페이지에 있으며, 그중 하나하나를 플레이할 수 있습니다.