Spludlow Tetris Introduction
A network implementation of Tetris game allowing multiple
players connected to a server. The game is played as normal but with the option
to “target” other players, so your completed lines are sent to the bottom of
To send you need to complete more than one line at a time
and that many minus one will be sent: 2 sends 1, 3 sends 2, and 4 sends 3.
You can run as many servers where you like:
Local Host – Single Computer multiple players on same desktop
Local Network – Run the server on your LAN (local network) and
play from other computers on the network
Internet – Run the server configured to accept connections from
the Internet public network
A standard 2 player on one desktop game:
Download & Install
NOTE: Ensure .net Framework is up
to date, click here for latest
NOTE: Remove previous versions using Settings->Apps->Spludlow
Tetris->Uninstall OR Control Panel->Programs and
Windows 64-bit the easy to use MSI (Microsoft Installer) is available here.
You may have to get round Windows / Browser security as the
program is not yet commonly downloaded.
For binaries (without
an Installer) and source code see the Spludlow Downloads Page.
The Library (DLL) containing all the code project name is
“Spludlow.Tetris”, the UI project name is “SpludlowTetris”.
NOTE: 32 Bit Windows will run Spludlow Tetris (download the
“SpludlowTetris” project binaries), just ensure the .net framework is up to
Play On-Line now!
You can play other people on the Tetris Server at:
NOTE: This server is currently open for any connections.
This may not always be the case.
Please do the following.
Start Spludlow Tetris (By default it will start a local host
server and connect to it)
Press F1 – Settings Dialogue
Click the “Stop Server” button, the dialogue will close
Click “OK” on the Server Stopped Message Box
Press F1 again
Enter your display name
Enter the hostname: tetris.spludlow.co.uk
Click the “Start Client” button, the dialogue will close
You are in play, use the target key “A” to change who you send
short video of this can be viewed here
Written in C# the source code is open source available under
the GNU v3 licence.
Browse the source code
Ready to compile Visual
Studio Projects are available from the Spludlow downloads page.
Spludlow Tetris – 8 Player Desktop
Running on one computer, if you have the joysticks.
Spludlow Tetris – 300 Bot Farm
An example of a load test to stress the server.
Spludlow Tetris – Board Size
You can run the server with whatever board size you like.
Spludlow Tetris – 20 Client Overload
Here the clients CPU was maxed out with this test.
Spludlow Tetris Server Modes
Here is the server running in “Creative Mode” (use a server
tick of 0):
Spludlow Tetris – Levels Server Mode (Coming Soon)
The current implementation is pretty much as simple as a
multiplayer game can be, keep it simple to start with and build from there.
The new server mode will work like this:
Each player is in a level, they start at 0 when they join the
Levels are progressed by the number of lines sent (say 50), when
you send 50 lines you go to level 1
Each level will have a faster tick speed (say 50 milliseconds
You can only send lines to players on your level
Level 0 will have a maximum number of players (say 50) and not
allow additional new connections (until players have progressed out of level
Other levels (over 0) will not have player limits.
If you die in level 0 you are kicked off the server.
If you die from level 1 (maybe higher) or higher you are put in
This should allow for many players competing against players
of similar ability on the same server.
I’ve thought it through, just got to bang the code out.
07/12/2018 – V1.8
Rewrite of Spludlow Tetris UI using WPF (Windows
Presentation Foundation). All board flicker is now removed and board drawing
code simplified, just change colour of rectangles rather than using Graphics to
draw directly to form.
Settings are now persisted to files in “C:\Users\%USERNAME%\AppData\Roaming\SpludlowV1\SpludlowTetris”
for each running instance. For example if you setup 2 players the target
server, display name, window size and position, and input device will already
be configured the next time you start 2 instances.
Settings dialogue improved now allows key mappings to be
The F2 key will now cycle through input devices to make
selection of joystick easy for each instance.
class thread safety using SharpDX.XAudio2 fixed not waiting for buffer to flush
before submitting new buffer, test methods created for extreme loading.
class tweaked for auto-repeat to behave more like the keyboard and fixed to
allow input devices to be removed without throwing and exception.
15/10/2018 – V1.7