STAGE 2-5
PROTOTYPE

Tic-Tac-Toe Multiplayer

Role Multiplayer / Netcode Programmer
Timeline 2025
Platform Unity 2D · PC (Networked)
Team Size 1 (Solo)
UnityC#Netcode for GameObjects 2.8.1Multiplayer ServicesServer Authority
STAGE 2-5 // BOTH TIC-TAC-TOE MULTIPLAYER Unity C# Netcode for GameObjects 2.8.1 Multiplayer Services Server Authority SYSTEM_INIT: OK | MEMORY: ALLOCATED | RENDERING: ONLINE

Mission Brief

Implement a tamper-resistant client-server multiplayer architecture in Unity where clients submit unvalidated move intents via RPCs and the server acts as the single source of truth.

Key Systems Engineered

Server-Authoritative RPC Move Validation (GameManager.cs)

Clients invoke [Rpc(SendTo.Server)] ClickedOnGridPositionRpc(x, y, playerType). The server independently validates turn ownership (playerType == currentPlayablePlayerType.Value) and cell vacancy before mutating authoritative board state and broadcasting [Rpc(SendTo.ClientsAndHost)] visual triggers.

Automatic State Replication via NetworkVariable<T>

Tracks currentPlayablePlayerType, playerCrossScore, and playerCircleScore as NetworkVariables whose OnValueChanged callbacks drive local UI updates across connected clients without manual score-sync packets.

Precomputed 8-Line Win Evaluator & Deterministic Session Bootstrapping

Builds all 8 winning Line structs (3 grid coords, center cell reference, and Horizontal/Vertical/DiagonalA/DiagonalB orientation enum) once in Awake(), and auto-starts the match on the server the instant ConnectedClientsList.Count == 2.

Implementation Details

Architecture & Deep Dive

This project implements server-authoritative multiplayer using Unity’s Netcode for GameObjects (NGO). Clients send move intents as RPCs, but the server independently validates turn ownership and cell vacancy before accepting any move, preventing client-side cheating.

Game state is replicated automatically via NetworkVariable<T>, with UI updates driven by OnValueChanged callbacks rather than manual synchronization packets. The win evaluator precomputes all 8 winning line configurations once at startup.

Select Player Class

Your class determines which skills and projects are highlighted throughout the site.

Achievements (0/11)

Press Start
Skipped or clicked through the boot sequence.
Class Act
Selected a Player Class to customize project ordering.
Efficient
Opened the 60-second Recruiter Mode summary.
Level Up
Opened your first engineering project Case File.
Completionist
Cleared all 12 project Case Files.
Coin Collector
Found and collected all 7 hidden coins across the site.
Old School
Entered the Konami Code or activated Arcade Mode.
Snake Charmer
Scored 10 or more points in the 404 Game Over Snake mini-game.
Hello, World
Copied the contact email address to your clipboard.
Curious
Opened the Keyboard Controls (?) overlay.
Bonus Round
Entered the hidden Bonus Stage development lab.

System Settings

Theme
Motion
Audio
Sound Effects
Advanced
Keyboard Shortcuts
Show Hidden Coins
Arcade Mode (CRT)

Keyboard Shortcuts

Navigate Sections
1 2 3 4
Open Achievements
A
Open Settings
S
Toggle Audio
M
Close Modal
Esc
Konami Code
↑ ↑ ↓ ↓ ← → ← → B A