Skip to content
jd28Public

About

rollNW is an homage to Neverwinter Nights in C++. Very much a WIP.

Topics

Resources

Stars

13 stars

Watchers

6 watching

Forks

Repository files navigation

License: MIT ci CodeQL codecov

rollnw

rollnw is a C++ framework for RPG tools and runtimes, inspired by Neverwinter Nights and growing toward a modern authored game and toolset.

The project is in active development. Pin a Git revision and rebuild consumers when updating; APIs and the C++ ABI can change. See the release guide for snapshot and tool versioning.

The shared C++ library for content formats, resource management, game objects, and rules. Its renderer brings NWN and glTF assets into a common runtime with PBR materials, skinned animation, particles, lighting, and shadows. These libraries underpin the tools below and can be used in other applications.

A statically typed, embeddable scripting language for game rules and tooling. Modules, generics, arrays, and maps support reusable scripts that connect to the library through native functions. The VS Code extension provides syntax highlighting and language-server support for writing and navigating Smalls code.

The module viewer and authoring workbench, installed as rollnw-client. Import a module into an editable project, explore its areas and resources, and edit objects and terrain with previews, undo, and save. Focused editors cover creature appearance and progression, item properties, inventory, and other supported object data.

Watch the demos: Overview · Area Editing · Item Interactions

A model and effects viewer for NWN and glTF assets. Inspect model hierarchies, play animations and effects, and check materials through the shared renderer. Its command-line tools also produce repeatable screenshots, turntable sequences, and fixed-step rendering benchmarks, including offscreen runs.

Build

Requires CMake 3.21+ and a C++20 compiler. Renderer tools currently only run on Linux and Windows. For a Linux renderer build with Ninja:

cmake --preset linux-renderer-dev
cmake --build --preset linux-renderer-dev --target rollnw-client mudl
./build-renderer/tools/client/rollnw-client

Use windows-renderer-dev for Windows. Library development presets are linux-dev, macos-dev, and windows-dev; see CMakePresets.json for the available configurations.

To work with NWN content, install NWN:EE and any required hak files. If discovery fails, set NWN_ROOT to the game installation and NWN_HOME to its user directory. In the toolset, choose Import Module... on Home. See the toolset guide for the workflow.

More

Documentation · Tests · Local issues

MIT licensed. Thanks to BioWare, Beamdog, and the open-source projects that make rollnw possible; dependencies retain their own licenses.

About

rollNW is an homage to Neverwinter Nights in C++. Very much a WIP.

Topics

Resources

Stars

13 stars

Watchers

6 watching

Forks

Releases

Used by

Contributors

Languages