크라우니엔진 + CrownyReal — 0 의존성 게임/3D/CAD 엔진
소프트웨어 GPU 렌더러 — Metal/DirectX 완전 대체. 7단계 파이프라인, 4상 가시성, 내장 셰이더 7종.
Metal 대체DirectX 대체4상 FSM크로스플랫폼HTML/React 없는 자체 UI 프레임워크. 11종 위젯, 한선씨 마크업. 0 의존성.
UI한선씨 마크업0 dep한국어 프로그래밍 → ARM64 JIT 실행. KPS → ISA729 → ARM64 기계어. Mach-O 바이너리 생성.
JITARM64Mach-O삼진 가상머신. 43 opcodes. RPN 스택 + 레지스터 하이브리드. 디스어셈블러 포함.
VM삼진▲■▼삼각형 래스터라이제이션, Z-버퍼, Blinn-Phong 조명, 텍스처 매핑. GPU 없이도 3D.
3DZ-buffer텍스처생활 시뮬레이션 게임. NPC 20명, 4가지 뷰 모드 (2D/2.5D/3D/GPU). 한글 완전 지원.
게임NPC 20명한글# CrownyEngine으로 새 게임 프로젝트 만들기
crowny new 나의게임
cd 나의게임
cargo run
# 자동 생성:
# src/main.rs ← CrownyReal GPU 3D 게임 템플릿
# assets/maps/main.crs ← 씬 파일
# scripts/시작.kps ← 한선씨 스크립트
# 생활 시뮬레이션
cargo run -p crowny-world # 2D (설정→타이틀→게임)
cargo run -p crowny-world -- world3d # 3D 마을 (하이트맵+NPC+낮밤)
# 레이싱
cargo run -p crowny-world -- race # 오벌 트랙
cargo run -p crowny-world -- race 2 # S자 트랙
cargo run -p crowny-world -- race 3 # 8자 트랙
# 게임 내 F1=2D, F2=2.5D, F3=3D, F4=CrownyReal GPU
# 한국어 프로그래밍
crowny repl # 대화형 모드
crowny run 안녕.kps # 스크립트 실행
crowny build 게임.kps -o 게임 # ARM64 바이너리 컴파일
crowny teach # 5단계 튜토리얼
크라우니월드 (게임)
↓
CrownyEngine (엔진 — 씬, AI, 물리, UI, 오디오)
↓
CrownyReal GPU (Metal/DirectX 대체 — 소프트웨어 렌더러)
↓
한선씨 컴파일러 → ISA729 VM → ARM64 JIT
↓
CrownyOS (bare-metal) 또는 macOS/Linux
Apple Metal / Microsoft DirectX 12를 대체하는 소프트웨어 GPU 렌더러. 크라우니 패밀리 병렬 엔진 표준.
| 단계 | 기능 | Metal 대응 | DirectX 대응 |
|---|---|---|---|
| 1. 텍스처 | UV 보간 (perspective-correct), Nearest/Bilinear, 밉맵 자동 생성 | MTLTexture + Sampler | SRV + Sampler |
| 2. 조명 | Blinn-Phong, 방향광/포인트/스팟, 다중 광원, per-pixel 법선 | Fragment Shader (사용자 구현) | Pixel Shader (사용자 구현) |
| 3. 블렌딩 | Opaque/Alpha/Additive/Multiply, 알파 테스트, 깊이 정렬 | MTLBlendState | D3D12_BLEND_DESC |
| 4. 섀도우 | 라이트 깊이 맵, PCF 소프트 섀도우, 설정 가능 바이어스 | Shadow Map Pass (사용자 구현) | Shadow Map Pass (사용자 구현) |
| 5. 멀티패스 | 오프스크린 렌더 타겟, Bloom/Blur/ColorGrade/Vignette | MTLRenderPassDescriptor | RTV Descriptors |
| 6. 셰이더 | Standard/Toon/Water/Fire/RimLight/Hologram/Custom, per-object | MSL (Metal Shading Language) | HLSL |
| 7. 컬링 | 4상 절두체 컬링, LOD, 백페이스 컬링, near-plane 클리핑 | 사용자 구현 | 사용자 구현 |
| 항목 | CrownyReal | Metal | DirectX 12 |
|---|---|---|---|
| 삼각형 래스터라이즈 | 내장 | GPU 하드웨어 | GPU 하드웨어 |
| Perspective-correct 보간 | 1/w 보정 | 하드웨어 | 하드웨어 |
| 내장 조명 (Blinn-Phong) | 3종 광원 내장 | 사용자 구현 필요 | 사용자 구현 필요 |
| 내장 셰이더 7종 | Toon/Water/Fire 등 | 직접 MSL 작성 | 직접 HLSL 작성 |
| 내장 포스트FX 4종 | Bloom/Blur 등 | 직접 구현 | 직접 구현 |
| 4상 가시성 FSM | 팝인 방지 고유 기술 | 없음 | 없음 |
| 외부 의존성 | 0개 | Xcode/Metal.framework | Windows SDK |
| 크로스플랫폼 | 전 플랫폼 | macOS/iOS만 | Windows만 |
| GPU 하드웨어 필요 | 불필요 (CPU) | 필요 | 필요 |
| 셰이더 컴파일 | 불필요 (내장) | MSL 런타임 컴파일 | HLSL/DXC 컴파일 |
| 텍스처 필터링 | Nearest/Bilinear/밉맵 | +Trilinear/Aniso | +Trilinear/Aniso |
| 레이 트레이싱 | 미지원 | Metal 3 | DXR |
| 컴퓨트 셰이더 | 미지원 | 지원 | 지원 |
| MSAA | 미지원 | 2x/4x/8x | 2x/4x/8x |
| 멀티스레딩 | 싱글스레드 | 병렬 인코딩 | 병렬 커맨드 |
// 게임 코드는 trait만 사용 — 백엔드 무관
let mut gpu: Box<dyn GpuRenderer> = Box::new(CrownyReal::new(800, 600, GpuBackend::Software));
gpu.set_camera(cam_pos, cam_target, fov);
let mesh = gpu.add_mesh(Mesh::cube());
let toon = gpu.add_shader(CrShader::Toon { levels: 3 });
let obj = gpu.add_object("플레이어", transform, Color::RED, mesh);
gpu.bind_shader(obj, toon);
gpu.render();
// 16개 trait 메서드: set_camera, clear, add_object, set_transform,
// bind_texture, bind_shader, remove_object, add_texture, add_shader,
// add_light, clear_lights, add_mesh, render, apply_post_effect,
// enable_shadows, stats
Unaware → (보임) → Unconfirmed → (보임) → Confirmed
↑ ↓ ↓
└── (안 보임) ──── (안 보임) ← Misunderstood ← (안 보임)
Metal/DirectX에 없는 CrownyReal 고유 기술:
- Confirmed에서 한 프레임 안 보여도 바로 끄지 않음 (팝인 방지)
- LOD 레벨 자동 결정 (Confirmed=0, Unconfirmed=1, Unaware=2)
- 4상균형3진 아키텍처와 통합
| 카테고리 | 모듈 |
|---|---|
| 렌더링 | renderer, render3d, lighting, particle, postfx, nine_slice, isometric, display, camera |
| GPU | crowny_real (CrownyReal v1.0 — 7단계 파이프라인) |
| 레이싱 | vehicle (물리/드리프트/아이템/AI), racing (3D 트랙/카메라/HUD) |
| 물리 | physics (AABB+원형+트리거+레이캐스트), pathfind (A*) |
| AI | ai, btree, npc_brain, anim_fsm |
| 스크립트 | kps, hanseon, compiler, vm, jit, native, macho, typeck, selfhost |
| UI | ui (CrownyFrame), dialog_ui, game_ui, scroll, font, hangul |
| 게임 | scene, scene_mgr, prefab, autotile, economy, quest, dialog, activity, building, crafting, collection, status, minigame, save, undo |
| 에셋 | sprite, asset, audio, audio_out, modding, layered_sprite |
| 시스템 | types, event, input, game_loop, world_time, sync, editor_bridge, console, hotreload, i18n, platform, sequencer, datatable, math3d, math3d_kps, shop_ui, decorate |
| 상태 | 값 | 렌더링 | AI | UI |
|---|---|---|---|---|
| 확정 Confirmed | +2 | 풀 디테일 | 정확히 앎 | Active |
| 미확인 Unconfirmed | 0 | 중간 LOD | 들었지만 미확인 | Hover |
| 오해 Misunderstood | -2 | 재평가 필요 | 잘못 앎 | Error |
| 미인지 Unaware | -1 | 로딩 중 | 모름 | Disabled |
# 이 엔진을 참조하는 Claude 인스턴스는:
# 1. /Users/ef/Downloads/CrownyEngine/ 경로에서 소스 접근
# 2. CLAUDE.md 읽고 코딩 규칙 준수
# 3. 4상균형3진 원칙 유지
# 4. 외부 의존성 0 원칙
# 5. cargo test --workspace 전체 통과 필수
# 6. crownybus.com 상태 확인 (200 OK 유지)
# 핵심 파일:
# CLAUDE.md — 프로젝트 규칙
# docs/CROWNYFRAME_SPEC.md — 전체 규격서
# docs/HANDOFF.md — 인스턴스 간 인계
# src/engine/src/lib.rs — 엔진 메인
# src/game/src/main.rs — 게임 메인