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. Loading objects from resman or the filesystem is whether in GFF or JSON format is transparent.
  • A recursive decent NWScript Parser
  • Implementations of pretty much every NWN File Format
  • An Model Parser. See the arclight project for some model viewing.
  • 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.45.0.tar.gz (48.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded CPython 3.13Windows x86-64

rollnw-0.45.0-cp313-cp313-manylinux_2_28_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

rollnw-0.45.0-cp313-cp313-macosx_13_0_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

rollnw-0.45.0-cp313-cp313-macosx_13_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

rollnw-0.45.0-cp312-cp312-manylinux_2_28_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

rollnw-0.45.0-cp312-cp312-macosx_13_0_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

rollnw-0.45.0-cp312-cp312-macosx_13_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

rollnw-0.45.0-cp311-cp311-manylinux_2_28_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

rollnw-0.45.0-cp311-cp311-macosx_13_0_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

rollnw-0.45.0-cp311-cp311-macosx_13_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

rollnw-0.45.0-cp310-cp310-manylinux_2_28_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

rollnw-0.45.0-cp310-cp310-macosx_13_0_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

rollnw-0.45.0-cp310-cp310-macosx_13_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file rollnw-0.45.0.tar.gz.

File metadata

  • Download URL: rollnw-0.45.0.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.45.0.tar.gz
Algorithm Hash digest
SHA256 e6909e9206a9d9bd461fc4d1e82f33c585f76e6463a32da3a48d35444bf5bb7a
MD5 c32be25d7374eb751802d1b1bdc6d01e
BLAKE2b-256 43cd2af424629358f4cc3dd9e6f86047c587d0dae0e94fd1a9c5caf28f975509

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rollnw-0.45.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for rollnw-0.45.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5139b6f0a1216ce98e9981807d8931c8e5e1ecafc6ec22f7e9a8433d4055c2b6
MD5 3f6b3c43e9f4eee27f486f51a2e91fd5
BLAKE2b-256 2baa11980e9d2fbdd508e8549c50ba31ccb96c80351b95d41c7915e2f0995ce5

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6814f6ca1a800ef9c7800b27793262151b2a40f5cefa7d28d222e9714dc9f087
MD5 3d54ff839876222abc83379cfa735c47
BLAKE2b-256 fcae1fc83de83846d7d61d5f954b2be62116220f96f41425c425d338574360bc

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e78a08574c3763286298783bdaefb56edad5facb6e82e0c72effd2f3932714c2
MD5 bc3b7ca13dee123fbd1c14eaabb083de
BLAKE2b-256 0f665238a84e55d4cf784984249746ec9d6084d6592024b04254aad59f94af6d

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 cf0cea1adbaaefeda8a532906543564431c620a591b81c0d1e75e6010b96692e
MD5 294e831b22588387ab45504a30be5055
BLAKE2b-256 3f7d217f54efaca23b6f313a6371026a51d6366e1c5ee9965cab1a1fd2dd68e0

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rollnw-0.45.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for rollnw-0.45.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9e28b9dbbbeb46b12bf345dbcff528db039ab980f721f39460f0d50b89f5daa9
MD5 fa67e76cfa6e63b727d1df769d3a87d4
BLAKE2b-256 8e2ecdba07e1a090e3fc2360f927aeec2d0975f952cde3f9fecc2422202879e1

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ae3112609a1a90cc657f3720bca3cffc8e562f8ffb27b64a63ec436c2921fd7
MD5 5aa8882e345034ff561557ba040cd961
BLAKE2b-256 d96ad8fbcc60fa654bc3b49138d660ac39911ecc41ebbcf7a1c9fd57ffbe1053

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 beeddfe32fdbbc049a95479314983fcb504fb02cecfc14cecec0da471749eaac
MD5 dc8bc579e8823b8acce5f185cce85b3d
BLAKE2b-256 36f841e6823ebd81f5af2858a958b3ab97044e18fa44a2a90e33178da56d57c2

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 0d6e6d3c0899d27581db7079c67aad7c860d5b60cd4fa0105b18fe700bfe4e49
MD5 11fa47a8a189409a98b7a9fcc1ed8911
BLAKE2b-256 37ce61c0c753a8996e22f0ce1105156a741c011a8b8f05a563b72b0d0bc3ae09

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rollnw-0.45.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for rollnw-0.45.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 337c4cb7d69649d18609b372b5b44f2a8e6cdbab4aa95147f54356b1f702b9cc
MD5 38ba35abe0307083b48c1c305ab55ab9
BLAKE2b-256 a75d867e9e13d97182d1b0da1c9cd0d8870ca50b8355bf3f7578d7afcce7ce48

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 47dd41f3f715451dcd307629b823e81b89d96f08cdd8f07f9dff8928542cb054
MD5 9860b995130dac147f88ec22efaea18e
BLAKE2b-256 a20c479e8891131d4f0802488b3ccdf257a31fc980abdd804ff157175f90f767

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 246d31cf9dd0beb71e7d632cd968c671823ff69c5c0f4ceaa1fe0bf60e096a5e
MD5 2384939c220d50e652a467934b46ebb2
BLAKE2b-256 327e7e3d4c1996755cb49c05dba2d8dac339f8686f5c27aa42b0e327de0aa7ed

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 56e534b9d27204571dc8f9b6771b9b1d0237843713fe8c790797de07f50a8804
MD5 eb36d2af995421af05b4c1e98a7ae3b0
BLAKE2b-256 9be958ac7349b51d7436b2749b43136947995dc84c7a8b6f1fb87ad699843132

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rollnw-0.45.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for rollnw-0.45.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a514f2fe9848180be047fe59538a252e289431f5552e2b4f1f750ed547746dfb
MD5 912ece20e974e36bc9a14fb6c5e91a98
BLAKE2b-256 c153f3e000954c332e846f64ccf27fb775e2200635923627b71d3c9dc2f31b73

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c2a1735fc26f9873e03994a181878fd0bcfe6ada5e2dc91296ad6cc60d196178
MD5 6b03fbfe018e743b0dffd0b5312cb105
BLAKE2b-256 39dd676bde04f1e2c1146b7a6572482c048c8b2e62481b0be32cc31c33ed00da

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e4cd3a277803ac9cc99d5e68d7b7f295c691dec7d019ae56b15f73977d2ca22b
MD5 427450440db97d7087cf399a0692a236
BLAKE2b-256 d9b6d395d45c9bdb9a770487b9f4583ec488c4c919de5cb26062df187d9252f2

See more details on using hashes here.

File details

Details for the file rollnw-0.45.0-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for rollnw-0.45.0-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7348281fca6e0a05ec2bd36ce578492ccec25140ec9b47935e5385bc18220d42
MD5 d69c673ab1f2a02d515ed8395ea8b1ba
BLAKE2b-256 a2d6d301b36d51c28c013d83cdcfa42a073e7aee6953cb32bf8fcd8e9d56a0c4

See more details on using hashes here.

Supported by

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