SteonMod
Skate3 RTX screenshot
Rust rewriteSource only

Skate3 RTX

A Skate 3 Rust Engine fork with real-time path tracing (Bevy Solari ReSTIR DI/GI) and DLSS Ray Reconstruction.

Source Follow

Skate 3 Rust Engine fork: real-time path tracing (Bevy Solari ReSTIR DI/GI) with DLSS Ray Reconstruction See the README below for details.

Rust crab riding a skateboard

Skate 3 Rust Engine

A Rust and Bevy skating project built from Skate 3 reverse-engineering research. Includes skating, tricks, grinds, offboard movement, difficulty settings and .skate map support. Gameplay parity is still a work in progress.

RTX fork

This fork replaces the lighting of the retail renderer with real-time path tracing, built on Bevy Solari and NVIDIA DLSS:

  • G-buffer instead of lightmaps. Opaque world geometry writes albedo,

    shading normal, roughness and emission to a deferred G-buffer (crates/skate-game/src/rtx_world_gbuffer.wgsl). Baked lightmaps, shadow maps and the fixed sun term are no longer used for opaque surfaces.

  • Ray-traced direct light. ReSTIR DI samples the scene sun, emissive world

    materials (signs and lamps) and the map's point and spot lights. Shadows are traced rays.

  • Ray-traced indirect light. ReSTIR GI with a world radiance cache handles

    multi-bounce diffuse light. Glossy reflections are traced paths. Rays that leave the scene see a clear sky, added by a small patch in vendor/bevy_solari.

  • DLSS Ray Reconstruction. DLSS RR denoises the path-traced signal and

    upscales it to the output resolution in a single pass, using the newest model (preset F, "RR2", from the DLSS 310.9.1 runtime).

  • Time of day. Escape > Graphics > Day & night sets the hour and cycle

    speed. A sun and moon follow it, the sky is Bevy's physical atmosphere (blue noon, orange sunset, moonlit night), and exposure adapts. Output uses Bevy's filmic tonemapper instead of the retail tone curve.

  • Derived PBR. Materials without authored normal or specular maps get bump

    from the diffuse texture's luminance and roughness from its local detail, so flat, smooth surfaces pick up glossy traced reflections.

  • DLSS settings. Escape > Graphics > DLSS: Auto, DLAA, Quality, Balanced,

    Performance, Ultra Performance, or Off (undenoised path tracing).

  • Textured, alpha-tested ray tracing. Reflections and bounce light see a

    small copy of each surface's texture, and foliage and fences cast shadows through their holes (Escape > Graphics > Foliage shadows turns this off).

  • Props and sea. Each map's movable props (bins, benches, parked vehicles)

    exported by setup are drawn, ray traced and solid (static collision from their render triangles). The converted maps contain no sea surface, so a glossy water plane is added 1 m below the map's lowest point (SKATE_SEA_LEVEL overrides it).

  • Characters keep their authored PBR materials. Each frame they are skinned

    on the CPU into a ray-tracing proxy, so they cast traced shadows and appear in reflections.

The ray-traced scene is in crates/skate-game/src/rtx.rs. GPUs without hardware ray queries fall back to the original raster renderer. Set SKATE_RTX=0 to force that fallback.

Frame generation is not included. DLSS Frame Generation requires NVIDIA Streamline to take over the swapchain, and the Bevy/wgpu DLSS integration (dlss_wgpu) supports only Super Resolution and Ray Reconstruction. On RTX 40 and 50 series GPUs, driver-level frame generation (NVIDIA Smooth Motion in the NVIDIA App) can be used instead, where the driver supports it for this game.

Known limits: cutout and alpha-blended materials (foliage, fences, water) are not in the ray-traced scene, so they cast no traced shadows. Blended surfaces still use their baked lighting. Secondary hits use each material's average albedo, not its texture.

RTX build requirements

In addition to the requirements under Build: an NVIDIA RTX GPU, the LunarG Vulkan SDK (VULKAN_SDK set) and LLVM (for libclang). BUILD.bat downloads the NVIDIA DLSS SDK v310.4.0 (the version dlss_wgpu 2.0 binds) into .local/DLSS unless DLSS_SDK is already set. It also downloads the v310.9.1 runtime into .local/DLSS-runtime unless DLSS_RUNTIME is set, and copies its nvngx_dlss.dll and nvngx_dlssd.dll beside the executable: newer runtimes keep the 310.4 interface and add the models the game requests. Their use is subject to the NVIDIA DLSS SDK license.

Play

Download Experimental. Successful main builds replace this prerelease. Choose Latest in Updates for experimental updates; Stable is the default.

Extract the Windows release ZIP and run skate3rust.exe. Select your Skate 3 Xbox 360 ISO, or select default.xex in an extracted game folder. Keep its data folder alongside it. Setup prepares the skater, animations and all disc maps, then starts University. The original scoring and session-marker HUD assets are also exported automatically during setup. No Blender, Python or Rust installation is needed. ISO extraction needs internet access. The first conversion can take a while.

Use an XInput controller to play. Escape opens graphics, difficulty and map settings. Maps can be switched without restarting the game.

Skate 3 assets are not included. Your converted files stay in the data folder beside your executable. Each freshly unpacked copy runs its own setup; it does not adopt another installation. In-place updates refresh only changed asset groups.

Build

Requires Windows, Rust with the MSVC toolchain, and LLVM installed in its default location. Run BUILD.bat to build, then PLAY.bat to launch the test world. PLAY.bat opens your saved map (University by default); use the in-game menu to switch maps, or drag a .skate file onto PLAY.bat. An XInput controller is required for gameplay; Escape opens difficulty and graphics settings.

Development builds use a prepared asset set in assets/private/ or the installed asset directory. scripts/Build-Release.ps1 builds the portable Windows package and requires Python 3.13. GitHub Actions builds main automatically; numbered releases are published separately.

Custom animations and climbing support remain available, but no custom clips are shipped. The included format-demo map is original procedural content.

Implementation notes are in docs/. Patched Bevy dependencies and their licenses are in vendor/. This is an unofficial project, not affiliated with EA.

Advanced diagnostics

Windows builds support opt-in performance timeline capture through the --trace CLI option, including optional GPU pass diagnostics.

From the project's repository, fetched . Images load from GitHub.

Releases

Feed

No releases yet. Follow the project to hear when the first one comes out.

Works for me

Did it work on your PC? A quick report tells other players which versions are safe to try.

Sign in to add a report

Forks & ports

Built on Skate 3 Rust Engine.

Also built on Skate 3 Rust Engine

Discussion

No posts yet. Ask a question, share your setup or post a clip.

Sign in to post