Intro
Hello, Joel here. I’m one of the programmers working on Sky Conquerors. Together with Kevin we focus on the networking part the most. But as Kevin also mentioned in his last devlog we will be writing about non-networking stuff as well since there is a lot of other things to do.
Networking
At the start of the project I worked on a test level with a test character and just tried to understand, learn and implement Unreal Engines’ networking into the game. This felt very simple at the start, it was checking checkboxes and BOOM, multiplayer now works! #network #ez
Although it still requires some understanding as to what is actually happening. In Unreal Engine, when something “replicates”, it means that whatever object has this checked, the object will be copied to every connected client as well. But this could require that the server is responsible for creating the object in the first place, that’s where custom events, or so called RPC’s (remote procedure calls) come into play. These events can be run on the clients to call upon the server to run certain functions and blueprints. This is great for easily choosing what parts of your code is network reliant. In the example under I have created a custom event to replicate so that the server runs the blueprint SpawnActor Bullet.
And so now whenever a client tries to call the Fire event. The server will run this event, spawn a bullet, copy the bullet to all other clients, and BAM, now everyone can get shot by a bullet! #humanrights
Game test and modes
I have been working on making the game playable as soon as possible, for the purpose of being able to test the game along with the rest of the devs. Making sure the game runs the same for everyone with the networking parts. Currently we are behind schedule since this was supposed to take place a week ago.
I am also working on our game modes. Currently I’m trying to just get a simple Free For All mode. Here I have been implementing functions such as to respawn and becoming a spectator. There have been a few bugs with this such as the respawn has sometimes spawned 2 characters, meaning there are more characters in game than there are players. These empty characters tend to run towards one direction until it gets stuck or fall down the map. #tears
Our group has a fairly low knowledge when it comes to Unreal Engine. Which means we don’t know how to exactly go about our way when creating features. There are a lot of useful, and somewhat necessary, modes and classes to be used as a default in each level. They can be found in the project settings, under maps & modes. These modes are as follows: GameMode, Default Pawn Class, HUD Class, Player Controller Class, Game State Class, Player State Class and Spectator Class. Knowing what these do and are meant for helps a lot. I will be sitting a lot with this and try my best using them correctly.
Stuff for another time
Another thing I have run into is that calling upon an event using some sort of delay. If this event is called twice within a short period, before the delay is done, the event probably won’t run properly. I have no clear solution for this at the moment. But maybe next time! #dontusedelays #wherearemythreads #whatstateorgamemodetouse
So ‘til next time! #goodbye
1 comment