Skip to content
This repository has been archived by the owner on Nov 6, 2021. It is now read-only.

Commit

Permalink
Revert "Minor readme changes. Will figure that out later. First, we c…
Browse files Browse the repository at this point in the history
…ode sum m0ar!"

This reverts commit 4c4cba1.
  • Loading branch information
WatIsDeze committed Nov 3, 2021
1 parent 4c4cba1 commit 8d0337a
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 32 deletions.
120 changes: 95 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,95 @@
# 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.
# 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.
12 changes: 5 additions & 7 deletions bin/basepoly/polyconfig.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ seta allow_download_textures "1"
seta backdoor "0"
seta bloom_enable "1"
seta ch_scale "1"
seta cheats "1"
seta cl_cinematics "1"
seta cl_player_model "2"
seta cl_renderdemo "0"
Expand All @@ -116,7 +115,7 @@ seta drs_enable "0"
seta drs_last_scale "100"
seta drs_maxscale "100"
seta drs_minscale "100"
seta drs_target "200"
seta drs_target "60"
seta flt_enable "1"
seta flt_fixed_albedo "0"
seta flt_fsr_easu "1"
Expand All @@ -142,7 +141,7 @@ seta m_invert "0"
seta m_pitch "0.15"
seta maxclients "8"
seta msg "1"
seta name "l4wd 0f t3h n00bz"
seta name "T3h_Pwn3r3r"
seta ogg_enable "1"
seta ogg_ignoretrack0 "0"
seta ogg_shuffle "0"
Expand All @@ -166,7 +165,6 @@ seta rate "5000"
seta ray_tracing_api "auto"
seta rcon_password ""
seta s_doppler "1"
seta s_enable "2"
seta s_khz "44"
seta s_mixahead "0.1"
seta s_occlusion "1"
Expand All @@ -178,7 +176,7 @@ seta s_underwater "1"
seta s_underwater_gain_hf "0.25"
seta s_voiceinput "0"
seta s_voiceinput_volume "1"
seta s_volume "1"
seta s_volume "0.850000"
seta scr_alpha "0.800000"
seta scr_fps "2"
seta scr_lag_draw "1"
Expand All @@ -190,14 +188,14 @@ seta sli "1"
seta sun_azimuth "345"
seta sun_elevation "45"
seta sun_latitude "32.9"
seta sun_preset "7"
seta sun_preset "4"
seta tm_blend_enable "1"
seta tm_exposure_bias "-1.800000"
seta ui_scale "2"
seta vid_display "0"
seta vid_fullscreen "0"
seta vid_gamma "0.8"
seta vid_geometry "1280x720"
seta vid_geometry "1280x720+280+166"
seta vid_rtx "1"
seta vid_vsync "0"
seta viewsize "100"
Expand Down

0 comments on commit 8d0337a

Please sign in to comment.