Utlimate first person shooter version 2 is the next generation of the well know and battle tested UFPS (Ultimate First Person Shooter) asset. Version 2 was built from the ground up with over six years of experience from version 1 of UFPS and the Third Person Controller. The Ultimate UFPS is your solution for creating any FPS game. It is a professional, kinematic character controller designed to include the smoothest first person controls and to excel in all areas: PC, mobile, console, AI, networking, and VR which the latter two are in development. 
About the publisher :
Created and published by Opsive, a small indie company based in Raleigh, North Carolina, founded by Justin Mosiman and Sarah Watson. They started to develop iOS games in 2008 and released two titles. They switched to developing assets and tools for the Unity Asset Store and have been doing that full time since 2013. Opsive’s work includes many popular assets on the Asset Store include Behavior Designer, the Third Person Controller, UFPS, and the newly released Ultimate Character Controller. Opsive quickly gained in popularity on the Asset Store because of the quality of their tools as well as the support provided. Opsive’s assets have a five-star average rating out of more than 2,500 ratings which indicates quality work, satisfied customers and good support. 
What can you expect :
As the name suggets you expect the ultimate solution which can create any type of FPS game. You think of easy character creation and all features needed to create your own game. Fro a professional, kinematic character controller designed to include the smoothest first person controls and to excel in all areas: You will be surprised by the included unique features not typically found in other first person controllers – from the spring system which allows for fluid, procedural first person animations to the ability system that allows you to add new functionality without changing any of the core components or weapon sway and recoil system for shootable weapons. Other unique features include being able to change the gravity direction or the time scale on a per-character basis. Summarizing you could expect a high quality code base and some example demo scenes how to use the asset. So, first look at the provided features :
- Kinematic Character Controller: The main component is the Ultimate Character Locomotion.The Locomotion component is a deterministic kinematic controller. This makes it especially appropriate to use over the network in which case client-side predication and server reconciliation can be used to ensure ultra-smooth movement. At a low level this component is responsible for collision detection, slopes, stairs, moving platforms, root motion, etc. Higher level this component is also responsible for the movement types, abilities, and effects system. The Ultimate Character Locomotion component specifies its own gravity allowing for situations like Super Mario Galaxy where the character walks around a spherical planet. The component also has its own time system allowing for the character to slow down while the rest of the world plays at a normal speed.
- First Person Camera Controller :The Camera Controller component is responsible for moving the camera to the correct rotation and position. A State system allows you to create custom parameters for your specific camera state for instance zooming.
- State System : The state system allows you to create complex controller states and adjust every important controller parameter for each state, for instance camera bob and shootable weapon spring while running. The state system ensures to have a clean and customizable solution for your preferences.
- Dynamic Gravity System : The Align To Gravity Zone ability will orient the character to the direction of the gravity zones. Gravity Zones are triggers which influence the gravity direction of the character and you can achieve a movement like in super Mario galaxy.
- Advanced Moving Platform System : The moving platforms are a generic term meaning any object that can be moved/rotated within the scene. This includes elevators, trains, revolving doors, etc. The character can ride on top of or get pushed around by these moving platforms.
- Supports Dual Wielding : The inventory and item system allows for multiple items to be equipped at the same time. As each item is equipped they will occupy a slot within the inventory. Because there isn’t a limit to the number of slots that a single character can have there isn’t a limit to the number of items that can be equipped at the same time. In most cases the most number of items that a character will have equipped at any one time is two but you can adjust this at your preferences.
- Procedural Spring Animations : The spring system is an extremely powerful system which allows for smooth procedural motion without requiring any premade animations. This system is primarily used for the first person perspective, though the third person perspective also uses it for camera recoil.
- Inverse Kinematics (IK) : Inverse Kinematiks is the process of adjusting the character’s bones after the animation frame has completed. IK is extremely useful to position the feet so they are always on the ground, rotating the upper body so the character always looks at the crosshairs, and positioning the hands so they are properly holding the item.The CharacterIK component included with the Ultimate Character Controller uses Unity’s IK solution and works on humanoid rigs.
- Dynamic Effects with Surface System : The Surface Manager is the core component of the system and can be used to trigger effects depending on the object texture, thus reducing the need for assigning a Surface Identifier to every GameObject in the scene. It also has default fallbacks for (potentially missing) Surface Impact and Surface Types.
Extensible Ability System : The ability system is an extremely versatile system which allows you to add new functionality to your character without having to modify the core character locomotion system. Any “extra” character functionality within the Ultimate Character Controller is implemented using the ability system – this includes jumping, restricting the character’s rotation, or even firing a weapon. For instance the agility pack adds new abilities and can be used as tutorial or ready to use ability for your game.
Those are only the core components and there is much more to explore. if you want to learn more go here for more information.
Content and usability :
The example scene shows you all its features in a fun way to explore the asset and its abilities. You follow corridors and explore rooms where each feature is explained and shown off. First the different movementypes are explained like the RPG, Combat or free look to just name a few. Then you can explore the shootable and melee items. There a many examples and prefabs like pistols,aussault rifle, sword and shield and so which demonstrates how you need to create those items and how you can use them then in game. There are also rooms for the dynamic gravity system or the spring system which demonstrates the difference between the different spring states. In addition the editor scripts are explained how you setup the unity control and the sensitivity. Then the surface system and surface effects are shown. Also the camera gets an example how you can use the top down function and 2.5D state. if you wanna try the demo scene you can do that here.
Creating your game scene is pretty straight forward and can be done in minutes using only the editor. Also creating your own character is done quickly with the help of the editor gui
The Editor gui makes it easy and simple to create your own character and choose between the generic or humanoid. The generic one is particular interesting for instance for rideable meshes like horses which a prefab and an example is also included! The horse animpro set 2 is a great fit to extend this system even further.
All features and other useful scripts and systems listed :
- Kinematic Character Controller
- First Person Camera Controller
- Extensible Ability System
- Duel wielding
- Procedural Spring Animations
- Inverse kinematics support
- Wide Variety of Shootable Weapons
- -275+ Pages of Documentation
- Tutorial videos
to name just a few
Third-party Integrations :
As this asset is only covering the character controller part of your game, you might need other assets to get a full game. However, this asset got you covered as Opsive has many options for integration with third party assets for instance :
FPS Mesh Tool
A* Pathfinding Project
- Rucksack (in development)
All integrations have their example scene and are well explained and easy to use.
Tutorials and Support :
Although the asset is pretty straight forward, opsive has a great support system. First they have a community forum where you can post your bugs or search for frequently occurred questions and get there a hot fix. In addition the community there shares their scripts and thoughts so for instance if you are looking for a damage indicator or pickup script you can get there the script or share your own. Secondly there is a discord channel where you can chat with other UFPS developers and also with the developers of the asset itself and last but no least you can email them directly and as they are very responsive and happy to help you, I am sure your issue will be fixed in time.
Disclosure: This post may contain affiliate links, which means we may receive a commission if you click a link and purchase something that we have recommended. While clicking these links won’t cost you any money, they will help me fund my development projects while recommending great assets!