Skip to content

Commit

Permalink
Updated documentation - 1d3c05f from main
Browse files Browse the repository at this point in the history
  • Loading branch information
Novel-chan committed Nov 7, 2023
1 parent 1d3c05f commit bc2bc20
Show file tree
Hide file tree
Showing 1,786 changed files with 94,580 additions and 0 deletions.
76 changes: 76 additions & 0 deletions docs/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
Contributor Covenant Code of Conduct {#conduct}
====================================

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of
experience, nationality, personal appearance, race, religion, or sexual identity
and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, or to ban temporarily or permanently any
contributor for other behaviors that they deem inappropriate, threatening,
offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [email protected] or by contacting
one of the development team in a direct message on Discord. All complaints will
be reviewed and investigated and will result in a response thatis deemed necessary
and appropriate to the circumstances. The project team is obligated to maintain
confidentiality with regard to the reporter of an incident. Further details of
specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 1.4, available at
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org
21 changes: 21 additions & 0 deletions docs/LICENCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT Licence {#licence}

Copyright (c) 2022 Matt Jones and Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicence, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
177 changes: 177 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
NovelRT {#mainpage}
=======

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

[![Latest Nightly Build](https://img.shields.io/github/actions/workflow/status/novelrt/NovelRT/build-system.yml?branch=main&color=blueviolet&label=Nightly%20Build&style=plastic)](https://github.com/novelrt/NovelRT/actions/workflows/build-system.yml)

![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/novelrt/NovelRT?color=blueviolet&label=Latest%20Release&style=plastic)

[![Discord](https://discordapp.com/api/guilds/543898968380145675/widget.png?style=banner2)](https://discord.novelrt.dev/)

## Current Features

Currently, NovelRT supports the following in its base form:
- Graphics LLAPI
- Audio LLAPI

## Future & Immediate Improvements

Current features in development include:
- C++ HLAPI
- Fabulist narrative scripting language support

For information on Fabulist, check it out from [here](https://github.com/novelrt/fabulist).

## Getting Started with NovelRT

Currently there are no binary distributions of the engine as of yet, and we are still in our early alpha for almost everything.

### Dependencies

If you wish to attempt to build a basic visual novel with the existing C++ API, you must first install the following dependencies:

- [CMake](https://cmake.org/download/) >= 3.19.8
- [Vulkan SDK](https://vulkan.lunarg.com) >= 1.3.231.1
- [Python](https://www.python.org/downloads/) >= 3.11

The dependencies that are handled by CMake that do not need to be manually installed are as follows:

- Doxygen 1.8.17 (building docs)
- GLFW 3.3.7
- glm 0.9.9.9
- gtest/gmock 1.11.0
- libpng 1.6.35
- libsndfile 1.1.0
- Microsoft GSL 4.0.0
- OneTBB 2021.5.0
- OpenAL 1.21.1
- spdlog 1.10.0

### Build instructions

These instructions are based on the CMake build system generator. You can download the latest version here [here.](https://cmake.org/download/)

**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)


#### Linux

First, you must install the dependencies. On Ubuntu 20.04, it looks like this:
```
sudo apt install clang libgl-dev xorg-dev libx11-xcb-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev
libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev
libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev libxcb-util-dev python
```

If you are building from a command line terminal, clone NovelRT and set up the build folder like so:
```
git clone https://github.com/NovelRT/NovelRT.git
mkdir -p NovelRT/build
cd NovelRT/build
```

Then, you can configure and build using CMake, like so:
```
cmake ..
cmake --build . -j
```

#### Windows (x64 only)
_Prerequisites:_
- Windows 10 x64
- Either:
- Visual Studio 2019 w/ "Desktop development with C++" Workload,
- Visual Studio 2022 w/ "Desktop development with C++" Workload,
_OR_
- Build Tools for Visual Studio 2019/2022 w/ "Desktop development with C++" Workload
- CMake 3.19 or above
_(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.)_
- Python 3.11 or above

(32-bit builds _will not be supported at this time_.)

If you are building from a command line terminal, clone NovelRT and set up the build folder like so:
```
git clone https://github.com/NovelRT/NovelRT.git
cd NovelRT
mkdir build
cd build
```

Then, you can configure and build using CMake, like so:
```
cmake ..
cmake --build . -j
```

##### Visual studio 2019/2022 specific instructions

When you open the NovelRT folder in VS2019 or VS2022 for the first time the CMakeSettings.json file will contain incorrect values.
Change 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.
You can delete the `out` folder in the NovelRT root as well as we won't use it anymore.
Then regenerate the cmake by clicking regenerate on the yellow warning ribbon on the top of Visual Studio.


#### macOS 10.15 (and above)
_Prerequisites:_
- XCode 12
- XCode Command Line Tools matching the installed version
- CMake 3.19.8
- Vulkan SDK 1.3.231.1
- Python 3.11 or above

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

If you are building from a command line terminal, clone NovelRT and set up the build folder like so:
```
git clone https://github.com/NovelRT/NovelRT.git
mkdir -p NovelRT/build
cd NovelRT/build
```

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

If you have an Intel Mac you can configure the cmake files like so:
```
cmake ..
```
However, if you have Apple-Silicon Mac (M1, M2, etc), you must add an additional flag to the configuration command, like so:
```
cmake .. -DCMAKE_APPLE_SILICON_PROCESSOR="arm64"
```

If 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:
```
VULKAN_SDK=/Users/youruser/Vulkan SDK/1.3.231.1/macOS cmake ..
```
Please ensure that the path includes the macOS folder, otherwise finding the proper libraries will fail.

Once NovelRT is configured, you can build it like so:
```
cmake --build . -j
```

To run the samples, you will need to navigate to the folder the executable resides in, and
launch from there. This is due to how macOS and CMake handle's RPATHs.


## Example
Examples 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).

## Contributing
First off, if you want to contribute, thanks!

If you would like to contribute to the development of NovelRT, please see our [contribution guide here](Contributing.md).
If 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!

**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](@ref conduct). 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).**

## Licence
Unless otherwise specified, all files are copyright © Matt Jones and Contributors. Licensed under the MIT Licence (MIT).

See [LICENCE](@ref licence) in the repository root for more information.


## Questions?
You 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).
Loading

0 comments on commit bc2bc20

Please sign in to comment.