Information
- Visibility: hidden
- Publication Type: Ongoing Student Project
- Workgroup(s)/Project(s):
- Date: ongoing
- Date (Start): 1. November 2025
- Date (End): 1. July 2026
- Second Supervisor: Annalena Ulschmid
- Matrikelnummer: 12023991
- First Supervisor: Michael Wimmer
Abstract
The goal of this project is to develop a game that teaches the fundamentals of shader programming in an interactive and engaging way. Players build and customize a village populated with houses, NPCs, environmental elements, and decorative objects. Buildings can be freely placed, and specific predefined parts of them can be visually modified. Customization is achieved through a Scratch-inspired visual scripting system, where nodes represent functions and variables. By connecting these nodes, players create shader logic without writing code directly. NPCs guide players through a series of progressively more challenging quests and tutorials. These introduce both the practical use of individual functions and the underlying logic of shader programming. The primary focus is on fragment shader programming, particularly procedural materials and lighting models, as well as compute shader programming for particle systems. Because Unity does not allow shaders to be compiled at runtime, the project implements a lightweight virtual machine written in compute shaders. This virtual machine interprets a user-generated node graph encoded as a texture, enabling real-time visual updates based on the player’s visual scripts.Additional Files and Images
No additional files or images.
Weblinks
No further information available.BibTeX
@runstudentproject{Ams25,
title = "Shader Village",
author = "Nikolaus Amstler",
year = "2025",
abstract = "The goal of this project is to develop a game that teaches
the fundamentals of shader programming in an interactive and
engaging way. Players build and customize a village
populated with houses, NPCs, environmental elements, and
decorative objects. Buildings can be freely placed, and
specific predefined parts of them can be visually modified.
Customization is achieved through a Scratch-inspired visual
scripting system, where nodes represent functions and
variables. By connecting these nodes, players create shader
logic without writing code directly. NPCs guide players
through a series of progressively more challenging quests
and tutorials. These introduce both the practical use of
individual functions and the underlying logic of shader
programming. The primary focus is on fragment shader
programming, particularly procedural materials and lighting
models, as well as compute shader programming for particle
systems. Because Unity does not allow shaders to be compiled
at runtime, the project implements a lightweight virtual
machine written in compute shaders. This virtual machine
interprets a user-generated node graph encoded as a texture,
enabling real-time visual updates based on the player’s
visual scripts. ",
month = nov,
URL = "https://www.cg.tuwien.ac.at/research/publications/2025/Ams25/",
}