The update v1.2 include a huge amount of new features and changes. I will only list the major ones as listing everything would go beyond the scope.
Changelog
v1.2 (02-14-2017):
New Features
Near game-ready StartMenu
This includes a singleplayer (create new game, load singleplayer SaveGame), a multiplayer (Host new game, Host multiplayer SaveGame, Join game and an options menu (default options for saving, full graphics options). The StartMenu is designed minimalistic just like the user interface and the same widgets are reused as often as possible so you can change the design quickly as soon as you want to.
Game menu
Ingame a player can open the GameMenu by either pressing Esc or F1. The widget used for this menu are the same as that in the StartMenu so the style will automatically be consistent. You can choose if the screen should be blurred while the GameMenu is open. In singleplayer games opening the GameMenu pauses the game.
Multiplayer system
The Multiplayer system uses the Online Session nodes with all functionality these nodes offer. In addition to the JoinSession node a game can be joined by directly entering the host’s IP. The server will load the last status (including inventory, equipment, crafting manager) when a player who’s known to the server connects. The server even differentiates on which levels a player is already known and you can quickly change what variables will be remembered bound to the level and what variables will be remembered bound globally over all levels. Each player can chose some player specific variables combined in a struct when joining a game. This variables are used to define what type of character the player wants to play. Whenever a player respawns these variables will be used to set up the new spawned character aswell.
A player is identified on the server by the playername he chose. There is no unique way to identify a player without an online subsystem. Before releasing the game you will most likely want to replace this with a unique ID of the online subsystem (e.g. steamID).
SaveGame system
The SaveGame system is directly connected to the multiplayer system. Whatever variables you choose to be bound to the level or bound globally bound over all levels will be saved and loaded just like that. In addition the SaveGame system saves and loads the inventory of all actors with an inventory in the level, the transform and remaining burning duration of campfires and the Open/Closed status of all actors that inherit the interface BP_iOpenable (windows, doors). The SaveGame system also saves and loads game specific variables that define the rules of a game (e.g. difficulty, weather). At last it also saves some variables like the current level, date of save and the ingame time.
The options (SaveGame, video options) are saved in a different SaveGame object so these are remembered after restarting the game.
Scoreboard
The template now includes a scoreboard. This scoreboard will automatically display all online player and their chosen name. The scoreboard displays the name of a player, his score, deaths and ping. Score and ping are stored in the player state and (per default) increased whenever one player killed another player / dies. The scoreboard can be sorted in ascending or descending order for each of its attributes. Per default a player can change this order by clicking on one of the buttons of the scoreboard.
Inventory system
- The inventory system now uses a DataTable to store the information of items that don’t vary between instances of an item. This nicely reduces the memory usage (especially from empty slots) in case of very large levels with many inventories.
- Items can now be dropped and picked up
Changes
- The inventory system now only replicates an inventory when a player opens it instead of replicating neutral inventories to everyone. This is the absolut minimum information a client can get from the server and therefore as proof to cheaters as the rest of the template. This does also fix an issue of the inventory system regarding network relevancy that could’ve occured earlier.
- The template now follows Allar’s style guide as much as the submission guidelines allow it.