Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Lumina — Visual Game Creation

Lumina is a visual game creation environment built on VkEngine. It allows developers to build 3D games and interactive projects using either visual block-based programming or by writing game scripts directly, providing flexibility in how game logic is expressed.

Dual creation approaches

Lumina supports two complementary ways to build game logic:

  • Visual blocks: A drag-and-drop block editor for movement, logic, physics, variables, and interactions — no coding required.
  • Script code: Write game logic directly, accessing the same engine functions as the block editor.

Developers can switch between the two approaches within the same project, using blocks for high-level flow and code for complex algorithms or fine-grained control.

The Lumina editor

Lumina’s interface includes:

  • Viewport: A 3D grid-based level editor with voxel-like placement and full positioning/rotation control
  • Toolbar: Quick access to brushes for placing static tiles (walls, platforms, decorations)
  • Object menu: Add interactive objects with physics support
  • Block editor or code editor: Switch between visual programming and scripting (toggle with F12)
  • Properties panel: Adjust object properties and behaviors
  • File menu: Save, load, and test projects in real-time (press F5 to play)

Visual block programming

The block editor provides a full range of blocks for:

  • Movement: Position and rotation control
  • Physics: Gravity, collisions, and grounding checks
  • Control flow: If/else conditionals, loops (repeat, while, forever)
  • Variables: Local and global variable creation and manipulation
  • Logic: Comparisons, boolean operations
  • Interaction: Key press detection, collision detection, dialogue
  • Camera: Camera positioning relative to the player
  • Procedures: Define and call reusable routines

Blocks are type-aware, so slot connections validate that compatible data types fit together.

Scripting capabilities

For complex game logic, developers write scripts that compile and execute with VkEngine’s systems. This provides access to engine functions for movement, physics, input, and more, while maintaining the performance and features of the underlying Vulkan renderer.

Examples & templates

Lumina ships with ready-to-play example projects demonstrating common patterns:

  • parkour.lumina — A platformer showcasing movement and jumping mechanics
  • collector.lumina — A collection-based gameplay example
  • template_movement.lumina — Starter template for basic movement controls
  • template_camera_movement.lumina — Starter template for camera-relative controls

Load any example from the editor to explore how it works, then modify it as a starting point for your own projects.

Technology & platforms

Lumina is built with VkEngine and includes:

  • Graphics: Vulkan (via VulkanEngine) for high-performance 3D rendering
  • Window management: GLFW3
  • UI: ImGui for editor controls
  • Physics: NVIDIA PhysX integration
  • Audio: FMOD Studio integration
  • Language: C++20
  • Build system: CMake

Lumina runs on Linux and macOS and requires the Vulkan SDK for building.

  • VkEngine — The rendering and game engine underlying Lumina
  • LumenLang — Alternative scripting language integration