{"id":13574694,"url":"https://github.com/novelrt/NovelRT","last_synced_at":"2025-04-04T18:32:00.664Z","repository":{"id":37617306,"uuid":"161620104","full_name":"novelrt/NovelRT","owner":"novelrt","description":"A cross-platform 2D game engine accompanied by a strong toolset for visual novels.","archived":false,"fork":false,"pushed_at":"2024-07-30T23:21:51.000Z","size":21602,"stargazers_count":183,"open_issues_count":86,"forks_count":43,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-08-01T16:57:29.414Z","etag":null,"topics":["2d","2d-game-engine","c-plus-plus","cross-platform","engine","game","game-development","game-engine","hacktoberfest","visual-novel","visual-novel-engine"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/novelrt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"Contributing.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-13T10:06:21.000Z","updated_at":"2024-07-29T23:18:00.000Z","dependencies_parsed_at":"2023-10-01T18:44:50.765Z","dependency_job_id":"409e1231-40ad-418b-b7f2-ad952894dfce","html_url":"https://github.com/novelrt/NovelRT","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novelrt%2FNovelRT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novelrt%2FNovelRT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novelrt%2FNovelRT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novelrt%2FNovelRT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novelrt","download_url":"https://codeload.github.com/novelrt/NovelRT/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223153507,"owners_count":17096543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2d","2d-game-engine","c-plus-plus","cross-platform","engine","game","game-development","game-engine","hacktoberfest","visual-novel","visual-novel-engine"],"created_at":"2024-08-01T15:00:53.809Z","updated_at":"2024-11-05T10:31:00.171Z","avatar_url":"https://github.com/novelrt.png","language":"C++","funding_links":[],"categories":["Table of Contents"],"sub_categories":["Gaming"],"readme":"NovelRT\n=======\n\nNovelRT is a cross-platform, flexible Visual Novel and 2D game engine. It is aimed at designers and developers alike, however many of the designer tools and features we have on our roadmap have yet to be implemented.\n\n[![Latest Nightly Build](https://img.shields.io/github/actions/workflow/status/novelrt/NovelRT/build-system.yml?branch=main\u0026color=blueviolet\u0026label=Nightly%20Build\u0026style=plastic)](https://github.com/novelrt/NovelRT/actions/workflows/build-system.yml)\n\n![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/novelrt/NovelRT?color=blueviolet\u0026label=Latest%20Release\u0026style=plastic)\n\n[![Discord](https://discordapp.com/api/guilds/543898968380145675/widget.png?style=banner2)](https://discord.novelrt.dev/)\n\n## Current Features\n\nCurrently, NovelRT supports the following in its base form:\n- Graphics LLAPI\n- Audio LLAPI\n\n## Future \u0026 Immediate Improvements\n\nCurrent features in development include:\n- C++ HLAPI\n- Fabulist narrative scripting language support\n\nFor information on Fabulist, check it out from [here](https://github.com/novelrt/fabulist).\n\n## Getting Started with NovelRT\n\nCurrently there are no binary distributions of the engine as of yet, and we are still in our early alpha for almost everything.\n\n### Dependencies\n\nIf you wish to attempt to build a basic visual novel with the existing C++ API, you must first install the following dependencies:\n\n- [CMake](https://cmake.org/download/) \u003e= 3.19.8\n- [Vulkan SDK](https://vulkan.lunarg.com) \u003e= 1.3.231.1\n- [Python](https://www.python.org/downloads/) \u003e= 3.11\n\nThe dependencies that are handled by CMake that do not need to be manually installed are as follows:\n\n- Doxygen 1.8.17 (building docs)\n- fmt 10.2.1\n- GLFW 3.3.7\n- glm 0.9.9.9\n- gtest/gmock 1.11.0\n- fmt 10.2.1\n- libpng 1.6.35\n- libsndfile 1.1.0\n- Microsoft GSL 4.0.0\n- OneTBB 2021.5.0\n- OpenAL 1.23.1\n- spdlog 1.13.0\n\n### Build instructions\n\nThese instructions are based on the CMake build system generator. You can download the latest version here [here.](https://cmake.org/download/)\n\n**If you are compiling on Linux, please note - we do not support GCC at this time. Please use Clang 10+ instead. We will gladly accept contributions towards making GCC compatible, but until support is guaranteed we will _only_ officially support first-party compilers as described in our CI builds found** [here.](https://github.com/novelrt/NovelRT/blob/6d9caf2cb2426f6d3661575c7dbd24014d4260b9/.github/workflows/build-system.yml)\n\n\n#### Linux\n\nFirst, you must install the dependencies. On Ubuntu 20.04, it looks like this:\n```\nsudo apt install clang  libgl-dev xorg-dev libx11-xcb-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev \\\nlibxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev \\\nlibxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev libxcb-util-dev python \\\n```\n\nIf you are building from a command line terminal, clone NovelRT and set up the build folder like so:\n```\ngit clone https://github.com/NovelRT/NovelRT.git\nmkdir -p NovelRT/build\ncd NovelRT/build\n```\n\nThen, you can configure and build using CMake, like so:\n```\ncmake ..\ncmake --build . -j\n```\n\n#### Windows (x64 only)\n_Prerequisites:_\n- Windows 10 x64\n- Either:\n  - Visual Studio 2019 w/ \"Desktop development with C++\" Workload,\n  - Visual Studio 2022 w/ \"Desktop development with C++\" Workload,\n  _OR_\n  - Build Tools for Visual Studio 2019/2022 w/ \"Desktop development with C++\" Workload\n- CMake 3.19 or above\n_(note: Do not use the included one with Visual Studio at this time! It is outdated as of this time of writing and is considered incompatible.)_\n- Python 3.11 or above\n\n(32-bit builds _will not be supported at this time_.)\n\nIf you are building from a command line terminal, clone NovelRT and set up the build folder like so:\n```\ngit clone https://github.com/NovelRT/NovelRT.git\ncd NovelRT\nmkdir build\ncd build\n```\n\nThen, you can configure and build using CMake, like so:\n```\ncmake ..\ncmake --build . -j\n```\n\n##### Visual studio 2019/2022 specific instructions\n\nWhen you open the NovelRT folder in VS2019 or VS2022 for the first time the CMakeSettings.json file will contain incorrect values.\nChange the buildRoot value to `${projectDir}\\\\build` and the installRoot to `${projectDir}\\\\install` and restart Visual Studio this will make sure that it uses the same build path as the CLI commands.\nYou can delete the `out` folder in the NovelRT root as well as we won't use it anymore.\nThen regenerate the cmake by clicking regenerate on the yellow warning ribbon on the top of Visual Studio.\n\n\n#### macOS 10.15 (and above)\n_Prerequisites:_\n- XCode 12\n- XCode Command Line Tools matching the installed version\n- CMake 3.19.8\n- Vulkan SDK 1.3.231.1\n- Python 3.11 or above\n\n**NOTE: Until native Metal support is introduced at a future time, it is _required_ that you install Vulkan SDK version 1.3.231.1 as a prerequisite to configuring/building NovelRT. The instructions below will indicate directions _assuming_ that the Vulkan SDK is already installed in a non-system path. If it is not installed, NovelRT's build system will fail to properly configure.**\n\nIf you are building from a command line terminal, clone NovelRT and set up the build folder like so:\n```\ngit clone https://github.com/NovelRT/NovelRT.git\nmkdir -p NovelRT/build\ncd NovelRT/build\n```\n\nOnce you have cloned the repository, ensure that the terminal performing configuration of NovelRT runs the `source setup-env.sh` from within the Vulkan SDK directory.\n\nIf you have an Intel Mac you can configure the cmake files like so:\n```\ncmake ..\n```\nHowever, if you have Apple-Silicon Mac (M1, M2, etc), you must add an additional flag to the configuration command, like so:\n```\ncmake .. -DCMAKE_APPLE_SILICON_PROCESSOR=\"arm64\"\n```\n\nIf Vulkan SDK is not installed in a system path and the `setup-env.sh` file did not properly add the required environment variables, you can specify the `VULKAN_SDK` environment variable to your local Vulkan SDK location as such:\n```\nVULKAN_SDK=/Users/youruser/Vulkan SDK/1.3.231.1/macOS cmake ..\n```\nPlease ensure that the path includes the macOS folder, otherwise finding the proper libraries will fail.\n\nOnce NovelRT is configured, you can build it like so:\n```\ncmake --build . -j\n```\n\nTo run the samples, you will need to navigate to the folder the executable resides in, and\nlaunch from there. This is due to how macOS and CMake handle's RPATHs.\n\n\n## Example\nExamples will be placed here when we have created some. In the meantime, we advise asking us directly on our discord (invite URL above and below).\n\n## Contributing\nFirst off, if you want to contribute, thanks!\n\nIf you would like to contribute to the development of NovelRT, please see our [contribution guide here](Contributing.md).\nIf this doesn't answer any questions that you have, feel free to reach out to us on Discord to discuss what you can work on - we greatly appreciate it!\n\n**NovelRT and everyone contributing (this includes issues, pull requests, the wiki, Discord in all forms, etc.) must abide by our code of conduct, which can be found [here](CODE_OF_CONDUCT.md). Instances of abuse, harrassment or otherwise unacceptable behaviour must either be reported to a NovelRT Developer via direct message on Discord or by contacting us via [email](mailto:admin%40novelrt.dev).**\n\n## Licence\nUnless otherwise specified, all files are copyright © Matt Jones and Contributors. Licensed under the MIT Licence (MIT).\n\nSee [LICENCE](LICENCE.md) in the repository root for more information.\n\n\n## Questions?\nYou can reach us directly via our [discord](https://discord.novelrt.dev/), or you can post your question as an issue on the appropriate repository (but honestly asking us directly might be easier).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovelrt%2FNovelRT","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovelrt%2FNovelRT","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovelrt%2FNovelRT/lists"}