Unlike the 3D Game Kit project which was later separated into 3D Game Kit Lite, 3D Game Kit - Character Pack, 3D Game Kit - Environment Pack, 3D Game Kit - Props Pack, this sample project is meant to demo a vertical slice of full AAA game. Itās not intended as a start kit. I donāt want this to come across as āa lite version is silly or unnecessaryā. A multiplayer fps ākitā would be awesome but this project is a full game and not a kit to build a full game. If youāre looking to modify this project or start your own game on top of this game here are a few tips.
Use The Custom Tools Included
When adding new assets in your project folder, Right Click > Create > FPS Sample > Then Select Character, Weapon, Ability, Level, etc. Properly add the definition/configuration files to each new item and youāll have a much easier time getting it to integrate.
Use The UI Setup Scene
To change the UI (per character UI prefabs and overall UI prefabs) you need to change the actual UI prefabs (not just the instances of the prefabs in the UI Setup scene) so after customizing the instances you can click in the inspector pane Overrides > Apply To Prefab
Donāt Update Packages
Updating package files like Shadergraph can completely screw up project bindings and cause endless errors. Unless you know what youāre doing, have a way of restoring a previous version, and have a specific reason for changing package versions try to avoid it.
New In Before Old Out
Because the project tools make it easy to add new things (heroes, levels, weapons, abilities, etc) try to first get new things working before heavily modifying (or possibly breaking) existing assets. Since almost every asset is in some way tied to a separate settings file make sure you follow your references around if youāre straight up duplicating asset files.
Removing Existing Assets
As far as your question about what can safely be removed - thatās tricky. If you right click an item in your asset folder you can āselect dependenciesā and see which other files that item is attached to (or could possibly break if deleted from project). Removing textures (any kind of color maps) from models, materials, or shaders will cause them to be drawn wrong but may not actually stop the game from running. Removing prefabs without sorting out the scripts that reference them will likely cause more game breaking errors.
One way to work through script files with little to no scripting knowledge is to double click the C# file in Unity, let your IDE (Integrated Development Environment like Visual Studio) open up, select all the text in the script, comment out the entire script (command+/ or control+/ or control+c depending on specific IDE), save it, and return to the project. This will disable the script from doing anything but leave its text and location intact. You can rebuild your scripts in the project tools pane and run the game to see the effect. Afterward you can always go back, open the script again, highlight all the text, uncomment everything (command+/ or control+/ or control+u), and save it back to normal working order.
Project Performance
I have a 21.5-inch Late 2012 iMac (3.1GHz i7-3770, 16GB RAM, NVIDIA GeForce GT 650M 512MB graphics). Running this project on the macOS side (in the macOS Unity editor and macOS standalone builds) I see 1-50 fps even with low resolution, low settings, and no post processing, even in level_00. On the Windows side (in the Windows Unity editor and Windows standalone builds) I see 20-60 fps with ultra settings, all post processes, even in level_01, and even running multiple instances of the game, but only with low resolution. Bumping the resolution kills performance as requirements begin to jump up and out of my machineās ranges. Just some info for people running older machines.