← Back to selected work

GAMEPLAY & NETWORK PROGRAMMING

SmashTank

A competitive mobile PvP tank arena game built in Unity. I developed the core gameplay, multiplayer architecture, backend integration and progression systems with a strong focus on responsive combat and maintainable networked code.

UnityC#MobileNetcode for GameObjectsLobby & RelayPlayFab
COMPETITIVE MOBILE PVP
RoleGameplay & Network Programmer
EngineUnity
LanguageC#
FocusMobile PvP / Networking

Smash Tank is built around short, readable PvP encounters where movement, aiming and firing need to feel immediate on a mobile device.

MOVEMENT

Tank control

Responsive tank movement designed for mobile input while keeping gameplay state compatible with the multiplayer architecture.

COMBAT

Turret, aiming & fire

Gameplay logic covers aiming, projectile firing, hit validation, damage and the feedback needed to keep combat readable.

SYSTEMS

Abilities & equipment

Gameplay features are structured as modular systems so new tanks, equipment and abilities can be extended without rewriting the core loop.

PROGRESSION

Player growth

Inventory, upgrades, rewards and player progression connect the match loop to persistent account data.

Smash Tank garage and main menu UI
Garage, progression currencies, inventory and match entry flow.

The networking layer is designed around one rule: the player should get immediate feedback, while authoritative gameplay still decides the final result.

AUTHORITY

Server-authoritative combat

Critical gameplay results such as projectile collision and damage are validated by the authoritative side instead of trusting the local client.

LATENCY

Client-side prediction

Latency-sensitive actions provide immediate local feedback so shooting feels responsive even before the authoritative result returns.

IDENTITY

Shot IDs & network time

Unique shot identification and network timing keep predicted actions traceable and gameplay timing consistent between peers.

PERFORMANCE

Network-aware pooling

Projectile pools avoid constant runtime allocation and unnecessary spawn/despawn churn during repeated combat actions.

Networking stack: Unity Netcode for GameObjects with RPCs, NetworkVariables, network ownership and server-spawned gameplay objects.

The online flow connects the multiplayer session layer with persistent player identity and progression.

LOBBY

Session discovery

Unity Lobby is used to organize multiplayer sessions and the player flow before entering a match.

RELAY

Connectivity

Unity Relay handles client connectivity without requiring players to expose or manually manage direct network endpoints.

AUTH

Player identity

Unity Authentication provides the session identity used by the online flow and ties the connected player to persistent data.

PLAYFAB

Persistent progression

PlayFab supports account data, currencies, progression and persistent player information beyond a single multiplayer session.

The game supports a visually distinct tank roster while keeping the underlying gameplay systems reusable.

Blue and yellow Smash Tank variant
Tank variant 01
Purple and red Smash Tank variant
Tank variant 04
Blue and orange Smash Tank variant
Tank variant 08
Blue and red Smash Tank variant
Tank variant 10
Ice projectile variant
Projectile visual variant — Ice
Lava projectile variant
Projectile visual variant — Lava

Smash Tank is the project where I combined gameplay programming, networking and backend work into one complete multiplayer foundation.

  • Gameplay architecture: Core combat and progression systems built as reusable components instead of isolated one-off features.
  • Networking: Authority, prediction, timing and pooling considered as part of gameplay design rather than added after the fact.
  • Backend: Online sessions and persistent player data connected into the same player journey.
  • Mobile focus: Systems designed around responsive interactions and iteration speed on a mobile multiplayer title.
Smash Tank promotional banner
Smash Tank — competitive mobile PvP tank arena.