Unfinished multiplayer tactical 2D shooter indie game.
Switch branches/tags
Nothing to show
Clone or download
dmitshur Apply gofmt using Go 1.11.
This fixes gofmt formatting incompatibilities with Go 1.11.

Go files were formatted automatically with:

	gofmt -w .

Apply the gofmt change to example output as well, by hand.
Latest commit 425cdd4 Oct 8, 2018
Failed to load latest commit information.
Notes Add eX0 project notes. May 24, 2015
eX0-go Apply gofmt using Go 1.11. Oct 7, 2018
eX0.xcodeproj Add some Xcode 5 project file. Feb 12, 2015
eX0 Display moving particles. May 24, 2018
.gopherci.yml CI: Switch to libgl1-mesa-dev and xorg-dev; add .gopherci.yml. Oct 18, 2017
.travis.yml Fix minor races. Dec 20, 2017
AlphaBuffer.txt Changes from 2008-02-24. Jul 10, 2013
ClassDiagram1.png Changes from 2012. Latest version from Dropbox. Jul 10, 2013
Credits.txt Changes from 2012. Latest version from Dropbox. Jul 10, 2013
History.txt Changes from 2008-03-29, part 1. Jul 10, 2013
Input Module Architecture.txt Changes from 2008-08-04. Jul 10, 2013
Last Crash.txt More changes from 2008-03-29, part 2. Jul 10, 2013
Last Problem.txt Changes from 2009-01-21. Before multiplayer weapons. Jul 10, 2013
Local Protocol.txt Use spaces for aligning rather than tabs. Feb 12, 2015
Network Protocol.txt Work on storing actual player state (name, team, state). Jul 20, 2015
Networked Game Logic.txt Update Networked Game Logic.txt with current state. Mar 2, 2015
Notes.txt Changes from 2009-01-21. Before multiplayer weapons. Jul 10, 2013
Ping Time Calculation.txt commit: client: Handle pung packet, deduce own latency. Mar 7, 2015
README.md README: Update image links. Mar 16, 2017
TCP Packets.txt Add support for {Send,Broadcast}TextMessage packages. Oct 19, 2017
To-Do List.txt Changes from 2012. Latest version from Dropbox. Jul 10, 2013
UDP Bandwidth.txt Changes from 2007-08-26. Jul 10, 2013
UDP Packets.txt Add support for Weapon{Command,Action} packages. Oct 19, 2017



eX0 is an unfinished networked multiplayer (and single-player) top-down view 2D tactical shooter indie game.

It was originally envisioned as a realistic recreation of Counter-Strike in 2D, but since most of the gameplay is not implemented nor finalized, it can end up being quite different (if I ever decide to finish it).

Its networking model is mostly based on the Half-Life and Quake networking models, with some tweaks and improvements based on ideas by Glenn Fiedler. Some info can be found in this blog post including the comments section.

The C++ code was written over multiple decades (starting from around 2002-2006). Some of of it has been untouched since it was written back when I was just learning C++ and development in general. There are lots of hacks and ugly code, most of it is not optimized. A lot of it was refactored and improved too, but much is simply unfinished. It's unlikely to be worthwhile to others; I'm mostly putting it up so all my code is in one good place, and I no longer see any benefit to keep it closed source.

There is slow part-time work being done to port it to Go, see eX0-go subfolder.







This software uses the PolyBoolean library v0.0 © 1998-1999 Michael Leonov.