Patintero

A multiplayer LAN game with real-time socket-based communication and player synchronization — built for a networking course at UP Los Baños, based on the traditional Filipino street game.

JavaJavaFX

The Problem

I wanted to digitize Patintero — a traditional Filipino outdoor game where one team tries to cross lines guarded by the opposing team — as a multiplayer LAN game that preserved the real-time, competitive spirit of the original.

The Solution

I built a networked multiplayer game in Java with JavaFX for rendering.

  • Socket-based networking — TCP sockets for reliable game state synchronization between players on the same LAN.
  • Real-time player movement — Smooth interpolation between network updates to prevent choppy movement on remote clients.
  • Game mechanics — Full rule implementation including line guarding, crossing detection, scoring, and round management.
  • Interactive chat — In-game text chat for player communication during matches.
  • Session management — Lobby system for creating/joining games with automatic player discovery on the local network.

What Went Wrong

The initial networking used per-frame state broadcasts, which flooded the LAN with packets and caused lag spikes on slower network switches.

The fix: I switched to delta compression — only transmitting position changes that exceed a threshold — and reduced the network tick rate to 20Hz while using client-side interpolation to maintain smooth 60fps rendering.

Results

  • Designed 90% of the game mechanics including rule logic and networked gameplay loop
  • Real-time multiplayer over LAN with smooth interpolation
  • Faithful digital adaptation of a traditional Filipino game

Interested in working together?

Let's Talk