Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NIGHTFALL

Open-source round-based survival FPS for Unreal Engine 5.

Hold the rooms. Spend points on steel. Restore power. The rounds do not stop.

This is a C++ project. Greybox maps spawn at runtime — you can open it, compile, and play without any .uasset art. Nanite and Lumen are turned on in the project so the second you drop high-poly meshes in, they render the way UE5 is meant to.

Playable prototype (browser): the original Three.js version still runs in the Grok preview. This repo is the Unreal port you can clone onto your machine.

Mac agent (download / compile / fix): paste docs/AGENT_PROMPT.md into Hermes (or any local agent on the M5 Max). It installs UE 5.8, builds, and fixes invisible zombies, Site 13 walls, power interact, and >60 fps.

Repository: https://github.com/hectorTSH/nightfall


What is in here

System Status
First-person movement, look, sprint, ADS, jump Done
Six weapons (sidearm, SMG, shotgun, rifle, LMG, HELIX) Done
Wall buys (buy + ammo refill at half price) Done
Five perks (Iron Veins, Quick Hands, Twin Fire, Marathon, Field Medic) Done
Power switch, mystery crate, Helix bench (Pack-a-Punch) Done
Point doors, window barricades, round loop Done
Three maps: Frostmere, Omega Anlage, Site 13 Greybox, C++ spawned
Listen-server replication stubs (up to 4 players) Stubbed, see docs/MULTIPLAYER.md
Nanite + Lumen + Virtual Shadow Maps + TSR Enabled in Config/DefaultEngine.ini
High-poly art / animations / audio Not shipped — bring your own, or use Quixel

Gameplay numbers match the browser prototype. Full list: docs/GAMEPLAY.md.


Requirements

  • Unreal Engine 5.5 or newer (5.8 is current). Install from the Epic Games Launcher. If the editor asks to retarget, let it.
  • Windows: Visual Studio 2022 with the Game development with C++ workload, Windows 10/11 SDK, and .NET desktop build tools.
  • macOS (Apple Silicon, including M4): Xcode with command-line tools. UE 5.5+ is native on Apple Silicon. Packaging a Windows .exe from a Mac is not supported — use a Windows box or a cloud builder for a Windows ship.

You do not need to download Unreal Engine source from GitHub unless you want engine modifications. The binary editor from Epic is enough.

Unreal Engine itself is not MIT. You accept Epic's EULA when you install it. Nightfall's own code in this repo is MIT — see LICENSE.


Clone and play

git clone https://github.com/hectorTSH/nightfall.git
cd nightfall

Windows

  1. Right-click Nightfall.uproject → Generate Visual Studio project files.
  2. Open Nightfall.sln and build Development Editor | Win64.
  3. Double-click Nightfall.uproject, or press F5 from Visual Studio.
  4. In the editor: File → New Level → Empty Open World (no landscape). Save it as Content/Maps/Play.
  5. Project Settings → Maps & Modes → set Editor Startup Map and Game Default Map to Play.
  6. Click Play. You spawn on Frostmere.

macOS

  1. Double-click Nightfall.uproject. Unreal generates Xcode files and compiles the editor target.
  2. Same empty-level step as above, then Play.

Switch maps from the console (~):

open 127.0.0.1?map=omega
open 127.0.0.1?map=site13
open 127.0.0.1?map=frostmere

Or pass ?map=omega as a URL option when hosting.


Controls

Action Keyboard Gamepad
Move WASD Left stick
Look Mouse Right stick
Jump Space A
Fire LMB RT
Aim RMB LT
Reload R X
Interact / hold-repair F B
Sprint Left Shift L3
Melee V Y
Swap weapon Scroll D-pad left/right
Pause Esc Menu

Nanite, honestly

Nanite is a virtualized micropolygon system. It shines on film-quality static meshes (photogrammetry, Quixel Megascans, ZBrush sculpts), not on the 12-triangle engine cubes this greybox uses.

What this project does:

  • Turns Nanite, Lumen GI, Lumen reflections, Virtual Shadow Maps, and TSR on in Config/DefaultEngine.ini.
  • Builds maps with UStaticMeshComponent / UHierarchicalInstancedStaticMeshComponent so replacing a cube with a Nanite mesh is a material/mesh swap, not a rewrite.
  • Leaves Content/ empty on purpose. Drop .fbx / Quixel assets there, enable Nanite on the static mesh, and assign them in ANightfallMapBuilder (or convert the builder to data assets).

You will not see "Nanite graphics" on first Play. You will see a correct, Lumen-lit greybox that is ready for them.


Open source

  • License of this repo: MIT. Fork it, ship it, sell it (Epic's royalty terms still apply to the Unreal runtime once you pass their revenue threshold).
  • Contributions: see CONTRIBUTING.md. Issues and PRs welcome.
  • Not included: Unreal Engine, Quixel/Fab assets, any Call of Duty / Treyarch IP. The perk names, weapon names, and maps here are original to Nightfall.

Multiplayer

Yes — later, and the code is already shaped for it.

Unreal's player pawn, player state, game state, and interactables replicate. A listen server with up to 4 clients is the intended next step, not a rewrite. Dedicated server is a packaging target away. Read docs/MULTIPLAYER.md.

The browser prototype used WebRTC P2P, which is the wrong model for an authoritative horde mode. UE listen-server is the right one.


Project layout

Nightfall.uproject
Config/                  renderer (Nanite/Lumen), input, game
Source/Nightfall/        all gameplay C++
  NightfallCharacter.*   FPS pawn, guns, perks, interact
  NightfallZombie.*      window → chase → attack
  NightfallInteractable.* doors, wall buys, perk machines, power, crate, PAP, barricades
  NightfallMapBuilder.*  Frostmere / Omega / Site 13
  NightfallGameMode.*    rounds, spawns, listen-server
Content/                 put Nanite meshes here
docs/

Roadmap (good first PRs)

  1. Empty Play map checked in (once Git LFS is on).
  2. Quixel/Megascans pass on Frostmere with Nanite enabled.
  3. Weapon viewmodels and fire animations.
  4. Zombie skeletal mesh + animation BP.
  5. Listen-server HUD (other players' names, shared round).
  6. Audio (gunshots, round sting, crate jingle).
  7. Packaged Windows shipping build.

About

Nightfall — open-source round-based survival FPS for Unreal Engine 5 (Nanite + Lumen). Hold the rooms. Spend points. The rounds do not stop.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages