Over the course of spring break the big push for networking functionality in Capture Ball took place with a decent chunk of progress being made. This progress wasn’t as much as we hoped, but the AWS systems required a decent amount of learning to use Unreal with AWS GameLift. The resulting functionality has the users being able to create and log into accounts for the game, and the game client is now in the process of assigning users login IDs to controllable characters in the main game stage.
A lot of work went into setting up Lambda functions to connect to our Cognito user pool to have a really easy login system. We are using the basic Cognito log in up above in Unreal engine by loading the Cognito login url via a Unreal browser widget at start up (there isn’t much UI customization available but it’s not the main menu). There was some difficulty navigating the documentation to set up a simple login and account creation system that would not require users to give a lot of information away since this is a school project. Fortunately the simple accounts was possible and we were able to have user accounts sign in and give Unreal an ID code which we will use to connect players to the actual game functionality.
Above is the message from AWS Cognito that our sign in was successful inside the Unreal game client, where different debug log messages showing different tokens will be printed out (unfortunately not pictured here). Going through learning, setting up, and getting AWS set for what we wanted to do took a lot out of the time of the spring break, fortunately there has been a good amount of done there to go back and now connect the game client.
Above: Testing the a dedicated server setup on only a local machine, we have plenty of updates to do to our code for complete network replication.
Connecting the game client now involves trying to get the AWS sign routed to the Captureball game client which will talk to the Unreal game server instance on AWS through the GameLift SDK. This week will be spent getting that working before the demo and ironing out the replication of the gameplay code so the server can send out what is happening in the game to the connected clients! – Darrell Wulff