Skip to content

Version 0.0.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@WatIsDeze WatIsDeze released this 04 Dec 22:12

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 to base2rtxp 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 proper 25ms ping in order to have a smooth gameplay flow.
  • Changed Solids from int32_t to uint32_t, so that SOLID_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 to 40hz), when the AI_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.