finds.dev← search

// the find

DarkRavenStar/Multiplayer-2D-Shooter-NeonShooter

★ 1 · C · updated Nov 2019

Neon Shooter is a multiplayer 2D shooter game (Inspiration taken from Diep.io) created using Astran Game Engine for my Data Comm & Networking assignment. It is a two player game where player able to fight against each other in realtime over the network. Since this is a realtime shooter game, it uses Prediction (using of Velocity and Acceleration to predict the next position to move to) and Interpolation (interpolating from current position to position received over the network) method to compensate for the lag since network update runs on 30 FPS, while the game runs on uncapped FPS.

A two-player 2D multiplayer shooter built in C using a proprietary game engine (Astran) and Photon for networking, created as a university data communications assignment. It implements client-side prediction and interpolation to smooth out 30Hz network ticks on an uncapped render loop — the core networking concepts are sound for a student project.

The prediction/interpolation split is architecturally correct: network state at 30Hz, render at uncapped FPS with interpolation between received positions is exactly how you'd do it in a real game. Using Photon SDK handles the hard parts of peer-to-peer connection and matchmaking without rolling raw sockets. The dependency structure is explicit — GLFW, GLEW, FmodEx, Photon are all vendored with their headers, so building shouldn't require hunting down versions.

The repo ships compiled build artifacts (.exe, .obj, .pdb, .ilk) committed directly to source control — that's a red flag for anyone looking at this as a reference. The README is four sentences that duplicate the repo description; there's no build instructions, no diagram of the networking architecture, and no explanation of how to actually run it. It's hardwired to two players and appears to be Windows-only (MSVC project files, GLFW vc2017 libs). The Astran engine it's built on has zero public documentation, so you're inheriting an opaque black box with no path to understanding its internals.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →