What Is it?

Upsurge is a free-for-all online multiplayer game, based in a city floating in the stratosphere, where players use a selection of weapons to destroy each other. The players can collect power cores which overcharge their ship, granting additional weapons as well as an increase in their shield's power.

Platform: PC

Tools Used: Unreal Engine 4, Perforce

Duration: 4 weeks

Team Size: 8

Role: Designer & Scripter

Responsibilities: Gameplay Design, Gameplay Scripter, Network Scripter

Player Movement

The player ship moves forward constantly and the speed can be controlled with W (Go faster) and S (Go slower). The player aims with the mouse and the ship follows (Looks at) the cursor. The further out on the screen that the player puts the cursor, the faster the ship will turn.

Player Turn Rate
Ship rotation pitch & yaw (See full rotation Blueprint)
Set roll of ship mesh (See full rotation Blueprint)
Set pitch & yaw of ship mesh (See full rotation Blueprint)
Full rotations blueprint

If the player holds down space, the ship will start to slow down, and the turn rate of the ship increases. This allows for quick turns and precise movement, at the cost of speed. When releasing space, the ship will be boosted away, depending on how long the button was held down. The longer the button is held down, the faster the ship will go, there is a limit of 200% of the normal ship flying speed tho. The ship will automatically boost away after 2.75 seconds of holding down the button.

This feature came up because I felt that just flying around was too bland and it didn't feel unique. I experimented with different solutions and after a couple of playtesting sessions, we decided to add this one because it stood out and was unique.

If the ship collides with the environment, then damage will be taken depending on speed and angle towards the surface hit.


The game is a multiplayer free-for-all game, running as a listen server with Unreal Engines networking library.

As the player starts up the game, it looks for active game rooms. It filters away full rooms. The player can then join the game by pressing "Join" in the server list.

As a player joins the server, the weapons and name that was chosen gets saved on the server and the player is given its own unique ID and color. There are eight different colors in total.

The server keeps track of all of the score and the level of each player, so that it can be used in the scoreboard. As a player opens up the scoreboard, a request is sent to the server to get the data, and it fills up the scoreboard.

If a player dies, the respawn menu is shown. The player can now swap weapons and the server needs to keep track of what player uses which weapon. The client also sends a request to respawn once the respawn button is pressed.

The server also keeps track of the game time and everyones score. It can check who is the leader by comparing all of the power of the players.

Game Mode

As the player enters the game, a selection of weapons is presented. The player can then choose one primary weapon, one secondary weapon and a name before entering the game. Weapons can also be swapped in the game if the player dies.

The ships are powered by a power core, which is the players experience and to win the game, players must collect as much power as possible. Power cores are dropped upon death, and it will spawn where the ship got destroyed. The killed then has to be quick to pick up the power core, for it is available to pick up for everyone.

As the player gains power, more weapons will appear on the ship and the shields power increases. This makes the player harder to kill and it gets easier to kill other players. The player has to be careful though, because  the higher power core level, the more power will drop upon death. This makes a comeback easier for a player that is losing.

Target indicators will spawn for each player on the HUD to indicate where other ships are and if a player is in the lead, a special crown appears inside of that players target indicator. This makes that player a target for everyone to hunt.

When a player dies, a power core is dropped.

Once a core is dropped, it will sit still on the ground until it's picked up. It will look for a player and if one is found, it will move towards the player. Once the charge hits, it gives experience and score to the targeted player.

The core continuously look for a player.

When a target is found, the core moves towards it and once the core hits a player, experience and score is given.

The server keeps counting down until the game is over and announces how long time its left every minute.

When the game ends, the server checks for the winning player and destroys all ships as well as show the score screen.