An homage to Neverwinter Nights
Project description
rollNW
rollNW is a simple modern static C++/Python library for Neverwinter Nights (and some Enhanced Edition) file formats and objects, that
- aims to implement an RPG engine inspired by NWN, excluding graphics and networking.
- focuses on usage, instead of doing things the Aurora Engine Way.
- follows utf8 everywhere.
- hews as close to C++ Core Guidelines as possible.
- aims to be as easily bindable as possible to other languages. I.e. only library specific or STL types at API boundaries.
See the docs and tests for more info.
This library is a work-in-progress. There will be serious refactoring and until there is a real release, it should be assumed the library is a work-in-progress.
Features
- An ASCII Model Parser
- A recursive decent NWScript Parser
- Implementations of pretty much every NWN File Format
- A Resource Manager that can load all NWN containers (e.g. erf, key, nwsync) and also Zip files.
- An implementation of NWN's Localization System focused on utf8 everywhere.
- A Serialization System that can transparently handle GFF or JSON.
- The beginnings of a novel Rules System designed for easily adding, overriding, expanding, or removing any rule and reasonable performance
Quickstart - Open VS Code in your Browser
Github Codespaces is available to those in the beta.
History
A lot of what's here was written in the 2011-2015 range as part of personal minimalist toolset, modernized and with new EE stuff added. In some sense, it's a work of historical fiction -- it's what I'd have suggested at the start of NWN:EE: get the game and the community on the same set of libraries. Similarly to an older project that asked "what if Bioware had stuck with Lua?". The answer to that was pretty positive: a decade ahead, at least, of nwscript.
Moonshots
You make ask yourself, why? But, to paraphrase Tennyson, ours isn't to question why, it's but to do and die and learn and maybe make neat things. In that spirit, here is a list of crazy projects that this library hopes to facilitate and that all fly in the face of "WHY?".
- A nwscript Language Server
- A modern, cross-platform nwexplorer.
- And, of course, the ever elusive open source NWN Toolset, with plugins, scripting, and a built-in console.
Credits
- Bioware, Beamdog - The game itself
- vcpkg - Package Management
- abseil - Foundational
- Catch2 - Testing
- glm - Mathematics
- loguru, fmt - Logging
- stbi_image, NWNExplorer, SOIL2 - Image/Texture loading.
- inih - INI, SET parsing
- nholmann_json - JSON
- toml++ - For settings.tml
- libiconv, boost::nowide - i18n, string conversion
- doxygen, sphinx, breathe - documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for rollnw-0.7.dev0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cdc43c010394e94fdcae6a26aa2d2d6d6605c64780890a908de270207db672f |
|
MD5 | a5628ebeeeb8fb71d43ebcc8716e18d5 |
|
BLAKE2b-256 | 165738b34907701f6f79249186187c78086e90626a3e77fd50e77210555c8a0f |
Hashes for rollnw-0.7.dev0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb52ce17f9592c728ccdfafa51e9f4c6a70fbb2fc9b19b6e7a9221666814ed7a |
|
MD5 | 3a3f97bf80a67361d620640ceb308da2 |
|
BLAKE2b-256 | 264a103f47e2a8b4ce863fc6c8cd7bcd3ba43f18f0d352b29c148793ec7e0c51 |
Hashes for rollnw-0.7.dev0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cea2ed890a8815d2f4dfef5f1c2bbe9f1e4835f24d2caff5b3d931f6e68e8e5 |
|
MD5 | 59d5f4611540a40018182aafed1a3438 |
|
BLAKE2b-256 | f51a06327ce91f868e721ba4ca53eed3a3f428d91345d757836f563edb78d60f |
Hashes for rollnw-0.7.dev0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14f50238e67180cb2f955d0302bd402657f6c0f2d389b4786bafcd26d5ffb4bd |
|
MD5 | 3d840eddf6220f189be17738ba4851d5 |
|
BLAKE2b-256 | 7cf1cf7546dceb92a6c27a617ab92ecfb86c866e0c140bb6a3240ee5c8b0698d |
Hashes for rollnw-0.7.dev0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e419e1040e84f457ce182a0436eef59ce88bb0f331192c7bbf306e51ee1c5365 |
|
MD5 | 369db86f1c412c252f8dbf7519c8a51a |
|
BLAKE2b-256 | d04d3cf2620959f668f4433b0f4730d4b0ee47f36b607dd90c00ac7eb8d76812 |
Hashes for rollnw-0.7.dev0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1f9470ca18eae1cd4acf441cc9f86d3807ea84bd87d34cc4efe45e991d8515e |
|
MD5 | 481a4c34702eb318cba353e6311cec71 |
|
BLAKE2b-256 | f05dd9851ea897813db0f591b8b8e57165d099e90b8a958d7668df107be1100d |