Nodot FPS Example
June 19, 2023 ยท View on GitHub

Nodot FPS Example
A first person shooter made using Nodot, a node composition library for Godot 4
The Nodot First Person Shooter example is a simple technical demo of how to use Nodot to create a game.
Download the latest playable release here.
Features include:
- First person character
- Locomotion (walking, running, jumping and swimming)
- A range of weapons (melee, pistol, automatic rifle, sniper and rocket launcher)
- A firing range and targets with health and a health bar
- Collectable items, an inventory and a storage chest
- Various demonstrations of Nodot features including audio, spawning, interaction and signal handling.
Contributing
Required Software
- Godot 4.1 Beta 2
- Git-LFS - Required to download the large binary files in this repo
Required Godot Addons (included in this repo)
Contribution Workflow
- Fork the repository
- Clone your fork to your local machine
- Create a new branch for your feature
- Make your changes
- Commit and push your changes to your fork
- Create a pull request from your fork to the main repository
- Wait for your pull request to be reviewed and merged
Map Editing
The map is created using both Godot and TrenchBroom, a cross-platform level editor for Quake-engine based games. This is due to the speed and ease of use of TrenchBroom for creating the map geometry and the flexibility of Godot for adding entities and scripting.
Setting up TrenchBroom
- Download and install TrenchBroom from here
- Place the
tb-gameconfigfolder in%AppData%\Roaming\TrenchBroom\games - Open (or restart) TrenchBroom and click
View > Preferences - Click the
nodot-fpsgame configuration - Set the Game Path to the root of the
nodot-fpsrepository (where to cloned this repo) - Click
OK
Mapping workflow
- Maps live in the
mapsfolder of this repo - Make your modifications of the
.mapfile in TrenchBroom and save. - In Godot, open the associated map scene for that file.
- Select the TBLoader node and view it in 3D mode
- Click the "Build Meshes" button in the toolbar to regenerate the map.
Adding/Modifying entities
- If you want to add entities to trenchbroom, simply add new scenes and associated scripts in the
entitiesfolder. - Select the TBLoader node and view it in 3D mode
- Click
Build FGDin the toolbar to regenerate the FGD file. - In TrenchBroom, click
File > Reload Entity Definitionsto load the new FGD file.
Textures
- Godot textures are stored in the
texturesfolder. - Trenchbroom textures are stored in the
tb-texturesfolder with associated subtextures (normal maps etc) in subfolders. - A
.tresfile is used to map the Trenchbroom texture back to Godot.
Asset Credits
Example model asset credits: