This repository has been archived by the owner on Nov 6, 2021. It is now read-only.
forked from NVIDIA/Q2RTX
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Minor readme changes. Will figure that out later. First, we code sum …
…m0ar!
- Loading branch information
Showing
2 changed files
with
32 additions
and
100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,95 +1,25 @@ | ||
# Nail & Crescent - Development Branch | ||
|
||
## Scratchpad - Things to do or not forget: | ||
- Items are obviously broken. | ||
- Physics.cpp needs more work, revising. Probably best done after moving more edict_t stuff to SVGBaseEntity. | ||
- ViewBobbing probably breaks because of a lack of physics.cpp data._ | ||
|
||
## Submodules | ||
|
||
* [N&C SDL2](https://github.com/WatIsDeze/NaC-SDL) | ||
* [N&C RmlUi](https://github.com/WatIsDeze/Nac-RmlUi) | ||
* [N&C curl](https://github.com/WatIsDeze/NaC-curl) | ||
* [N&C tinyobjloader-c](https://github.com/WatIsDeze/nac-tinyobjloader-c) | ||
* [stb](https://github.com/nothings/stb) | ||
* [zlib](https://github.com/madler/zlib) | ||
* [Vulkan-Headers](https://github.com/KhronosGroup/Vulkan-Headers) | ||
|
||
## Build Instructions | ||
The following build instructions apply to VS2019, which is the standard being used in the team right now. | ||
Although Linux support exists, and will be returning back soonly, as of right now it has been untested for | ||
2 months and may need some extra work. If you are feeling jolly, and want to lend us a hand, please contact | ||
us in our discord. | ||
|
||
### Windows 10 - VS2019 | ||
|
||
1. Clone the repository and its submodules from git : | ||
`git clone --branch Engine-0.2 --recursive https://github.com/WatIsDeze/Nail-Crescent ` | ||
|
||
2. Start VS2019, and use the "Open Folder" method to open the project, as one normally would when using CMake projects. | ||
|
||
3. Ensure you have vcpkg installed, and that it is setup properly. Install the following packages: | ||
- freetype:x64-windows | ||
- lua:x64-windows | ||
|
||
4. That should be all. Generate the CMake Cache if VS2019 isn't doing so already, and build the project. | ||
5. For resource files, please reach out to us on our [Discord](https://discord.gg/5tadZ96cvY). | ||
|
||
### Linux | ||
|
||
1. Clone the repository and its submodules from git: | ||
`git clone --branch Engine-0.2 --recursive https://github.com/WatIsDeze/Nail-Crescent ` | ||
|
||
2. Create a build folder inside your <PROJECT_ROOT> directory. Open a terminal in this location, and enter the following: | ||
`cmake ../src && make` | ||
|
||
3. If all goes well, you will now have a nac, nacded, basenac/clgame.so, and basenac/svgame.so. If not, we're still looking for help in this department. Feel free to reach out to us on our [Discord](https://discord.gg/5tadZ96cvY) if interested. | ||
|
||
## Demo Recording/Photo Mode | ||
|
||
Due to protocol changes being required, while Quake 2 Pro by default still records demo in the old vanilla protocol, this feature is of now broken. | ||
It'll likely make it back on a rainy day. For now, perfect must never be the enemy of good, and get in the way with our priorities. Which are making a fun game, and a kickass engine. | ||
Feel free to help us out, fork our project, and hack away. In case of any questions related to this, please reach out to us on [Discord](https://discord.gg/5tadZ96cvY) | ||
|
||
When a single player game or demo playback is paused, normally with the `pause` key, the photo mode activates. | ||
In this mode, denoisers and some other real-time rendering approximations are disabled, and the image is produced | ||
using accumulation rendering instead. This means that the engine renders the same frame hundreds or thousands of times, | ||
with different noise patterns, and averages the results. Once the image is stable enough, you can save a screenshot. | ||
|
||
In addition to rendering higher quality images, the photo mode has some unique features. One of them is the | ||
**Depth of Field** (DoF) effect, which simulates camera aperture and defocus blur, or bokeh. In contrast with DoF effects | ||
used in real-time renderers found in other games, this implementation computes "true" DoF, which works correctly through reflections and refractions, and has no edge artifacts. Unfortunately, it produces a lot of noise instead, so thousands | ||
of frames of accumulation are often needed to get a clean picture. To control DoF in the game, use the mouse wheel and | ||
`Shift/Ctrl` modifier keys: wheel alone adjusts the focal distance, `Shift+Wheel` adjusts the aperture size, and `Ctrl` makes | ||
the adjustments finer. | ||
|
||
Another feature of the photo mode is free camera controls. Once the game is paused, you can move the camera and | ||
detach it from the character. To move the camera, use the regular `W/A/S/D` keys, plus `Q/E` to move up and down. `Shift` makes | ||
movement faster, and `Ctrl` makes it slower. To change orientation of the camera, move the mouse while holding the left | ||
mouse button. To zoom, move the mouse up or down while holding the right mouse button. Finally, to adjust camera roll, | ||
move the mouse left or right while holding both mouse buttons. | ||
|
||
Settings for all these features can be found in the game menu. To adjust the settings from the console, see the | ||
`pt_accumulation_rendering`, `pt_dof`, `pt_aperture`, `pt_freecam` and some other similar console variables in the | ||
[Client Manual](doc/client.md). | ||
|
||
## MIDI Controller Support | ||
|
||
The N&C console can be remote operated through a UDP connection, which | ||
allows users to control in-game effects from input peripherals such as MIDI controllers. This is | ||
useful for tuning various graphics parameters such as position of the sun, intensities of lights, | ||
material parameters, filter settings, etc. | ||
|
||
You can find a compatible MIDI controller driver [here](https://github.com/NVIDIA/korgi) | ||
|
||
To enable remote access to your N&C client, you will need to set the following | ||
console variables _before_ starting the game, i.e. in the config file or through the command line: | ||
``` | ||
rcon_password "<password>" | ||
backdoor "1" | ||
``` | ||
|
||
Note: the password set here should match the password specified in the korgi configuration file. | ||
|
||
Note 2: enabling the rcon backdoor allows other people to issue console commands to your game from | ||
other computers, so choose a good password. | ||
# Polyhedron - A Q2RTX Fork | ||
A fork of the famous Q2RTX project by NVidia that strives to improve all the other factors of what once upon a time was called Quake 2. We're upgrading it bit by bit, so that the community can one day use again of a more 'modernized' Q2 engine, with of course the beautiful RTX graphics. One where a workflow matches those of today more so than those of the old. | ||
It'll come with clean slate base game dlls, with only the mere basics (thus also serving as examples) to off making your own game. | ||
|
||
## What does it have so far? | ||
- The code is now converted to compile using a C++(20) compiler instead of a C compiler. | ||
- Tick Rate increased from 10hz to 60hz. Can be set to 20hz, 30hz, 40hz and by default runs at 60hz. | ||
- Client Game(CLG in short) dll, simply put an extraction of the client related game code which with Vanilla Q2 is inaccessible. | ||
- Shared Game folder, were code resides that both the CLG and the Server Game(SVG) make use of. | ||
- New and better movement system. Taken from Quetoo by permission, and modified a bit here and there. There is no more bouncing off of stairs, just smooth stair stepping. | ||
- Math library has been modified to remain C like, however it now uses inlined functions, and templated vector types. This allows for easier writing and reading of code: | ||
```c++ | ||
vec3_t a = { 0.f, 5.f, 0.f }; | ||
vec3_t b = { 5.f, 0.f, 0.f }; | ||
vec3_t c = a + b; ``` | ||
- Game Modes are now classes, this allows to override specific game mode events in an organized manner. | ||
- Entities are now classes, this makes editing them way more readable and writing is almost painless. | ||
- ........ | ||
- And way more things that you'll see for yourself if you check out the sauce! | ||
|
||
## Acquiring the Sauce | ||
In order to acquire the sauce, one has to do a recursive submodules checkout, otherwise one is going to find himself in a land full of wonderful error warnings that share misery and pain. | ||
|
||
## Building the Sauce | ||
Nothing more than using cmake on the Sauce root folder, or using Visual Studio's "Open Folder" which'll use CMake from there. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters