Basics

Math

All 3D coordinates are in meters.

Instead of differentiating vectors and points, a generic 'scalar' struct is used.

Normalized values are commonly used, which are floating point values in the range 0..1.

A right-handed coordinate system is used (Positive X axis goes right, positive Y axis goes up, positive Z axis goes toward the viewer.

Angles are expressed as normalized values. A full circle goes from 0 to 1. An angle of .5 is 180 degrees. An angle of .25 is 90 degrees etc.

Transforms are performed from left to right.

Index-type values are zero based.

GPU

Recommend turning off hardware DLSS, antialiasing and scaling for better performance. Rayve does not need these.

Window

The following controls are available:

Close window: Alt+F4
Minimize window: Alt+F10
Toggle full screen: Alt+F11
Resize window: Alt+Shift+Drag
Move window: Alt+Drag

Full screen mode uses the Windows OS dedicated buffered display mode for best game performance. This mode locks the screen, so caution is needed when debugging because if execution stops while in full screen mode, access to the desktop is likely blocked and the computer will have to be manually restarted.

Validation

Parameter checking, state checking, unreleased object checking, memory leak checking. Validations are enabled in the debug DLL and disabled in the release DLL.

Error handling

The following steps occur on an error:

Close down the engine.
Print message.
Show an error message dialog.
Call custom error handler if any.
Otherwise break on the function where the error occured.

It may not always be possible to shut down in an orderly way.