Numbskull Serialization

James Edward Kelly - Sep 12, 2020
3
4.33 out of 5 stars(3 ratings)
  • 33%
  • 67%
  • 0%
  • 0%
  • 0%

Simple and free serialization

  • Supported Platforms
  • Supported Engine Versions
    4.23 - 4.25
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

Numbskull Serialization aims to help new games with implementing a serialization system. The code takes away the hassle of saving a UObject with simple methods like `SaveObjectData` and `SaveObjectDataToDisk`.


The plugin includes simple interfaces objects and Blueprints can subscribe to. Callbacks like `OnSave` allow an object to save itself, or any other object, to disk. Likewise, `OnLoad` can be used to load and apply serialized data.


Saving an object can be written in three lines:

FObjectData ObjectData;

UNumbskullSerializationBPLibrary::SaveObject(this, ObjectData);

UNumbskullSerializationBPLibrary::SaveObjectDataToDisk(FolderPath + TEXT("MyFile.dat"), ObjectData);


The code is also open source and aims to be an expanded example of serializing data in Unreal from Rama's forum posts/tutorials.

Technical Details

Features:

  • Actor Serialization
  • UObject Serialization
  • Full Actor Reloading (save position, name, equipment, health etc)
  • Save and load to disk

Number of Blueprints: 0

Number of C++ Classes: 4

Number of C++ Interfaces: 3

Network Replicated: N/A

Supported Development Platforms: Windows, Mac

Supported Target Build Platforms: Windows, Mac

Documentation: https://github.com/NumbskullStudios/NumbskullSerialization

Important/Additional Notes:

  • The code should work on all platforms but has only been tested on Windows and Mac
  • The code should work on most engine versions but it is probably best to move the plugin from `Engine/Plugins` into `Project/Pluings`
  • Likewise, the code should work on all build platforms but is not tested outside of Windows and Mac
  • This is not a full save system. Objects registered to interfaces like 'ISerializable` need to save themselves