Peter Tan

Unity Game Developer

With a decade of experience in Unity game development, I have cultivated a strong passion for creating PC and mobile games. My journey began with FPS prototypes and racing games, exploring various game publishing methods. My background in Industrial Engineering from the University of Toronto sparked my interest in game development, which I further developed with a diploma in Game Design and Development from Toronto Film School. Below are some of my projects I've been passionately working on.

Flight Runner Universe

Genre: Casual Multiplayer Battle Royale
Platform: Mobile / PC
Release Date: Google Play Alpha (September 21, 2024) / Steam Early Access (Coming Soon)
Role: Game Designer and Developer
Feel free to check it out on Google Play!
App Overview
Concept: Flight Runner Universe is a fresh take on a concept I had in mind for a while. Unlike traditional flat maps, players engage in combat on a 360-degree battlefield, providing a unique and challenging environment that requires strategic movement and positioning.

Gameplay Mechanics
Spherical Map: Players navigate a globe-like arena, utilizing the curvature of the world for both offensive and defensive maneuvers.
  • Gravity technically points toward any surface beneath the player's feet. In this sense, players and vehicles can rotate to match almost any orientation of the bumpy surfaces along the sphere's edge.
  • Speed Boosters give players a 30 seconds burst of extra speed. This effect then wears off over a short period of time, until the player's base speed is reset.
Diverse Arsenal and Combat combos: A player is equipped with primary, secondary weapon, and a Utility object slots. As well as Flight and combat abilities that can be used create offensive combos and also can be used defensively to steer away from danger. For weapons there are melee, hitscan, and projectile weapon types to ensure diverse combat styles. Each weapon has unique attributes and combat dynamics. (More Flight and Combat abilities coming soon)
  • Currently the loot pool consists of a primary and secondary weapon item, primary ammo item, utility objects (Speed boost, Health, and Shield consumable items) These can be inspected and managed from the in-game Lootbag Tab.
Vehicles: Fast-paced action is heightened with vehicles that can traverse the spherical terrain, adding a layer of tactical depth. (More Vehicle types coming soon)
  • With the current vehicle type in game, there is a turret mounted on top, for defensive and offensive capabilities.
A Mobile Battle-Royale Game
  • I came across Photon Fusion Networking while reading up on updates to Networking solutions for games. Immediately, I was impressed by the highly optimized, low latency, net code solution that I wanted to showcase it in my next project, Flight Runner Universe.
  • For this project, being a mobile game first, using a Shared-Mode server architecture, balancing server performance with server costs, allows me more flexibility in scale up the game as an indie solo developer.
  • With plans for dynamic content, and in anticipation of install sizes getting larger with the number of assets from prefabs, images, to shaders and materials.
  • Loading assets after initial install provides greater content scaling capabilities going forward.
  • I wanted to setup a secure and scalable backend solution for managing player data and profiles, while maintaining low latency for a global player base. Firebase Authentication in conjunction with social logins, as well as FireStore databases helped me achieve my needs.
  • Using FireStore databases, I setup the necessary data structures I needed to track games, and user profile data. From which I can manage game related data, such as ids, descriptions, to urls to CDNs where downloadable assets reside.

    This allows me to link any assets to the data retrieved. Useful for creating store items, rewards, and user obtained items.
  • Future goals are to implement leaderboards with Game History datas, given enough players.
  • Developed a progression system with dynamic reward tracking and database integration. Season Passes come in free and premium tiers.
  • The premium season pass can be purchased using premium Purple-Tokens, that can be obtained from the In-App Purchase system.
  • From the Free season pass, users can unlock season rewards with Purple Bits, a free currency earned through gameplay. The rewards are unlocked by a user's level. User's experience per level follows a geometric sum formula with a set exponential rate, where the base XP for the level 0 is 100xp, and a cumulative of 1,000,000xp at level 100.
  • Designed IAP screen and integrated store functionality for app monetization.
  • Using Firebase as a backend to track user datas and to build out the necessary database tables required for creating "StoreItems" based off generic "Items" to "Rewards" from a user's season pass.
  • With Purple Tokens being a premium currency that is currently obtained via the "Store" tab, users can spend these premium tokens to unlock / upgrade to the Premium Season Pass upon which further Premium only rewards can be obtained. And also the premium tokens can be used to obtain further items within the "Store" tab.
  • Created a locker screen with filtered selection functionality for personalized skin customization.
  • Specific optimizations for Scrolling UI is done by activating only visible UI cards. Created custom scroll elements with LeanGUI and LeanAnimations instead of using the default UI scroll elements. This ensures I can load hundreds of cards without scroll performance being affected.

    All loading is performed asynchronously as to ensure app responsiveness during loading and/or processing of data.
Zone of Danger
Dedicated Private Server hosting FPS Demo

Delving deeper into my thirst for multiplayer games, I came across a scalable networking solution in Photon Fusion  as well as Amazon Light Sail, which provides virtual private servers through Amazon Web Services. This has helped me to better understand the approaches to Dedicated Game Servers that allows me to leverage the tools I am provided with.

I'm currently adding common BR functionalities to the game. The latest update includes framework for Character Selection. Feel free to check the builds out, or running the Linux build on your own linux server for other players to join.

Flight Runner
Personal Online Multiplayer Racing / Combat Project

Flight Runner, a racing game. Inspired by Asphalt / Crash Team racing. One particular aspect was the drift / boost combo. Hitting the sweet spot during a drift will provide a larger drift boost. This was a key skill Crash Team racing, that I found rewarding.

I'm currently building a progression system that uses game currency obtained by placing well in races, that one can use to upgrade parts of their vehicle, improving the vehicle stats.

As well, I am building a 'Fuel' system, that will deplete by racing, but will be continuously refilling at a rate over time. So there will be a garage system introduced as well, where the player can make changes to their statistics. This will be necessary to compete in future races within the campaign mode. Where you're racing your way up in the league.

I will be introducing leaderboards amongst users, as well as achievements within the game as well.
Recreating a couple features of the Megaman Battle Network series
Recreating Megaman Battle Network - Grid Battle System (2.5D)

Megaman Battle Network 2 (MMBN) we play as a character, Lan, as well as his net navi, Megaman.This battle scenarios focuses on controlling Megaman and using his abilities to defeat enemies. The demo features megaman in his raw form is equipped only with a buster cannon, and a basic charge to deal higher damage with the buster cannon.
TileDynasty FPS Arena
Personal Online FPS Project inspired by Quakelive / Doom

You play as a renegade with incredible endurance and speed, demolishing enemies. Players can work together against AI Enemies or go head-to-head accomplishing objectives within each game mode.
I began development of Tile Dynasty FPS Arena as an individual developer. The motivation came from years of playing Quake Live, and I was impressed by the multiplayer experience, where for the most part simulating fast moving objects that could stop on the dime was done well. I became interested in how multiplayer games are made, especially optimization.​This game features strafe jump physics, projectiles that exert force upon explosion, 2 game modes, and a couple of maps. Though it is my first Online FPS game, there were plenty of learning experiences for me to consider in my future multiplayer projects.
A Quake, inspired unity recreation of Campgrounds, DM6, my favorite map.
FPS - Inspired by Quake

I really enjoyed the Rocket Jump, and strafing mechanics of Quake. To me this was a crucial skill in the game, and I felt it really added depth to the mechanics, rather than the typical modern day 'attechment' / 'perks' strategy to the game. Quake built the strategy RIGHT into the physical gameplay, movement, rather than relying on UI menu pop ups, and customizing your weapons...

To me Quake hit it right on the head for how fps games SHOULD be developed. Menus in action paced games, just kill the fun for me.

Building the level by memory was simply really fun, it tested my knowledge of the geometry of the map, I had repeatedly experienced countless of times prior.
Ultimate Flickball Arena
Personal Split Screen Battle Arena Project

Ultimate Flickball Arena is an abstract local co-op combat game designed for a Game Jam in 2019. The theme was 'fast and slow'. The arena is a donut shape, with players trying to eliminate each other. The arena features speed up and down rings, as well as a death zone that is constantly rotating around the arena that the players must avoid.
Barry's Island
Personal FPS / TPS Camera Behavior Demo

Barry's Island is a project showcasing a Camera Switching System that allows the Camera to transition between third and first person views. I started this project to be a base Multiplayer Project that I can always fall back upon to build future multiplayer games. It features Photon Network Events, similar to RPC commands but with more flexibility without the restriction of a 'PhotonView' present.
Junken Drivers
Local Split Screen Multiplayer Racing Project

Junken Drivers features a split screen couch racing game using X-Box controllers to race. This was a capstone project working with a few student programmers and artists in Toronto Film School. There were key leanings from collaborating with other students, familiarising ourselves with GitHub in merging our works, understanding how to resolve differences in code, and avoiding them in the first place.