Version 0.0.1
Pre-release
Pre-release
Q2RTXPerimental
In order to actually run Q2RTXPerimental you'll be required to download Q2RTX 1.7.0(demo or full release) and ensure you have a separate copy of it elsewhere. Extract the release zipped content into the Q2RTX 1.7.0 destination installation directory in order to be properly able to experience the current changes that have been made so far.
Version 0.0.1 Changes:
General:
- CPP-ify the codebase, meaning that it now compiles using a CPP compiler
- The only exception being the VKPT code, to make life easy merging in any new Q2RTX VKPT features.
- Kept the good old
baseq2
game code as intact as possible and will try to maintain it somehwat. - Added a copy of
baseq2
folder, renamed tobase2rtxp
serving as the experimental game project of this engine. - Customizable Tick Rate (
40hz
is the current default). - Removed MVD, and GTV, although 'luxury' features, make things harder to maintain and I doubt it is within most target audience interest rates.
- Removed Anti-Cheat, OS specific and h4x0rz are going to h4x anyway. Makes life easier to maintain this project.
- Adjusted stair Step Smoothing to
BASE_FRAMETIME // (25ms for 40hz)
instead of its old hard values:100ms at 10hz
. - Increased
MAX_EDICTS(8192)
,MAX_MODELS(8192)
,MAX_SOUNDS(2048)
,MAX_IMAGES(512)
. - Increased maximum ConfigString length
(96)
. - Entity origins and player origin are
wired/transferred
as full floating point precision values. - Enabled
USE_SMOOTH_DELTA_ANGLES
. - Allows for up to 255 different gamemodes to be implemented. The client is also made aware of the actual game mode the server is running.
- Brush Shaped Triggers: Triggers can now have a "Clipped" flag set, in which case it only triggers when an actual collision(clip to brush) occured.
Client:
- Does proper lerping for entities that run lower than
40hz
. - Does proper lerping for weapons based on their 'gunrate', defaults to
10hz
- Added RF_OLD_FRAME_LERP support:
[Paril-KEX] force model to lerp from oldframe in entity state; otherwise it uses last frame client received
- Added support for monster 'step' Z-Axis lerping when RenderFlag
RF_STAIR_STEP
is set. - Added support to lerp from old entity state frame when RenderFlag
RF_OLD_FRAME_LERP
is set.
Net Code:
- Uses its own protocol, partially based on Q2 Protocol NVIDIA#34 and Q2PRO its own. This supports proper fragmenting, allowing for far more in-vis entities to be transfered over
The Wire
. This does come with the drawback of needing a proper25ms
ping in order to have a smooth gameplay flow. - Changed Solids from
int32_t
touint32_t
, so thatSOLID_BBOX
can now have BoundingBox sizes up to those of Q2RE/Q3. - Network origins using full floating point precision, angles are half-floats.
- Use ReadBase128 message read/write functions where applicable.
Refresh(VKPT):
- BSP maps compiled with
texinfos
such as:textures/test/01.tga
now will load with their proper dimensions, meaning one does not need low-res .wal textures to substitute for any of these.
Q2RTXPerimental Game Changes:
Server Game:
- Replaced (most)_framenum based functionality with time again, borrowing
sg_time_t
type from Q2RE. - AI now has the option to run at
tick rate
(defaults to40hz
), when theAI_HIGH_TICK_RATE
flag is set. - Guns can operate at a varying tick rate, default is
10hz
- Brush Triggers can now be set a spawnflag to trigger only when actually clipping with the trigger brush.
Client Game:
- Currently nothing strictly of its own, only the SharedGame PlayerMove code.
Shared Game:
- Contains the shared used
sg_time_t
which replaces all the vanilla frametime/framenum work. - Customizable PlayerMove code.