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