Skip to main content

An homage to Neverwinter Nights

Project description

License: MIT ci CodeQL codecov Documentation Status PyPI version

rollNW

rollNW is an homage to Neverwinter Nights in C++ and Python. See the docs and tests for more info, or open an IDE in browser in the quickstart section below.

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

  • The beginnings of a novel Rules System designed for easily adding, overriding, expanding, or removing any rule and reasonable performance
  • A combat engine built on the above that's nearing being able to simulate melee battles.
  • Objects (i.e. Creatures, Waypoints, etc) are implemented at a toolset level. Or in other words their features cover blueprints, area instances, with support for effects and item properties. They are still missing some new EE things. Player Characters are read only, for now.
  • A recursive decent NWScript Parser
  • Implementations of pretty much every NWN File Format
  • An Model Parser. See the mudl model viewer side project.
  • 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.

Goals

  • 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.

Building / Installing

The library uses CMakePresets.json as its build system. The naming convention for non-ci presets is {platform}-dev[-{build tool}][-python][-debug]. In debug presets, build files are written to build-debug, otherwise build. In the python presets, python bindings will be built, otherwise only tests and benchmarks are built. On macOS and Linux, ninja is always to the build tool of choice so it is omitted. On windows the default build tool is Visual Studio 2022.

Examples:

$ cmake --preset=linux-dev-python
$ cmake --preset=macos-dev-debug
$ cmake --preset=windows-dev-vs2019-debug
$ cmake --preset=windows-dev-ninja-python
$ cmake --preset=windows-dev

Once your configuration is done, everything is the same between platforms. To build:

$ cmake --build --preset=default
$ cmake --build --preset=debug

To install all binaries and test data to local bin dir (build or build-debug):

$ cmake --install build --prefix=.
$ cd bin
$ ./rollnw_benchmark

To run ctest:

$ ctest --preset=default

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.

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rollnw-0.42.dev0.tar.gz (48.9 MB view details)

Uploaded Source

Built Distributions

rollnw-0.42.dev0-cp313-cp313-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.13 Windows x86-64

rollnw-0.42.dev0-cp313-cp313-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.28+ x86-64

rollnw-0.42.dev0-cp313-cp313-macosx_13_0_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.13 macOS 13.0+ x86-64

rollnw-0.42.dev0-cp313-cp313-macosx_13_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.13 macOS 13.0+ ARM64

rollnw-0.42.dev0-cp312-cp312-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.12 Windows x86-64

rollnw-0.42.dev0-cp312-cp312-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

rollnw-0.42.dev0-cp312-cp312-macosx_13_0_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.12 macOS 13.0+ x86-64

rollnw-0.42.dev0-cp312-cp312-macosx_13_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.12 macOS 13.0+ ARM64

rollnw-0.42.dev0-cp311-cp311-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.11 Windows x86-64

rollnw-0.42.dev0-cp311-cp311-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

rollnw-0.42.dev0-cp311-cp311-macosx_13_0_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.11 macOS 13.0+ x86-64

rollnw-0.42.dev0-cp311-cp311-macosx_13_0_arm64.whl (8.2 MB view details)

Uploaded CPython 3.11 macOS 13.0+ ARM64

rollnw-0.42.dev0-cp310-cp310-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.10 Windows x86-64

rollnw-0.42.dev0-cp310-cp310-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

rollnw-0.42.dev0-cp310-cp310-macosx_13_0_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.10 macOS 13.0+ x86-64

rollnw-0.42.dev0-cp310-cp310-macosx_13_0_arm64.whl (8.2 MB view details)

Uploaded CPython 3.10 macOS 13.0+ ARM64

File details

Details for the file rollnw-0.42.dev0.tar.gz.

File metadata

  • Download URL: rollnw-0.42.dev0.tar.gz
  • Upload date:
  • Size: 48.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for rollnw-0.42.dev0.tar.gz
Algorithm Hash digest
SHA256 c7ab92910771db83c4f2435bffc9274a32b634134879527a18dc2d79fffddb9c
MD5 042c589038e1cbd196e3ca6c2563d323
BLAKE2b-256 1b6abb6b771a27405f14e80b7d7762e4aa3550f701f844b7540f999344333900

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7773025a500eee0966d5276ff68fa07068f40a0d7eea35f4364f57c09e163cd3
MD5 85bae77b18de976d2268a2b5df37f7db
BLAKE2b-256 cd9fbd957de65129d33802ad5ae5aa5019ac582f4590b4cb4e74a49c1ffe93b5

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f92100f22da6720c60447b112f183ccf0fb2a77835d1c6ac8da808b552e3e73a
MD5 e47b18ee5af678f97daff494e9323678
BLAKE2b-256 b7f7cddd70b6e166c6c175f6a8ffe3bbed1349a2af45f71974a74966423809f3

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 96de54218267c63ad9a8934f0577e8ce32bf7abe58ce9ffa919f6a7f76961b40
MD5 78d75eb3dc48a48dada0d4e28e7bbd87
BLAKE2b-256 1613114ebd9399451e7210d845456c015325b4c09f573ab1510967293b6e5cbb

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 dbc7d63710b64748dc3fe3a3cf1f9e929b271be0c83c8543c3371760316deb86
MD5 c8294348ec233b81492c28236cd8e073
BLAKE2b-256 4a17ce61dd72e2b13f5429baab3210b473e5ccdb8458e4875b038c4b3fa45f59

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d74ba678b1b32a5a1ce70fd4b082f80754a9e2cb4826d7af8c218df070f5a20a
MD5 5b7f30007d8a5a8dbfbb57d72a822d72
BLAKE2b-256 a4c26c5323cf806953a2904001ab58429ca23d431b6ae8cbef9944b5412bfea8

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 779908d88fe084f6bc28a6b2302f70ca22574dfdc91301f042d739aa044c2e03
MD5 6a0924f97865fc8572d23acf5f286baf
BLAKE2b-256 e07d3c792e199828e5b592717aff24d28f5d2bf74d7419e3b1974947dcb3371f

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 002abfd3ef41b8218bdd4406e3acc1acf20449e4e0cf5b85b6cb26d7188c1de1
MD5 3fd2f8fb17e50e376f464223422940d8
BLAKE2b-256 3669ee3742325cbbe5a91676b7524a0e78baf04be49738c58a5f9ab1f7f714f9

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4f0eba23bc77fc06429c7c6cdedf3e57ea9135bdca6783c5e9386745d49f5fc4
MD5 6ff4d4267d228383c33ccef98f80b7f2
BLAKE2b-256 c8b2dc4a3c7e508c8bbbaf74d834dee6b9fc4d5c37123e24481190c33e54449b

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d186c5c981c43c138a85ae6a3f044a8c1ee333521ab1cf8fb0c90c610b7100f6
MD5 2b221d53e6df9304c6e8e7a63134684a
BLAKE2b-256 4d224da2782464772c572ee090fa6065e0d53b2d9881940ae78079994f7a11b3

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc8081675fcbefcafcb0506cd1ecf0f089973f85dae1a9bd19d6cafcfb9715a3
MD5 31a0e294e7d2456d9a2f60de58d2793b
BLAKE2b-256 31348cb1f8bb57b4a0831abda26bf11c912093f7b50450ab0388596227f1bae5

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 9f6f2b77a1df938275fef91123ac110c783e4a700b442b64f94a1c963b04f1e7
MD5 2cf67a4bda25b233c50e2ed3eb8baea7
BLAKE2b-256 87baab64e631e82415cfaa4077388d84d4f32fb75522187ce45d5db451a29cd8

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 72117b96b24e2c12f14067e676c9c636f00f439f3435964c87c866c1ee5231ec
MD5 be3d884f6b40cf8bddeab47b2860fceb
BLAKE2b-256 0a015b5560aa24d976c3f3439914a45658f6c9b10d4d5fb5d954aa84093c4993

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e186a6711fa56876c7a2d7acf7034d9724b66d938fb02e1271bc67fada7b03d7
MD5 42893b991ba6da9af3aac2579d00db07
BLAKE2b-256 658679650ba98a387234b3d82c89edc529ab5a145387d0b9a851c27ae6768e3c

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 78acbab9599fc03f27c495a124f251557e2c15e391b79ddbe0d70ce80850c199
MD5 1e096f6bca3e5b2a03f0632e955b7b0c
BLAKE2b-256 c97e99426a40f91eb1fa6d7772a28cbc6044342e7e14d358cd12818742d69eb5

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 9aa939a3b8848453d173db9c0559db634afa04296a1719e43d276273cd97127a
MD5 15e7fec5fbaa3843140287e51e8106af
BLAKE2b-256 1b3d25e1812527b2f613f23c9e3958f3d4f6b2aedfbae2753b141deca2ec1ed7

See more details on using hashes here.

File details

Details for the file rollnw-0.42.dev0-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for rollnw-0.42.dev0-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 46deb6cb7ac65c0cffa367479fbde1e23ded5b72563136ae708d7049d71e96c6
MD5 9495221ab0a7ccf31ac3e0859138dbc6
BLAKE2b-256 5345311b0692965634da4b6904e9b5641f6c0f9eac8c9a99e1d2267d7cf6989a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page