This week in Captureball is more of a slower week when it comes to major milestone progress as much work was concentrated on fixing up some of the AWS technologies to be used for the game. The technologies in question include; GameLift SDK for interfacing Unreal with AWS, GameLift Flexmatch for matchmaking if needed, Cognito for user accounts and sign in, DynamoDB to store various things like some user account data, AWS Lambda which has different functions written to communicate with different AWS technologies, and finally API Gateway for managing the different kinds of requests needed for this kind of dedicated server using these services.
Above is an example of a super basic AWS Cognito user account sign-in page. A page like this is currently being integrated into the Captureball Client for users to be able to have an account made on the AWS system which will make it easier to connect the Unreal Engine networking model to the GameLift SDK. It is just focused on basic functionality for now, as it is a literal web browser page that is being brought up through the Unreal UI system. There is still some more AWS work to be done and then we will be able to hook up more of Unreal’s networking system to the service.
Unreal uses a client-server model where the server will host the game and will be the place where the game is actually taking place. The server host will then send updates client-side to what is happening in the game the clients are all playing. This is where Unreal’s built-in replication system for multiplayer comes in, as the client player controller takes “control” of in-game objects the client player controller will send their inputs to the server. The server then will be taking in all client’s inputs and using them to simulate the game. The clients will then see the result of the server’s simulation through the sever sending back the current values and variables which is “replicated” onto each of the clients participating in the current game session. These values will be set and tell the clients things like player and object positioning, score, when to play a sound or visual effects, etc. In Capture Ball we have a player controller that sends input values to the in-game player character it’s assigned to. In the next few weeks, we will be looking to use the replication feature in Unreal to send it to the server as well! -Darrell Wulff
This past week we worked on adding in additional features that are sure to come in handy to the average player when they want to take a break from the action.
We implemented a pause game feature so that players are able to open up a menu where they are able to select between a set of options which include resuming the match, opening up an options menu, exiting the match, and exiting the game.
As of right now the only two options that can be selected and work are the resume match feature and the exit game feature. The exit match feature will be added shortly when the networking feature is merged with the rest of the game. As for the options menu, we will be working on that so that players are able to fine-tune things such as camera sensitivity and custom controls. -Jack Koscheka