This past week in the development of Captureball involved a bit of scrambling in trying to get a basic demo ready for our capstone group’s demo showcase. The Captureball demo involved a very brief playtest of some very basic networked multiplayer gameplay that had a lot of things we have been working on disabled in order to avoid some replication bugs. Though this demo was extremely rough and did not have a complete game loop for the players to try out. It has taken a lot to set up the AWS dedicated server so the fact that some players were able to connect and throw each other around is a great success!
The above picture describes the beginning of this week’s next updates to Captureball before the final showcase. Here we are now focusing on reigning in on our gameplay, input, and networking setup around a full match game loop as promised in the start of this project. It will consist of a capture round of collecting balls and then an elimination between the two teams. The two teams are signified by yellow and blue colors with the UI in the picture showing how many people are currently alive on the player’s team. In this case there is one yellow player so the top value shows only one and the blue team has two alive so the top UI value for the blue team will be 2. The third value is how many balls have been capture in the team ball goal capture area.There will be some UI improvements to make this more clear as what theses values mean at a glance.
We can also see that the balls captured in the team capture goals are replicated correctly to the clients and so is the ball generation. This is done by using RPC (Remote Procedure Calls) that Unreal Engine makes easily available to us through C++ function definitions. Here the generator class will have a function designated as an Server RPC which will be called on the client side but executed only on the server.
This will then spawn our dodgeball blueprint class which is replicated by the server which allows for the dodgeballs to be spawned back onto the client’s game in the same spot. The networking also works for picking up and throwing the dodgeballs. The next steps is to continue to smooth out large bugs that don’t allow certain players to join a game, network the rest of the movement functions, and make sure the rest of the game loop works as intended before the showcase! -Darrell Wulff