BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
Unity의 친숙한 워크플로우, C++20의 압도적인 네이티브 속도. Jolt Physics, URP PBR, C# 핫 리로드 탑재.
Translation pending
GamesC++ · C#GitHub @PinTreesOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
C++20 3D game engine with a Unity-style editor — DirectX 11 / OpenGL 4.5, C# scripting, Jolt physics, PBR, terrain and particles. 유니티 스타일 에디터를 갖춘 C++ 게임 엔진
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Unity 6 에디터를 그대로 옮겨 온 C++20 게임 엔진 DirectX 11 · OpenGL 4.5 · Vulkan 1.3 · 안드로이드 (OpenGL ES 3.2) · C# 스크립팅 Claude(Opus 5.5)와 함께 기능 하나하나를 Unity 와 1:1 에 가깝게 만들어 가는 프로젝트 밤 캠프장 데모 — Visual Effect Graph (포털 · 마법진 · 불꽃놀이 · 은하) · 절차적 나무 · HDR Bloom, 실시간 렌더 • Unity 그대로 — 창 배치 · Inspector · 단축키 · 동작, C# API (using UnityEngine; → using NovaEngine;), 저장하면 핫 리로드 • 세 그래픽 API + 안드로이드 — 같은 렌더 코드, HLSL 하나 → GLSL · SPIR-V 자동 변환. PC 는 DX11 · OpenGL · Vulkan, 안드로이드는 GLES 3.2 APK • 수식으로 만드는 월드 — 지형 생성기 · 바이옴 · 나무 · 숲 · 바위 · 풀 · 바다 · 강, 텍스처 파일 없이 • 터미널 · AI 가 다루는 에디터 — nova CLI 로 만들고 · 바꾸고 · Play 하고 · 찍고 · 잰다Read the full README ↗
using UnityEngine; → using NovaEngine;), 저장하면 핫 리로드nova CLI 로 만들고 · 바꾸고 · Play 하고 · 찍고 · 잰다. 기능마다 자동 검사 스위트에디터
| 에디터 · Hub | Unity 6 도킹 레이아웃, 창을 OS 창으로 빼기, Undo, 자동 저장 + 충돌 복구, NOVA Hub (프로젝트 · 설치 · 안드로이드 모듈) — NOVA_HUB |
| 씬 · 뷰 | Scene 뷰 핸들 · 스냅 · 비행 카메라, Game 뷰 해상도 · Stats, Hierarchy · Inspector · 프리팹 (Apply / Revert / Unpack) |
| 에셋 | Project 창 (2단), Import Settings (.meta — 텍스처 압축 · 모델 Humanoid · 오디오 Load Type), 모델 끌어 놓기 → 노드마다 GameObject — MODEL_PLACEMENT |
| 도구 | Profiler (CPU · GPU · Timeline · Memory), NOVA Code (내장 C# IDE — 자동 완성 · 오류 밑줄), Animator 창 |
렌더링
| 그래픽 API | DirectX 11 · DirectX 12 (명시적 API — 명령 목록 · 디스크립터 힙 · 리소스 상태 장벽) · OpenGL 4.5 · Vulkan 1.3 (에디터 · 게임 모두, 화소 차이 최대 1) — DIRECTX12_BACKEND · VULKAN_BACKEND |
| 재질 · 셰이더 | URP Lit (PBR), 테셀레이션 높이 변위 (Height Map 만큼 벽 · 바닥 · 지형 레이어를 실제로 민다, Shader Graph Displacement, 먼 곳 · 테셀레이션 없는 기기는 POM — DX11 · OpenGL · Vulkan), Shader Graph (노드 65 종 · Vertex 단계 · Sub Graph · Custom Function) — TESSELLATION · SHADER_GRAPH |
| 조명 | Cascaded 그림자, SSGI (HDRP Screen Space Global Illumination — 굽기 없는 실시간 간접광, SSGI), 면광 (HDRP 식 실시간 Rectangle · Disc, LTC), Adaptive Probe Volume (굽지 않는 실시간 간접광), Reflection Probe, 높이 안개 · 대기 · Local Volumetric Fog (늪 · 동굴 안개 — 노이즈 · 해 · 점광 산란) — AREA_LIGHT · FOG_VOLUME · APV · Probe |
| 렌더 파이프라인 | Rendering Path (URP 처럼 Forward · Forward+ · Deferred — G-버퍼 + 클러스터 조명) — DEFERRED_RENDERING, (클러스터 조명 — 한 화면 빛 1024 개) — , (패스 노드 · 쓰이지 않는 패스 빼기 · 임시 텍스처 풀 · Render Graph Viewer) — , (DX12 · Vulkan 두 번째 큐 — VFX 시뮬레이션이 그래픽과 겹쳐 돈다) — , (보이는 128² 페이지만 GPU 로 — 피드백 · 페이지 표 · 캐시) — , 로드맵 — |
엔진 코어 · 성능 (숫자는 개발 PC 에서 잰 값 — 도시 장면은 오브젝트 2852 개)
| 동시성 | Job System (작업 훔치기 · 파이버 · 무잠금 큐 — 물리 · 컬링 · 클러스터 · 백그라운드 일이 그 위에서), 물리 ↔ 렌더링 겹치기 (Simulate During Rendering, 핑퐁 버퍼), 렌더 스레드 (Multithreaded Rendering — DX11 은 deferred context, DX12 · Vulkan 은 큐 제출 · Present 를 렌더 스레드로. 도시 Vulkan 8.9 → 5.4 ms) — JOB_SYSTEM · ASYNC_PHYSICS · RENDER_THREAD · 로드맵 |
| 메모리 | Linear · Stack · Pool · Buddy 알로케이터, 씬마다 힙 (씬을 지우면 한 덩어리로 돌려준다 — 씬 전환 단편화 0, 누수는 꼬리표로 보고), 프레임 아레나, 캐시 라인 (64 B) 정렬 · 거짓 공유 방지 (4 배) — MEMORY_ALLOCATORS |
| 데이터 지향 | Transform SoA (늦은 계산 · 프레임마다 Job System 으로 한 번에), 컬링 (바뀐 렌더러만 · 옥트리 칸 재사용 · SIMD 4 개씩 절두체 검사) — 큐브 2 만 개를 모두 움직이는 프레임 64 → 30 ms (Debug) — TRANSFORM_SOA, 그리기 준비 (씬 순회 대신 등록 목록 · 모션 벡터는 월드 번호 — 도시 DX12 CPU 7.2 → 4.5 ms) — RENDER_THREAD, 물리 동기화 (물리 번호 · 월드 번호로 바뀐 바디만, 새 바디는 한 번에 넣기, 스트리밍 중 형상 미리 — 도시 물리 프레임당 0.52 → 0.035 ms) — PHYSICS_SYNC |
| 씬 스트리밍 | LoadSceneAsync — 새 씬을 프레임마다 예산 (backgroundLoadingPriority) 만큼 꺼진 채 미리 짓고, Humanoid 아바타 · 나무 메시 · 텍스처 디코드는 작업 스레드. 도시를 바꿔 끼우는 프레임 86 → 11 ms (Release) — |
이펙트
| Visual Effect Graph | GPU 파티클 수십만 개 (compute) — 블록 18 종, GPU Event, 연산 노드 ~55 종 (Compare · Branch 포함) · Sub Graph (연산 · 블록) · 사용자 속성, Output Mesh (모델 파일도), 깊이 버퍼 · SDF 충돌, 꼬리 (Particle Strip), GPU 정렬, 화면 밖 컬링, 견본 11 개, VFX Assistant (로컬 Claude Code 와 대화로 이펙트 만들기) — VFX_GRAPH |
| Particle System | Unity Shuriken 모듈 (Sub Emitters · Trails · Collision · Noise …), Lit · Soft · Lights |
월드 제작
| 지형 | 쿼드트리 LOD, 브러시, 레이어 칠하기, 지형 생성기 (노이즈 → 스탬프 → 침식), 바이옴 10 종, 스플라인 (길 · 협곡), 바이옴에 맞는 사진 지형 재질 · 강한 테셀레이션 |
| 지형 그래프 · 열린 월드 | Terrain Graph (Gaea 식 노드 38 종 — 산맥 · 침식 · 강 · 길 · 호수 · 절벽 디테일), 50 × 50 km 월드 (1 km 타일 스트리밍, 먼 타일 묶기), PCG (규칙 그래프로 숲 · 초원 · 바위를 채우고, 규칙을 고치면 바로 다시) — TERRAIN_GRAPH · PCG |
| 레벨 블록아웃 | 기본 패키지 Prototype (1 m 격자 텍스처 흰색 ~ 어두운 회색 · 벽 · 창 · 문 · 아치 · 지붕 · 탑 · 성벽 조각 57 개), World Space UV (늘려도 격자 1 m), Prototype Shape (크기를 숫자로 — 계단 단 높이 고정 · 아치 벽 · 원호 벽), Spline Instantiate (성벽 · 길은 곡선을 따라 휘고, 울타리 · 판자는 반복), Scene 뷰 치수 — PROTOTYPE · SPLINE |
| 식생 · 바위 | 절차적 식생 160 종 · 기후대 13 (나무 · 야자 · 대나무 · 선인장 · 고사리 · 꽃 — 모델 · 텍스처 파일 없이, 바람), 숲 (인스턴싱 + 임포스터), 빽빽한 풀밭 (정점 셰이더가 만드는 풀잎, 길 · 강은 비움), 바위 · 절벽 (SDF + 사진 재질) — VEGETATION |
| 건물 | Building Generator (패키지) — 중세 판타지 · 북유럽 · 로마 · 고딕 · 바로크 등 양식 25 개, 단계 대화상자 편집기, 곡선 지붕 · 모서리 탑 · 내민 창 · 반목조, 사진 PBR 텍스처 팩 (ambientCG CC0 146 재질) — BUILDING |
| 물 | Water Body — 바다 (Gerstner) · 호수 · 강 (급류), 굴절 · SSR · 코스틱 · 수중 · Buoyancy |
게임플레이
| 입력 | Unity 의 Input System 그대로 — .inputactions (Unity 파일을 그대로 읽는다) · 동작 (Value · Button · Pass Through) · 합성 (WASD) · 데드존 · Hold · Tap, XInput 게임패드 (진동), PlayerInput (Send Messages · 스킴 자동 전환), 다시 묶기 + 저장, Input Actions 창 · Generate C# Class, InputSystem.actions, Cursor.lockState, nova input (AI 가 Play 를 시험) — INPUT_SYSTEM |
| C# 고성능 | Unity 의 Burst 경로 그대로 — NovaEngine.Mathematics (float3 · quaternion · math) · NovaEngine.Collections (NativeArray · NativeList · NativeHashMap · 안전 검사 · 누수 알림), C# Job System (IJobParallelFor · JobHandle · 의존성 · ParallelWriter — 12 스레드 9 배), [BurstCompile] (HPC# 분석기 · IL → C++ → MSVC 네이티브 DLL — 단순 고리 16 배), IJobParallelForTransform · RaycastCommand · Mesh.MeshData — MATHEMATICS_COLLECTIONS · CSHARP_JOBS · BURST · CSHARP_MESH |
| C# | Unity 와 같은 MonoBehaviour API, 코루틴, 재질 · Renderer (material · MaterialPropertyBlock · sortingOrder), 씬 Additive · LoadSceneAsync · DontDestroyOnLoad, PlayerPrefs, ScriptableObject 데이터 에셋 ([CreateAssetMenu] · Resources.Load · 배열 · List<T> · [Serializable] 필드) — MATERIAL_SCRIPTING · · |
패키지 (Window > Package Manager — 넣은 것만 불러오고 빌드에 포함) — PACKAGES
| 패키지 | 내용 |
|---|---|
com.nova.animation | Animator (레이어 · Avatar Mask · 애니메이션 이벤트 · Animator IK) · Two Bone IK Constraint · Legs / Hands / Look Animator · Dynamic Bone · Expressions — ANIMATOR |
com.nova.timeline | Timeline — .playable 에셋 · Playable Director · Timeline 창 (트랙 · 클립 끌기 · 재생 헤드 미리 보기) — TIMELINE |
com.nova.building · com.nova.textures | 건물 생성기 (양식 25 · 단계 편집기 · CLI) + 텍스처 팩 (CC0 사진 PBR 재질, WebP → BC 압축, nova textures search) — BUILDING |
com.nova.cameras | Cinemachine (Unity Cinemachine 3 이름): 가상 카메라 여럿 · Brain 의 Priority · 섞기 (Ease In Out · Cut · Custom Blends), Follow · Orbital Follow (FreeLook) · Third Person Follow · Rotation Composer, Perlin 흔들림 · Impulse — CINEMACHINE |
com.nova.cameras · com.nova.starter-assets | Follow Camera · Third Person Controller (WASD · 달리기 · 점프) · 운전할 수 있는 차 (프리팹) · 맞으면 래그돌로 쓰러지는 표적 — STARTER_ASSETS |
com.nova.ai.navigation | Recast · Detour — NavMesh Surface · Agent · Link · Obstacle (Carve), 탑다운 2D (XY 평면 — NAVIGATION_2D.md) |
com.nova.weather | 오픈 월드 날씨 — 비 · 눈 (카메라를 따라가는 GPU 입자), 젖은 표면 · 웅덩이 · 빗방울 물결 (캐릭터 · 물도), 쌓이는 눈 · 발자국 (지형은 실제로 파인다), 지붕 아래는 마른다, 먹구름 · 안개 · 돌풍, 번개 + 천둥, 소리 — |
NOVA CLI — 실행 중인 에디터를 명령으로 (창 포커스 없이, Undo 로 남음). AI 에이전트는 nova ai-guide 부터 — NOVA_CLI
nova open D:\NovaProjects\MyGame --background # 뒤에서 에디터 열기
nova create cube --name Box --position 0,1,0 # terrain · tree · ocean · visual-effect · character …
nova set Box --scale 2,1,2 MeshRenderer.castShadows=1
nova play && nova wait 120 && nova screenshot box.png --view game
nova perf --frames 240 # 프레임 · CPU · GPU 단계별
nova exec "GameObject.Find(\"Box\").transform.position"
| VFX Graph 창 · 연산 노드 | Shader Graph (용암 Voronoi) |
| 숲 1500 그루 (LOD · 임포스터) | 바다 · 해안 · 호수 · 강 |
| Adaptive Probe Volume (실시간 간접광) | Screen Space Reflection |
| Depth of Field — Bokeh | Decal Projector |
| GPU 오클루전 컬링 — DX11 · GL · Vulkan | 지형 생성기 · 바이옴 |
| Model Editor (패키지) | 2D Animator (패키지) |
| AI Navigation — NavMesh Link · Obstacle | Profiler |
| Terrain Graph — 50 km 침식 · 강 · 길 | PCG — 규칙으로 채우는 열린 월드 |
| Building Generator (패키지) | 군중 1 만 명 |
| Cinemachine (패키지) | Render Scale — FSR 1.0 업스케일 |
더 많은 그림: 공식 사이트 갤러리
바로 쓰기: 최신 릴리스 zip → Binaries\NovaEngine.exe (Windows 10 / 11 x64).
직접 빌드: Visual Studio 2022+ (C++ 데스크톱 워크로드), .NET SDK 8+ (C# 스크립트용). 외부 라이브러리는 저장소에 포함.
build.bat :: Debug x64
build.bat release :: Release (성능 측정 · 게임 빌드용)
| 실행 | |
|---|---|
NovaEngine.exe | NOVA Hub (프로젝트 · 설치) |
NovaEngine.exe --project "<폴더>" | 에디터로 열기 (-force-d3d11 · -force-d3d12 · -force-opengl · -force-vulkan) |
게임 빌드: File > Build Settings (Ctrl+Shift+B) → 씬 추가 → Windows / Android / Web → Build And Run.
배포 zip: Tools\package_release.ps1. 자동 검사: Tools\tests\run_tests.ps1 [-Only vfx,render …] (실행 중인 에디터를 CLI 로 확인, 결과 TestResults\).
using NovaEngine;
public class Spinner : MonoBehaviour
{
[Range(0, 360)] public float speed = 90f;
void Update() => transform.Rotate(0, speed * Time.deltaTime, 0);
void OnCollisionEnter(Collision c) => Debug.Log($"hit {c.gameObject.name}");
}
단축키는 Unity 와 같습니다 (QWERTY 도구 · F 포커스 · Ctrl+P Play · Ctrl+S 저장 · Ctrl+D 복제 …).
| docs/ | 기능별 문서 (VFX Graph · Shader Graph · 안드로이드 · Vulkan · DirectX 12 · 오클루전 · 렌더 스레드 · 씬 스트리밍 · 패키지 · CLI …) |
| docs/ENGINE_ROADMAP.md | 앞으로 할 일 — Godot 4.7 기능 목록과 대조한 분야별 표, 단계 P0 ~ P3 |
| AGENT_HANDOFF.md | 구조 · 구현 설명 · 규칙 · 자체 검사 |
| 공식 사이트 | 소개 · 갤러리 · 다운로드 |
Dear ImGui · imgui-node-editor · Jolt Physics · Box2D v3 · Assimp · DirectXTex · Effects11 · DXC · SPIRV-Cross · nlohmann/json · stb_vorbis · dr_mp3 · Recast & Detour · FastLZ · meshoptimizer · libwebp · astc-encoder · AMD FidelityFX FSR 1.0 (MIT) · lilToon (MIT, © lilxyzw — Packages/com.nova.toon/LICENSE-lilToon.txt) · Pretendard ·
그림 속 캐릭터: Seed-san © VirtualCast, Inc. (VRM Public License 1.0), VRoid AvatarSample_A · B (pixiv Inc.) — 모델 파일은 저장소에 없음 (테스트 프로젝트에만).
기본 스카이박스: Poly Haven CC0 HDRI. 텍스처 팩 재질: ambientCG CC0. 에디터 아이콘 · 효과음은 Tools/ 스크립트로 직접 만든 것 (Unity 에셋 사용 안 함).
| 후처리 (Volume) | Bloom · ACES · Color Adjustments · Depth of Field (Bokeh) · Motion Blur · SSR · SSAO · Motion Vectors · Vignette · Film Grain — DoF · SSR · SSAO · Motion Vectors. Rendering Debugger (깊이 · 노멀 · AO · 모션 벡터 · APV 보기) — RENDERING_DEBUGGER |
| 안티에일리어싱 · 해상도 | FXAA · SMAA · TAA (URP 카메라 4 가지) — ANTI_ALIASING, Render Scale + 업스케일 (Bilinear · Nearest · AMD FSR 1.0 EASU + RCAS — 절반 해상도로 그려도 경계가 또렷, UI 는 출력 해상도) — RENDER_SCALE |
| 성능 | GPU 오클루전 컬링 (굽기 없는 Hi-Z), LOD Group (Cross Fade), GPU 인스턴싱 + MaterialPropertyBlock, 자동 묶기, 셰이더 캐시 — OCCLUSION · LOD |
| 기타 | Decal Projector, Line · Trail Renderer, 2D Sprite Renderer (Sorting Layer · 시트 자르기), 2D 빛 (Light 2D · Shadow Caster 2D · 노멀 맵), Culling Mask — DECAL · LINE · LIGHT_2D |
| 물리 | Jolt (Rigidbody · Collider · Character Controller · Joint · Character · Configurable Joint · 래그돌 — RAGDOLL · 차량 Wheel Collider — WHEEL_COLLIDER · 천 Cloth (치마 · 망토 같은 캐릭터 옷도) — CLOTH), 2D 물리 Box2D (Collider 2D · Joint 2D), 레이어 충돌 행렬 — JOINTS_2D |
| 애니메이션 | Animator (Blend Tree · 루트 모션 · Humanoid 리타게팅 · 레이어 + Avatar Mask (걸으며 상체만 휘두르기) · Additive · 애니메이션 이벤트 (타격 프레임 · 발소리) · Animator IK (OnAnimatorIK · SetIKPosition · SetLookAtPosition) · Two Bone IK Constraint), BlendShape · VRM 표정, 발 · 손 · 시선 IK, Dynamic Bone — ANIMATOR |
| 시네마틱 | Timeline (패키지) — Animation · Activation · Audio · Signal · Cinemachine 트랙, Playable Director, 재생 헤드를 끌면 편집 중 미리 보기 — TIMELINE |
| 군중 | 애니메이션 캐릭터 1 만 명 — Auto LOD · 본 줄이기 · GPU 스키닝 인스턴싱 · 임포스터가 설정 없이 — CROWD |
| UI · 오디오 | UGUI + TextMeshPro 통합 (SDF), 자동 레이아웃, World Space Canvas · XAudio2, 3D 사운드, Audio Mixer (리버브 19 종), OGG · MP3 |
| 빌드 | Windows .exe · 안드로이드 APK / AAB (ASTC · ETC2, C# Mono, 터치, 서명 키) — ANDROID · 웹 (WebGPU) (WGSL, C# = .NET 웹어셈블리, Build And Run 미리 보기 서버) — WEB |
com.nova.daynight | 낮 · 밤 순환 — 새벽 · 아침 · 낮 · 저녁 · 노을 · 밤 · 은하수, Directional Light 가 해 · 달로 돈다, 하늘 그라데이션 · 노을 빛 · 별 · 은하수, 빛 · 환경광 · 안개 색 (날씨와 함께) — DAY_NIGHT |
com.nova.modeling | Blender 식 Model Editor (Extrude · Bevel · Subsurf · 리깅 · 가중치 붓 · 셰이프 키), FBX · GLB · VRM 내보내기, 전부 CLI — MODEL_EDITOR |
com.nova.animation2d | Spine 식 2D 뼈대 애니메이션 — ANIMATION2D |
com.nova.tween | 트윈 (DOTween 같은 쓰임) — transform.DOMove(p, 1f).SetEase(Ease.OutBack), Sequence, 곡선 30 종, 반복 · Yoyo, 튀기기 · 흔들기 · 뛰기, UI · 빛 · 카메라 · 소리, 코드 없는 Tween Animation 컴포넌트 — TWEEN |
com.nova.tilemap | Unity 식 2D Tilemap — Grid · Tilemap · Tile Palette (붓 · 상자 · 흘려 채우기), 맞닿은 칸을 합치는 Tilemap Collider 2D — TILEMAP |
com.nova.toon | lilToon 툰 셰이더 (VRM MToon 자동 변환) |