No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Zach Bacon 1ac8994239 Add game world, animation, physics, distant LOD, water, ray tracing and FSR
Game world
- scenes/game.tscn + Game/GameWorld.cs: one runtime with interior<->exterior
  doors, background exterior streaming (ExteriorStreamer), template NPCs
  (TPLT/LVLN via ActorResolver). Test flags: --start=, --doortest=N,
  --swimtest, --rt=, --upscale=, --presskey=, --screenshot=.
- .kf animation (B-spline/Euler/static tracks), NPC idle + walk.
- Full Havok parse: rigid bodies, surface materials, layers, constraints
  as Jolt joints, dynamic clutter; terrain heightfield collision.

Distant LOD
- Terrain/object LOD rings plus tree billboards (.dtl + treetypes.lst); a
  global per-cell coverage map picks which layer draws.

Water
- WATR/XCLW/PWAT decoding, cell and placeable water volumes, water shader,
  swimming, underwater fog and Havok-material buoyancy.
- NIF tangent arrays are stored swapped; fixed, and missing tangents are
  derived from UVs.

Lighting
- SDFGI outdoors (GiRefresher re-voxelizes streamed cells); renderer moved
  to Vulkan (Godot's D3D12 driver has no ray tracing).
- Hardware ray tracing (src/Rendering): hybrid GI + reflections and a path
  tracer, with normal maps, emission, stochastic lamp shadows, terrain splat
  blending, foliage handling, physical calibration with auto exposure and
  traced water reflections. F8/L cycles the modes.

Upscaling
- FSR 1 / FSR 2 presets (F9/U, saved to user://settings.cfg), mip bias per
  AMD's guidance; the path tracer ignores FSR 2's camera jitter; the traced
  water reflection texture survives resolution changes.

Details in docs/ARCHITECTURE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:28:54 -04:00
.claude Basic terrain loading 2026-07-20 18:06:22 -04:00
docs Add game world, animation, physics, distant LOD, water, ray tracing and FSR 2026-10-13 14:28:54 -04:00
scenes Add game world, animation, physics, distant LOD, water, ray tracing and FSR 2026-10-13 14:28:54 -04:00
src Add game world, animation, physics, distant LOD, water, ray tracing and FSR 2026-10-13 14:28:54 -04:00
.editorconfig Initial commit 2026-07-18 13:56:34 -04:00
.gitattributes Initial commit 2026-07-18 13:56:34 -04:00
.gitignore add .old to git ignore 2026-10-12 18:49:04 -04:00
Fallout 3 remastered.csproj Move to Godot 4.8 (dev7) and .NET 10 2026-10-12 18:46:59 -04:00
Fallout 3 remastered.sln Initial commit 2026-07-18 13:56:34 -04:00
icon.svg Initial commit 2026-07-18 13:56:34 -04:00
icon.svg.import Add game world, animation, physics, distant LOD, water, ray tracing and FSR 2026-10-13 14:28:54 -04:00
project.godot Add game world, animation, physics, distant LOD, water, ray tracing and FSR 2026-10-13 14:28:54 -04:00
README.md Move to Godot 4.8 (dev7) and .NET 10 2026-10-12 18:46:59 -04:00

Fallout 3 Remastered (Godot)

An open-source reimplementation of Fallout 3 in Godot 4.8 (C#), in the spirit of what Oblivion Remastered did commercially and what OpenMW did for Morrowind: a modern engine that loads the game's original data files at runtime.

You must own Fallout 3. This repository contains no Bethesda assets — no meshes, textures, audio, or plugin data. Everything is read from your own installation's Data folder at runtime. Do not commit game files to this repo.

How it works

Oblivion Remastered keeps the original Gamebryo engine for game logic and uses Unreal 5 purely as a renderer. Without Bethesda's engine source that pairing isn't possible, so this project takes the OpenMW route instead: reimplement the engine in Godot and treat the original data files as the content pipeline.

Fallout 3's data lives in well-documented formats:

Format Contents Status
.esm / .esp All game records: cells, worldspaces, NPCs, weapons, quests, scripts… ✅ cells, placed refs, placeable base objects, worldspaces, and terrain heightmaps decoded (EsmStore); more record types as needed
.bsa (v104) Packed meshes, textures, sounds, voices ✅ full reader with zlib decompression (BsaArchive, GameFileSystem)
.nif (Gamebryo 20.2.0.7) 3D models ✅ static meshes: NifDocument parser + NifConverter → ArrayMesh (skinning/animation TODO)
.dds Textures ✅ runtime load incl. normal-map green-channel flip (TextureCache)
.kf Animations ⬜ later
.xwm / .ogg / .wav Audio ⬜ later

Format references: fopdoc (FO3/FNV records), UESP BSA docs, and NifSkope/nif.xml (NIF block layout).

Running it

  1. Open the project in Godot 4.8 (.NET edition; currently 4.8-dev7) with the .NET 10 SDK installed.
  2. Build the C# solution (Godot does this on first run), then press F5.
  3. The boot scene auto-detects Fallout 3 (Steam/GOG/Epic paths, or the FO3_DATA environment variable). If it can't find it, pick your Data folder in the dialog — the choice is remembered in user://fo3_data_path.txt.
  4. You should see a discovery report: plugins, archives, indexed file counts, a sample NIF extraction, and a record inventory of Fallout3.esm.
  5. Click Open Model Viewer to browse and render any mesh in the game's archives (orbit: LMB drag, zoom: wheel, pan: MMB/RMB drag).
  6. Click Open Cell Viewer, pick an interior (try Vault101a or MegatonCommonHouse), and fly through it: hold RMB to look around, WASD to move, Q/E down/up, Shift for speed. Press Tab to drop in and walk (WASD, Space to jump, Shift to run, Esc to go back to flying). Look at a door and press E to travel to the connected cell.
  7. Click Open Worldspace Viewer to fly over real Capital Wasteland terrain (hold RMB to look, WASD + Q/E, Shift for speed) — no placed objects or textures yet, just the heightmap.

Roadmap

See docs/ARCHITECTURE.md for the full plan. Short version:

  1. ✅ Data discovery & container formats.
  2. ✅ NIF → Godot mesh + DDS textures: render any static model from the game.
  3. ✅ Cell loading: CELL/REFR records instanced with placed lights and cell ambient/fog — fly through Vault 101. 3.5. ✅ Collision & walking: Havok bhk* shapes → Jolt physics, first-person character controller — press Tab in the cell viewer to walk. 3.6. ✅ Doors & cell transitions: look at a door and press E to travel through the vault, Megaton, or any connected interiors. 3.7. ✅ Rendering overhaul: census-driven material fixes (specular, env mapping, billboards), screen-space GI, and FO3-matched interior lighting.
  4. ✅ Worldspace terrain: WRLD/LAND heightmaps render real Capital Wasteland terrain (verified against Megaton's actual coordinates), with blended ground textures, placed objects/trees, and streaming. Still needed: distant LOD.
  5. Gameplay systems: actors, dialogue, quests, scripting, combat, VATS — the long tail.

This is a clean-room engine reimplementation for interoperability with data files the user already owns, the same model as OpenMW, OpenXcom, or GZDoom. "Fallout" is a trademark of Bethesda Softworks/ZeniMax; this project is not affiliated with or endorsed by them.