Releases

Latest - v1.1.00 (10th Mar 2020)

Additions

  • New save game system
    • Quick save/load using F5/F9 (by default) on standalone
    • Quick, auto (checkpoint) and manual saves
    • Save browser in main menu
    • Continue button in main menu resumes from latest save
    • Optional screenshots or thumbnails for quick and auto saves
    • Persistence (save character health and inventory on scene change)
    • NeoSerializable interface for components and scriptable objects
    • Formatters for adding save/load to complex third party components
    • File read/write on separate thread to prevent freezes on save
    • Loading screen system for async scene loading
    • In-game saving notification
    • Custom binary serializer/deserializer
    • Custom serializer for restricted platforms (eg WebGL)
    • Save file inspector
  • Parkour motion graph elements and demo
    • New motion graph states for wall running, dashing, mantling, skiing (crouch slide), pushing off walls, jump pads
    • New conditions for climbing, air time, collision flags, time comparisons, lookahead casts (velocity, direction, etc), enhanced casts that output results to parameters, direction and velocity tests, aim tests
    • New behaviours for recording time, applying body tilt effects, clamping parameters
    • New jump pad scene elements
  • Swimming motion features
    • Surface and underwater swimming states, with or without strokes
    • Wading state that modifies speed by water depth
    • Climbing out of water onto ledges
    • New water zone scene elements with flow and surface info
    • Drowning system that tracks time underwater
  • Jetpack motion state behaviours
  • HUD meters and readouts for motion graph parameters
  • Motion debugger tool
    • Charts character movement stats in detail
    • View character controller and motion graph data
    • Track motion graph parameter values
    • Scrub the graph to inspect specific frames and view movement in the scene
  • Body tilt & lean
    • Lean left / right, with proximity and speed checks
    • Motion graph behaviours to tilt based on wall contacts or movement
  • Weapon momentum sway spring effect that moves held items as the camera rotates
  • New scene management system for async loads with loading screen (ties into save system)
  • Added PS4 controller support

Bug Fixes

  • Fixed NeoCharacterController throwing errors on non-readable mesh colliders
  • Audio settings now correctly modifying mixer
  • Fixed OnEnter/OnExit for disabled motion graph behaviours
  • Swapped menu dropdown icon on motion graph behaviours to be more visible on light UI
  • Fixed surface manager returning incorrect surface from default layers
  • Pressing escape no longer locks input, but blocks it correctly
  • Removed 1 frame lag on moving platforms
  • Contact ladded base handling fixed (doesn’t force detach)
  • Fixed death camera height
  • Fixed over-amplified weapon sway when looking up / down

Changes

  • Motion graph now supports vector parameters
  • Motion graph connections can now use condition groups that allow combos of any/all
  • Complete rework of NeoCharacterController slope handling
    • Slope speed curves now applied to movement states, not controller
  • Moved game settings to scriptable object resources for easier editing
  • Scene switcher can now switch based on index or name, and allows persisting character data
  • Added “On Death” options to example game mode for loading from saves or returning to menu
  • Added object to surface hits to allow more complex effects
  • Changed weapon aim amplifier to work with variable up vector, and use more intuitive settings
  • Tied head and weapon bob to motion graph for more control over bob amount and rate
  • Added “rounds per second” and “rounds per minute” readouts to trigger inspectors
  • Added settings to block trigger when transitioning aim mode to prevent interrupting animations
  • Simplified ammo effect assignment in ammo firearm modules
  • Explosion and impact forces can now push the character
  • Improved inspector for level select menu
  • Added optional parameter to disable ground snapping when adding a force to the NeoCharacterController
  • Removed old explosion system deprecated in 1.0.05
  • Added audio handling to health pickup
  • Added repeat functionality to charged trigger
  • Added match camera position system to firearm editor to simplify setup process
  • Added all in one character for drop-in testing (doesn’t require spawner and reloads scene on death)
  • Enabled AI turrets in demo facility by default
  • Enabled post-processing by default (asset store tools can now save dependencies)
  • Can now specify camera FoV as horizontal (based on 16:9 aspect) or vertical, but applied in vertical for better ultrawide support

Upgrade Notes

From 1.0.06

  • Save System
    • In order to work with the save/load system, all objects to save require a NeoSerializedGameObject component
    • Any custom scripts that instantiate objects at runtime should be changed to instantiate via the save system if objects require saving
    • Refer to the sample prefabs and documentation
    • New input buttons have been added for quicksave and quickload
  • Leaning
    • The NeoFPS character now has an extra gameobject in the upper body hierarchy with an AdditiveTransformHandler, similar to the head spring on PlayerCameraRoot
    • FpsSoloCharacter needs to reference the new transform handler for its Body Transform Handler property
    • The demo characters use the BodyTilt and BodyLean behaviours
    • Refer to the sample prefabs and documentation
  • Game Settings
    • The game settings have been switched from singleton gameobjects to scriptable object assets
    • Game settings are now found in the NeoFPS/Resources folder
    • If you have manually placed the settings components in your scenes (not done by default) then you will need to delete them
  • Changes to WeaponAimAmplifier
    • The WeaponAimAmplifier behaviour which applies spring rotation to the gun when the camera is rotated has been modified to fix an up/down rotation limits issue and make the settings more intuitive
    • You will need to tweak the settings on your guns if the new defaults feel wrong
    • A new WeaponMomentumSway alternative behaviour has been added which applies spring position offset instead of rotation. This can work better with aiming down sights
  • Motion Graph Additions
    • All changes to the old motion graph elements should have been done in a way that the default settings match the original behaviour, therefore no work should be required to adapt old motion graphs
  • Neo SceneManager
    • All scene changes in the samples now go via the new Neo SceneManager
    • Menus and the SceneSwitcher behaviour (now named NeoFpsSceneSwitcher) have been updated to use this
    • This is not a requirement, but can take advantage of saving and loading
    • The build settings order MUST be scene 0 = main menu, scene 1 = loading screen. If this is not the case, then the save settings and scene switcher can be modified to reference the new build index / scene name of the loading screen

Previous Releases

Additions

  • New NeoCharacterController demo scene with arbitrary up-vector demo

Bug Fixes

  • Script errors in FpsGamepadSettings.cs due to refactoring not picked up with platform dependent compilation
  • FoV issues on ultra-widescreen monitors and when resizing window
  • Fixed HUD elements not unsubscribing from events properly on destroy

Changes

  • Tweaked pistol recoil
  • Added optional parameter to disable ground snapping when adding a force to the NeoCharacterController

Additions

  • New explosion system that uses pooled particle effect objects and a simple PooledExplosion behaviour.
  • Added example explosion prefabs.
  • New multi-object and particle muzzle flash firearm modules.
  • Split ballistic shooter into new simple ballistic shooter that ignores accuracy and camera aim.
  • Added explosive barrels (red in demo scenes).

Bug Fixes

  • Fixed issues with generated constants editor not refreshing valid state when name clashes are fixed.
  • Set proper layers for AI seeker targets on inventory demo characters.
  • Set correct audio sources for inventory demo characters.
  • Firearm drops now correctly set ammo even without a FirearmAmmoDrop attached.

Changes

  • Fixed “Apply Manually” errors in settings wizard (2018.3+).
  • The ballistic shooter now correctly handles accuracy based on the spread property.
  • All shooters now have options to use the camera aim or gun forward for both hip fire and aimed fire.
  • New accuracy caps in aimer modules allow maximum accuracy (0-1) to be set for aimed and hip fire.
  • Added layers property to CharacterInteractionHandler to choose layers it interacts with.
  • Added multiple inventory types to firearm editor quick-setup.
  • Added aim transform property to camera so effects can be layered on top.
  • Switched swappable inventories to use new FpsSwappableCategory for neater editor and easier expansion.
  • Renamed inventory keys to better describe items.
  • Reorganised inventory editors to make more readable.
  • The spring recoil module can now bypass spring multipliers for more intuitive settings.
  • Added RaycastHit versions of AddDamage on damage handlers for more complex use cases.
  • Renamed spring multipliers on aimers.
  • Added events to AI Seekers for state changes.
  • Thrown grenades now use new explosion system.
  • Demo grenade launcher now uses new explosion system.
  • Spring recoil handler can now bypass the spring multipliers.
  • Added base accuracy level for hip firing and aimed.
  • Tweaked demo firearms (recoil, shooters and aimers) for better handling.

Additions

  • Added new IRecoilHandler modules to modular firearms
  • Added health pickups
  • Added new BaseCharacter and BaseController behaviours and switched singleplayer versions to use these
  • Added new player character and inventory watchers and switched hud elements to use these
  • Added C# events to motion graph parameters

Bug Fixes

  • Hitscan and spread shooter were dealing damage twice when set to use camera forward vector
  • Set HUD inventories to auto-populate slot property in OnValidate and added start errors if not found
  • Enabled collisions between default layer and rough envirnoment geo
  • Fixed WebGL build issue with input bindings
  • Fixed motion graph connectable build error outside editor
  • Hitscan and spread shooters now use correct camera transform for aim (not spring parent)
  • Fixed divide by zero in AdditiveKicker if starting play mode from paused
  • Fixed start-order bug with character disabling on spawn
  • Prevented reload continuing after weapon switch
  • Fixed aimers being blocked if aiming during reload, but switching weapons before done
  • Fixed hold to aim not working
  • Fixed key rebinding not detecting some clashes
  • Fixed startup scripts not triggering properly in 2017.4
  • Added delay between startup checks to prevent overlap on 2019.2+

Changes

  • Moved firearm handling out of modular firearm and into new IRecoilHandler modules
  • Moved firearm scripts into NeoFPS.ModularFirearm namespace
  • Added firearm module error reporting in ModularFirearm inspector
  • Added collision mask option to firearm shooters with that defaults to bullet blockers
  • Switched firearm aimer modules to use vectors instead of proxy transforms (can set from a transform)
  • Switched HUD elements to use new base classes and be more “multiplayer friendly”
  • Removed static onLocalPlayerInventoryChanged event from inventory base and used character change instead
  • Switched canvas HUD in demo scenes to use root prefab instead of individual element prefabs
  • Reorganised weapon drop heirarchies to be more intuitive
  • Replaced crosshair and switched default colour
  • New motion graph editor UI elements

Additions

  • Added new infinite ammo firearm module
  • Added particle system firearm ammo effect
  • Modular firearm behaviour inspector now has troubleshooting and “add modules” features
  • New ChamberedReloader firearm module that uses different reload (anim & duration) when empty
  • New integrations available (https://neofps.com/integrations)
    • Emerald AI
    • Inventory Pro (in progress)
  • New TransformMatcher additive transform for matching animated camera moves

Bug Fixes

  • Enabled inventory HUD in DemoFacility scene
  • Fixed missing explosion sound effects
  • Fixed shadow casting on first person weapons and arms
  • Set default values for all variables to prevent import warnings in 2018.3+
  • Fixed turret damage, sight checks and rate of fire
  • Fixed hard-coded root asset path for auto build settings and startup checks
  • Added bullet trail cleaner that resets trail renderer on pooled projectiles
  • Fixed key bindings index out of range when changing button count after saving settings
  • Fixed occasional start order blocking character input activation bug
  • Fixed hard coded animator key for burst trigger hold
  • Fixed automatic trigger getting stuck in fire mode on quick switch
  • Fixed enabling character object or weapon while menu up bypassing the menu input block

Changes

  • Major rework of motion graph editor to make more reactive and respond to undo/redo better
    • Graph elements are now edited through the standard Unity inspector
    • Added copy/paste to graph viewport
    • Added “Move to Sub-Graph” to graph viewport
  • Replaced MotionData asset with data entries on motion graph and new MotionGraphDataOverride asset
  • Simplified API for creating new graph elements (states, conditions and behaviours)
  • Lowered minimum supported version to 2017.4 (long term support)
  • Split health manager out from solo character to allow swapping (Inventory Pro integration)
  • Added support for multiple box colliders (eg door and handle) to interactive object corner highlights
  • Tweaked layer, tag, and physics settings for Emerald AI integration
  • Tweaked FpsInputButton generated constant for Inventory Pro integration and future work
  • Added inactive “security” layer to demo facility with turrets and cameras
  • Added animator key parameter drawer to check keys exist in animator while inspecting behaviours

Additions

  • Added PlatformDependentObject to allow disabling objects based on platform (used for WebGL and console menus)
  • Disabled exit and graphics options on WebGL
  • Disabled exit, graphics and key bindings for console

Bug Fixes

  • Fixed build errors due to OnValidate on ladder motion graph states
  • Fixed obsolete GetPrefabObject warning on 2018.3
  • Fixed wrong type of hand grenades in inventory demo ammo crates
  • Fixed dropping excess swappable grenades from crates on floor

Tweaks

  • Tweaked light settings for facility and rebuilt lightmaps
  • Switched menu and back key to Tab for WebGL since Escape is reserved

Additions

  • Added minimal character setup with only movement and aim features

Bug Fixes

  • Fixed script compile errors for non-standalone builds
  • Fixed shotgun reload interrupt blocking input
  • Prevented welcome popup appearing on run when “Show on start” set
  • Improved startup order on first import
  • Fixed console errors when deleting a graph connection while inspecting
  • Prevented clicking off “Add Entry” dropdown in MotionControllerData inspector causing an error
  • Temporarily removed copy/paste and move to subgraph features of motion graph editor pending re-engineering
  • Improved ladder aim handling and removed incorrect up-down movement for “AimerHeading” setting on contact ladders
  • Can now change interactive ladder aim constraints while in play mode
  • Motion graph editor now correctly handles exiting play mode while editing runtime graph instance

Tweaks

  • Tweaked timings and recoil on weapons
  • Fixed execution order issue with NeoCharacterController height

The initial release on NeoFPS on the asset store

STAY INFORMED

Subscribe to receive exclusive content and notifications

You can unsubscribe at any time by clicking the link in the footer of our emails.

We use Mailchimp as our marketing platform. By clicking above to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp’s privacy practices here.