Wednesday, November 23, 2016

Tower Defense Starter Kit Tutorial: How to add new levels to the Level Selection Menu

The Tower Defense Starter Kit comes equipped with a level selection menu that enables players to choose from a list of levels as shown below:

The toolkit contains three playable maps & one main menu map by default, & supports usage of new custom maps as well. The following steps go over the process of adding your own custom levels into the toolkit:

1. Create a new custom level from the Content Browser.

2. Open the 'BP_GameInstance' blueprint within the Blueprints folder & select the variable 'LevelDataArray'. It should have four entries by default: one for the main menu & three for the sample maps. To add our new custom map, first add a new element to this array.

Each element of this struct array contains the following attributes: ID, ScreenName, FileName, Image, & Unlocked. The ID is used to set the level number, starting with '0' for the main menu level. It is not used for any calculations & serves only to provide a means for classification of levels. The ScreenName determines the name that would be displayed for the corresponding entry in the level selection menu. The FileName is used to store the address of the level asset. The Image is used to display a preview shot of the map within the level selection menu, & the Unlocked attribute determines if the level would be unlocked by default. If it isn't, it will be unlocked, as soon as the player completes the level linked to the previous entry within the Level Data Array.
3. Fill out the attributes mentioned above for the new level data element. Make sure to copy the name of the new custom map asset within the content browser & paste it into the FileName attributes. Here is a sample entry for a new level that I created:

4. Now close the project & delete the 'Saved' folder within the project folder. This ensures that the changes made to the Level Data Array do not get overridden by information specified in an existing save game file.
5. Now open the project, open up the main menu level from the 'Maps' folder within the Content Browser, & launch an instance of the game. The level selection menu will now display information about the new level, provided that it's been set to Unlocked. Here is a sample screenshot with the new custom level: