Game Designer
Technical And System Design At Freejam
My time at Freejam has covered a broad range of responsibilities, from systems to audio design. Throughout it all, however, my passion has been in developing robust systems and tools that empower teams to iterate quickly, creating interesting experiences and facilitating new and exciting ideas. My work spans the creation of tools in Apps Script and Unity/C#, Behaviour Tree-based AI Design, the creation of game modes and systems in Unity Visual Scripting and more, all aimed at creating engaging and sustainable pipelines and content.
​
Key Achievements:
-
Led the design and implementation of robust Visual Scripting systems for PvE modes, including a dynamic “AI Director” State Machine.
-
Engineered a “chain of responsibility” approach to game systems, reducing dependencies and enabling rapid iteration for non-technical designers.
-
Oversaw the creation of multiple PvE Game Objectives, difficulty scaling, spawn logic, and a centralized “Game Master” script for coordinated gameplay flow.
-
Designed, documented and implemented complex Behavior Tree systems for AI driving arbitrary UGC vehicles.
-
Created custom tools in unity with C# to plan, price and produce assets for Season Passes and Item Shops with dedicated export tools for producers and artists.
-
Built an Apps Script resource drop balancing system for 36 resources with highly customisable Monte Carlo systems, utilising different player types and experiences for game-wide data.
Visual Scripting & PvE Systems
When becoming acting lead of the Design Department, my primary objective was to implement robust Visual Scripting systems that would enable the creation of dynamic PvE game modes and allow the team to test, experiment, and iterate far more efficiently. The PvE modes were designed with a Tech Design approach, relying on the interplay between various components to generate diverse behaviors and enhance replayability. Starting from a selection of five unique Game Objectives, such as Defense, Escort, or Assassination, the system randomly chooses and spawns these objectives at the outset of each match. A State Machine system, inspired by Left 4 Dead’s “AI Director,” then monitors the player’s actions and overall game state, adjusting the type and difficulty of enemy spawns, triggering special events, or modifying upcoming objectives in response to player progress.
​
Each of the five Game Objectives were fully scripted alongside a difficulty-based enemy spawning system, an AI Director State Machine, player respawning mechanisms, and a “Game Master” script that queues objectives and handles win/loss conditions. All of these systems followed an “Ask, don’t tell” philosophy, where, for example, the director can request changes—such as adding enemies—from the enemy spawning system, but only the spawning system itself makes the final decision. This chain of responsibility approach accelerates iteration, since each script functions with minimal dependencies, making it easy for non-technical designers to experiment and provide feedback in their own scenes, with their own custom vehicles and enemies.
AI Behaviour Trees
I designed the core behavior tree infrastructure and documented it for the programming team, enabling them to create the necessary nodes. Enemies were selected from a randomised pool of player-built vehicles, each with unique movement types and weapon configurations, which needed to inform their engagement tactics, distance management, and positioning. Additionally, the bots used in PvP needed to mimic real human players, requiring a responsive and intelligent tree while staying fun to play with and against.
​
I introduced a “relative position scoring” system that evaluated potential positions around a target based on dynamic factors like distance, angles, and obstacles. The highest-scoring point was stored as a local space offset and reevaluated rarely, so calculations could be reduced, and enemies could move intelligently, chase players naturally, and coordinate with teammates.
​
To complement this, I implemented a weapon scoring system that selected the most suitable weapon by considering target location, ammo, health, and the overall game state; the weapon choice further influenced the positioning system to create seamless AI strategy shifts.
​
After almost a year of iteration on the PVP behaviour tree, the resulting AI uses a semi-state-like infrastructure, such as "Chase and engage target" or "Hold and Defend Point" to efficiently demonstrate intelligent and dynamic seeming behaviour while keeping the players as the focus of the game mode.
C# / Unity Tools
To manage our planned frequent content updates—around 125 new assets every four months—I developed tools in Unity and Google Apps Script that streamlined asset planning, pricing, and production. Once all assets were planned and confirmed, these tools exported the new season data in various formats for the production, art, and backend teams, making it much faster to integrate new content into the game. The tool itself also had a 2D hexagonal editor, which mimicked the UI in-game. This allowed us to build and preview the flow of the player's experience throughout a season, and ensure that item costs aligned with our targets.
​
For our Item Shop, I built a tool that reads the same JSON data the game uses, allowing it to gather item names, sprites, and rarities without manual input. Designers could then organize items, preview the shop layout, and export final data for server integration. This approach significantly reduced the risk of errors and the effort required to assign IDs, prices, and other metadata for large numbers of items, as well as manage bundles and discounts.
Google Sheets & Apps Script tools
Working on a data-heavy game meant spending considerable time in spreadsheets, so I wrote several scripts to convert spreadsheet information into JSON for direct use in the game, as well as tools to analyse and automate data.
The most impactful system first helped design, then balanced the drop rates of our 36 resources across 10 tiers, relying on a target “time-to-build” for sample vehicles and the rewards from daily and weekly missions. Monte Carlo simulations ran on this data to provide insights on players’ resource progression, considering different player types and engagements with our systems, ensuring a smoother and more engaging experience as they moved through the game.