NeoFPS: FPS Controller, Template & Toolkit
Do you want to build an FPS game in Unity? Do you have a strong vision for your game, but the work required seems overwhelming? NeoFPS is a full suite of tools to craft the FPS game you've dreamed of.
Make your FPS vision a reality with an asset that solves most of the problems you'll encounter while building a polished FPS game. NeoFPS is not just a character controller. It's a full suite of systems that work together to make an FPS. From movement and weapons, down to in-game menus and quick-save/load.
You design worlds. NeoFPS puts players in them.
Key Features:
NeoFPS was developed with the core goals of flexibility, extensibility and control. It enables you to precisely meet your FPS design goals or experiment with new ideas.
The core of NeoFPS is a powerful "motion graph" visual FSM editor for modelling first person movement, sitting on top of a custom kinematic character controller. Combined with a powerful camera setup and modular firearm system, NeoFPS can build impressive FPS mechanics out of the box.
Firearms are assembled from a variety of modules that define their behaviour such as different aimers or reloaders. They are then animated via a combination of keyframed animations and procedural animation features. A variety of custom shaders are provided for render texture scopes or projected holographic sights (including URP and HDRP variations).
A full save-game system allows you to use quick-save and load to save everything down to bullets in flight. Alternatively you can selectively save data at checkpoints, or to persist data such as health and inventory between scene changes.
Extensive documentation and tens of deep-dive tutorial videos guide you through the features as you go. If you have any problems or want to chat about FPS or gamedev in general then join the active discord server alongside hundreds of other users, and share your FPS journey.
Demo Scenes:
The Demo Facility is a small slice of an example game level that will be expanded as new features are added. Alongside that there are the feature demo scenes that cover all the following:
- Parkour, Blink And Grapple
- Firing Range
- Jetpacks And Guided Missiles
- First Person Body (*Requires Third Party Animation Assets)
- Interactable Doors
- Camera Shake
- Swimming
- Moving Platforms
- Inventories
- NeoCharacterController
- Character Persistence Across Scenes
- Multi-Scene Saves
- Origin Shift
- Ladders
Recently Added:
- Attachment system
- Pick up and manipulate rigidbody objects
- Quick-melee/throw/shoot/tool and instant use consumables
- Touchscreen controls
- Audio effects
Check out the "Technical Details" below for a more in-depth list of included features.
Technical details
Features
Flexible & Powerful Motion Graph
- Craft complex FPS movement in an intuitive editor
- Parkour features and demo with wall running, crouch slides, mantling
- Swimming, including moving water and wading
- Attach behaviours to motion graph states for a wide variety of effects
- Graph properties allow communication between the motion graph and scripts
- A wide variety of conditions
- Add your own states, behaviours and conditions to extend the graph's functionality
- Input system independent
- Swappable data sources and types (speed, jump height, etc)
- Grapple swing and Arkane style blink ability
Modular Firearms
- Interchangeable components (trigger, shooter, reloader, aimer, etc)
- Attachment system
- Sockets and attachments
- Can be nested (eg muzzle socket on barrel attachment)
- Example UI provided
- Randomised weapon pickups
- Flexible accuracy and recoil system
- Weapon and weapon mode specific crosshairs
- Inventory based ammo
- Render texture, stencil and HUD based scopes
- Holographic and red-dot sights with projection reticules
- Laser pointers and flashlights
- Guided projectiles with a range of targeting systems
Full Save System
- Quick-saves, auto-saves, manual hard saves
- Full game state down to bullets in flight
- Persist data like health and inventory across scene changes
- Screenshots on save
- Save browser in game
- Custom binary serializer
- Save file inspector
- Fully customisable - save as much or as little as you want
- Seamless in-game saves
- Overrides for different save modes
Custom Kinematic Character Controller
- Collide and slide approach to collision response
- Supports complex moving platforms, with multiple examples
- Custom gravity strength and direction
- Custom up direction, or driven by gravity
- Slope, step and ledge awareness
- Friction and speed modifiers
- Smooth crouch jumping and height change
- Rigidbody pushing and collision response
- Push other characters
- Curve based slope speed modifiers
Powerful Camera Setup
- Layered additive effects such as bob, recoil, knock
- Field of view modifiers with turn rate scaling
- Field of view "pulses" for acceleration and impact effects
- Yaw, pitch and heading constraints for situations such as ladders or turrets
- Optional mouse smoothing and acceleration
- Powerful camera shake system, with one-shot and continuous shakes
- Cinemachine extension
First Person Body (*Animations Required)
- Character animation features tied to the motion graph
- Full body setup for arms and body in one object
- Torso and legs only setup so you can see your feet when looking down
- Split rig options for weapons with separate synced arms
- Foot IK for slopes and stairs
- Hand and finger matching to sync body hands to animated weapons
- Animation overrides system for attaching character animations to weapons
- Procedural spine bend and twist when aiming
- Root motion based motion graph states (with blending)
- Demo characters provided for owners of Kubold's Movement Animset Pro and Rifle Animset Pro
Melee & Thrown Weapons
- Hand grenade and baton examples
- Thrown items can inherit character velocity
- Strong and weak throws
- Quick melee and throw
Customisable Inventories
- Multiple styles emulating popular first person shooters (Doom, Half-Life 2, Halo)
- Quick-slots
- Quick switching with previous weapon
- Contact and interactive pickups
- Stacked objects such as ammo and grenades
- Loadout assets
- Easily extendable inventory database system
- Instant use consumables with modular actions
- Quick use items such as melee, thrown weapon, firearms and tools
- Can interrupt the equipped weapon
- Can trigger an animation on equipped to lower hand while using
- Can use alongside the equipped weapon (eg "kick" quick-melee)
Detailed Damage System
- Location based damage and critical hits
- Friendly fire
- Damage layers and filters
- Physics based and impact based damage
- Pushback (eg. shotguns or explosions)
- Bullet hit feedback
- Health manager
- Recharging health
- Shields and armour
- Healing and damage zones
Expandable Scene Interaction
- Instant use or hold to use
- Pick up and manipulate rigidbody objects
- Interaction events accessible in the inspector
- Highlighting and aim-over
- HUD tooltips
- Multiple door types
- Locked doors, with lockpicking mini-game
- Inventory based keyring
- Keypad UI based locks
NeoFPS Editor Hub
- Centralised hub for getting started in and working with NeoFPS
- Unity settings wizard
- Quick-start guides with object highlighting and links to docs
- Demo scene browser and guides
- Control NeoFPS settings and managers from one location
- Item creation wizards
- Integrations lists and links
Game Settings & Remappable Input
- Primary and secondary keys
- Gamepad profiles
- Text files for player editing
- Example in-game menus
- Access screen resolution settings from in-game
- Input System extension
Event Based HUD
- Menus & popups (info, alerts)
- Firearm info (ammo, magazine, fire mode)
- Health and damage
- Reactive crosshairs
- Hit and critical hit markers
- Inventory quick-slots
Demo Scenes & Assets
- Firing range
- Feature demos
- Work in progress "Facility" demo scene
- Jetpacks and guided missiles demo
- Animated weapon models
- Custom recorded and edited sound effects
- Demo menu system
Large World Support
- Origin shift system to reposition objects closer to the origin
- Supports transforms and rigidbodies, world space particle systems, trail renderers
- Built in to NeoCharacterController, moving platforms and projectiles
- Extensible
- Multi-scene saves
- Save system stores additive scene contents when unloading and restores them when loaded in later
- Demo scene included
Third-Party Asset Integrations
- Emerald AI
- Rayfire
- Highlight Plus
- Compass Navigator Pro
- More in development on GitHub
- See the integration demos in the Playable Demo
Extensible
- Scripting Reference
- Embraces Unity's component based design approach
- Use as much or as little of NeoFPS' features as required
- Uses interfaces to minimise dependencies and allow custom implementations
Render Pipeline Support
Set up for the built-in render pipeline out of the box, but comes with HDRP and URP shader graph versions of the shaders. You will find packages including shaders, scripts, prefabs and replacement demo materials in the NeoFPS/Extensions folder, along with tools built into the NeoFPS Hub to check requirements and import packages with a button click.
Note: Built-In shaders created with Amplify Shader Editor
Platforms
NeoFPS is targeted at standalone (PC, Mac, Linux) and console platforms. Its demos are not optimised for mobile games.