Home

Awesome

UE4_SusiPlugin

This is the sample project for the Game Engine Architecture with UE4 course taught @ Faculty of Math and Informatics at the University of Sofia. The lectures can be found here - https://github.com/nikoladimitroff/Game-Engine-Architecture

It integrates Sofia University's Susi system into UE4.

The repo is structured as a standard UE4 project, the plugin itself is in /Plugins/Susi/.

Disclaimer

This is meant to be an educational resource, not a production-ready plugin. There are may be bugs and/or missing features, pull requests are welcomed. Keep in mind that the code must be above all easy to understand.

Plugin structure

SusiLoader

Handles connection to susi using the RESTful API provided by https://github.com/nikoladimitroff/SusiParser Can log multiple users and provides the data back using an instance of FStudentInfo. It's Tick method must be called or otherwise no requests will go through.

SSusiLoginScreen

A custom Slate widget used for logging users into Susi. Has 3 states:

USusiComponent

An ActorComponent that can be attached to actors and have them log in Susi. You must set its SusiUsername property to make things work. It internally reads the user's password from a Content/PasswordFile.txt so make sure you write the credentials there. Reading from file is neccessary as you don't want to write your plain password in the Component's field

USusiSettings

Provides common settings for the plugin such as text / font used for SSusiLoginScreen or change the location of the password file. Note that not all of these settings are meaningful as production settings but they are there to show how settings can be exported. Settings can be changed via config files or from Edit -> Project Settings -> Plugins -> Susi.

FSusiModule

The module's public API implementation. Implements the logging category and also registers the plugin's settings to the editor. See RegisterSettings in Susi.cpp.

SusiActor

SusiActor is a blueprint-implemented actor that uses the USusiComponent and displays the data over the actor's static mesh. See /Plugins/Susi/Content/SusiActor.uasset for details