Stell Engine Docs
Build 2026.1 (Stable)

Stell Engine 개요

Stell Engine은 고성능 실시간 렌더링 애플리케이션 개발을 위해 설계된 DirectX 11 기반의 Native C++ 게임 엔진입니다. 상용 엔진(Unity, Unreal)의 아키텍처를 벤치마킹하여, 최신 생성형 AI 워크플로우를 엔진 코어에 통합하였습니다.

개발 철학 (Philosophy) "Black Box를 제거하라." Stell Engine은 개발자가 메모리 관리, 렌더링 파이프라인, 물리 연산의 모든 과정을 투명하게 제어할 수 있는 데이터 지향(Data-Driven) 아키텍처를 지향합니다.

Stell AI Terminal (Gen-AI Integration)

Stell Engine은 업계 최초로 LLM(거대 언어 모델)과 3D 생성 AI를 엔진 런타임에 내장하였습니다. 별도의 모델링 툴 없이, 에디터 내 터미널에서 자연어 명령만으로 에셋을 생성하고 배치할 수 있습니다.

지원하는 AI 모델

  • Google Gemini Pro: 사용자의 자연어 명령을 해석하고, 적절한 엔진 API 호출 코드로 변환합니다. (Logic Generation)
  • Tripo3D / Pollinations: 텍스트 프롬프트를 기반으로 3D 메쉬(.obj)와 PBR 텍스처를 실시간 생성합니다. (Asset Generation)

AI Terminal 사용 예시

StellAI> generate asset "rusty iron container" --style sci-fi
[System] Connecting to Gemini API... Parsing intent...
[System] Requesting 3D Model from Tripo3D (High Quality)...
[System] Downloading: 'container_mesh.obj' (15MB)
[Success] Asset imported and placed at (0, 0, 0).
필수 설정: API Key AI 기능을 사용하기 위해서는 외부 서비스의 API Key가 필요합니다. 엔진 실행 후 콘솔에 키를 등록해주세요.

Graphics Architecture (Forward+)

전통적인 Forward 렌더링의 한계를 극복하기 위해, 최신 하드웨어 가속을 활용한 Forward+ (Tiled Forward) Rendering 파이프라인을 구축했습니다.

기술적 특징

  • Light Culling: 화면을 타일(Tile) 단위로 분할하여, 각 픽셀에 영향을 주는 광원만 선별적으로 연산합니다. 이를 통해 수천 개의 동적 광원을 실시간 처리합니다.
  • HLSL Shader: PBR(Physical Based Rendering) 셰이더를 직접 작성하여, 금속성(Metallic)과 거칠기(Roughness)를 정확하게 표현합니다.
  • Post Processing: Bloom, Tone Mapping, Gamma Correction 등 후처리 효과가 기본 내장되어 있습니다.

Lua Scripting & Control Loop

C++의 성능과 Lua의 유연함을 결합했습니다. 특히 Stell Engine은 단순한 컴포넌트 이벤트를 넘어, runProcess 루프를 통해 개발자가 메인 루프를 직접 제어할 수 있는 권한을 제공합니다.

스크립트 구조 예시 (Main Loop)

-- runProcess: 엔진의 메인 진입점 (Entry Point)
runProcess(function()
    -- [1] 초기화 (Initialization)
    local scene = GetScene()
    local player = CreateEntity("Player")

    -- [2] 메인 루프 (Game Loop)
    while true do
        local dt = getDeltaTime()

        -- 입력 처리
        if Input.IsKeyDown("ESC") then break end

        -- 물리/로직 업데이트
        UpdatePlayerPhysics(player, dt)

        -- 렌더링 명령 제출
        render()
    end
end)

Native Physics Engine

Stell Engine은 PhysX와 같은 상용 미들웨어를 래핑하지 않고, Native C++로 직접 구현된 물리 엔진을 탑재했습니다. 충돌 감지(Collision Detection)와 충격량 해결(Impulse Resolution) 알고리즘이 엔진 코어에 최적화되어 있습니다.

  • RigidBody Dynamics: 질량, 마찰력, 탄성 계수를 기반으로 한 강체 역학 시뮬레이션.
  • Broad-phase Optimization: BVH(Bounding Volume Hierarchy)를 사용하여 충돌 검사 비용을 최소화했습니다.
  • Stability: 고속 이동 물체의 관통(Tunneling) 현상을 방지하는 CCD(Continuous Collision Detection) 기초 알고리즘 적용.

빌드 및 배포 (Deployment)

완성된 프로젝트는 Inno Setup을 통해 단일 설치 파일(.exe)로 배포됩니다. 엔진 런타임, 에셋 데이터, Lua 스크립트가 하나의 패키지로 묶여, 최종 사용자에게 제공됩니다.

보안 경고 (SmartScreen) 개인 개발자 서명(Self-Signed)을 사용하므로, Windows 실행 시 'PC 보호' 경고가 뜰 수 있습니다. 이는 악성코드가 아니며 정상적인 동작입니다.

실전 예제: 차량 물리 제어 (Car Physics)

Hyundai N Vision 74 데모에 사용된 차량 제어 스크립트입니다. 휠 콜라이더(WheelCollider) 없이, 순수 강체 역학으로 드리프트와 구동력을 구현했습니다.

function FixedUpdate(dt)
    -- 가속 (Forward Force)
    if Input.GetKey("W") then 
        self.rb:AddForce(self.transform.forward * self.enginePower)
    end

    -- 조향 (Torque)
    local velocity = self.rb:GetVelocity():Length()
    if velocity > 0.5 and Input.GetKey("A") then
        self.rb:AddTorque(Vector3(0, -1, 0) * self.steerSpeed)
    end
end