-
Notifications
You must be signed in to change notification settings - Fork 5
Development Guide
This page describes how to setup the project in Unity and outlines the dev scenes included. Note that to work with the code you will need to have purchased NeoFPS. However, there are plenty of ways of contributing without the asset. We are not using any other paid assets.
- Checkout the source
- Add the project to the Unity Hub
- Open the project in Unity (2022.3.16f1 at the time of writing)
- Import Neo FPS v1.1.27 - Note Neo FPS Hub will tell you the layers and pipelines are not setup correctly, they are, ignore the error (if you own it, if not don't worry, you will still be able to contribute)
- Open one of the dev scenes in
Assets/_Dev/Scenes Dev
When developing it is often desirable to configure a scene specifically for the work being done, there are a number in the repo already. These are discussed below, but you should feel free to create your own if none of these suit.
The first thing to do is identify or create a dedicated development scene for each major category of work. In this document we will look at how to setup a scene for developing the Level Generator. The current version of this scenes can be found at Assets/_Dev/Scenes Dev/Level Dev.unity
Each dev scene will need at least the following content:
- Direction light
- An instance of
Assets/_Dev/Prefabs/Player/RogueWave_Test_Game_Mode.prefab - An instance of
Assets/_Dev/Prefabs/UI/Playground HudAndMenuCanvas.prefab - An instance of
Assets/NeoFPS/Samples/SinglePlayer/Prefabs/HudAndMenuEventSystem.prefab - An instance of
Assets/NeoFPS/Samples/Shared/Prefabs/ScenePoolHandler.prefab - An object with the
Assets/NeoFPS/Core/NeoSaveGames/SceneSaveInfo.cscomponent attached

Most of the configuration for the scene is done in the RogueWave_Test_Game_Mode prefab. Even more specifically in the Rogue Wave Game Mode component. The most important settings are:
- Starting Recipes - Add any recipes you want the character to start with to this section. This means you will not have to wait to collect them
-
Levels - Add the Level Definition you want to use for this development scene. A good default is provided in
Assets/_Dev/Resources/Levels/Level Test.assetbut you will often want to provide a custom one to ensure that objects you want the player to collect or interact with early in the test are nearby the players spawn

There are a number things you can do to customize the generated level and make it easier for you to test whatever you are working on. These are mostly set in the Level Definition set in the above step.
Some things to consider:
- Set a seed so the generated level is always the same
- Limit the available tiles to keep the level focused on what you are doing
- If you have enemies in the level you can control which are spawned using the
Wave Definitions - Lower the Max Alive number to ensure you do not get overrun by enemies
- Use pre-placed tiles to ensure that your test level has everything you need in it, for example specific buildings and spawners
