Advanced Development using DVN

This document describes advanced features of DVN and how to use them.

This document is a WIP and each entry is a placeholder.

Frame Loop & Loop Overrides

how the frame loop is structured

how to inject logic before/after render

how to modify rendering per-window

recommended use cases

performance considerations

Multi-Window / Multi-Instance Support

how to create extra windows

how rendering differs between them

how to sync states between windows

use cases (debug tools, second viewpoints, HUD windows)

Custom Rendering Pipelines (OpenGL, 2D/3D, Overlays)

drawing your own objects

hooking OpenGL directly

layering effects

injecting shaders

replacing DVN’s renderer

Networking (Multiplayer / Streaming)

high-level approach

recommended architecture

how VNs sync story states

streaming assets

multiplayer story use cases

Script Data Injection (injectGameScript)

how it works

how to transform script keys

use cases

modding support

auto-translation hooks

AI-generated content injection

dynamic branching

analytics tags

safety considerations

Modifying or Replacing Built-in UI Components

dialogue boxes

character name plates

option buttons

history/log display

main menu

settings menu

save/load menus

Full Engine Theming & Reskinning

global styles

how to override all panels/buttons

dynamic theme switching

using external data for styles

Dynamic Character Models (States, Directions, Actions)

how to hook character states

how to tie states to events

how to animate procedurally

using character models in custom views

DOM / CSS3 / Markdown Parsing

parsing HTML/XML/SVG for content

using CSS selectors to find content

loading dialogue or scenes from Markdown

using theming via CSS-like selectors

Custom Save/Load Logic

intercepting save

encrypting save data

save file metadata

cloud sync

custom thumbnails

Extended Debugging / Diagnostics (Advanced)

using overlays

rendering debug info

leveraging frame-loop events for debug

performance analysis

script loading logs

multi-window debugging

Internal Engine Architecture Overview

view stack

script loader lifecycle

rendering lifecycle

asset pipeline

save/load lifecycle