⇠ Back to Home

floG

Play Game

floG (short for For The Love of Golf) is a networked multiplayer simultaneous golf game where players can derail opponents using interactive obstacles and hazards that are moved or activated using triggers distributed over the map. Up to 4 players can be supported.

The primary aim of this project was to learn about and apply networking concepts to a game made in Unreal, whilst still creating a fun and novel player experience.

Fast Facts

Team Size: 4
Roles: Multiplayer Developer, Game Designer, and Level Designer
Timeframe: 13 weeks
Engine: Unreal 5 (with AdvancedSteamSessions and SteamSockets plugins)
Language: Blueprints Visual Scripting


  • Networked player movement and triggering of events associated with interactive obstacles and hazards across up to 4 client and server machines.
  • Investigated and contributed to incorporation of matchmaking using both Steam and IP address.
  • Handled spawning logic for when players load into levels and respawning logic for when players go out of bounds.

Physics are handled on the server, then synchronised across all networked clients using reliable RPC calls for the fairest possible play experience.

Some interactive hazards like the one above use particle systems to communicate their activation. These "cosmetic" gameplay events are executed on all devices to keep their world states up-to-date. The interactive hazard above is triggered by the player on the lower left corner.


  • Combined linear and non-linear spatial design to produce levels with multiple routes to the hole.
  • Positioned interactive obstacles and hazards at choke points to increase player tension and engagement.
  • Placed triggers for interactive obstacles and hazards outside optimal routes to the hole to create a cost associated with their activation.

Multiple routes
Multiple routes (shown in red) can be taken to reach the hole.
Multiple routes and interactive hazards placed at choke points
Interactive fire-breathing dragon hazards placed at choke points formed by converging routes.


  • Designed a system that allows players to derail opponents by moving objects and toggling hazards in their environment.
    • Prototyped early version of system to communicate its premise to the team.
  • Created and maintained game design documentation.


  • Creating levels whose layouts supported our design goal of encouraging direct player interaction and confrontation.
  • Testing Steam matchmaking implmentations in the standalone games instances we ran, as we could not attach a debugger to them. (UPDATE: as of March 2 2023, I have figured out how to attach a Visual Studio debugger to a standalone Unreal game!)
  • Getting server and client machines to travel seamlessly from one level to the next.
  • Facilitating team communications and ensuring that we continued to be on the same page despite several changes to project direction and scope over the course of development.


Polishing Multiplayer Gameplay

Implementing a lobby will make the matchmaking system more robust, since players can currently join an in-progress game at any time. Also, displaying a loading screen when waiting for players to finish joining levels will create a smoother user experience.

Preventing Degenerate Strategies

Time could be factored into the scoring system. Currently, a player can simply wait at the start line for their opponents to sabotage each other, before making their way to the hole after everyone else has done so without worrying about interactive objects and hazards affecting their score.

Better Signalling Interactive Obstacles and Hazards

Adding details conveying the "danger zones" of MapMovers might make them less frustrating for players to navigate, and overall help ensure maps are not harder than intended to traverse.


Fire-breathing dragon
For this fire-breathing dragon hazard, scorch mark decals could be added to the ground to denote the boundaries of the danger zone.


Play the Game!

Installation Instructions

  1. Click the button below to get access to floG.zip
  2. Download and extract the contents of floG.zip
  3. Run TrickShot.exe

Link to Build