A downloadable game for Windows and Linux


Update (9th October 2017)

Version 0.6.5a for GNU/Linux. Hope it'll run on more systems now with the shared libraries attached, though its very possible it won't. There was a previous issue of the server crashing when run in a terminal emulator and the emulator window was resized, as well as an issue with the game not starting due to the wrong glew version..

Update (3rd October 2017)

Version 0.6.4a for Windows. Attempted to fix a bug causing much more lag for bad connections than previously.

Update (26th September 2017)

Version 0.6.3 for Windows. It includes an attempt at fixing a client-side reconciliation related freeze bug and polishing of the single player demo (added some dummies to hit.)

Update (1st September 2017)

Built a 0.6.2a Linux 64 version. No idea whether or not it works on other machines.

Update (30th August 2017)

Version 0.6.2a attempts to make networked gameplay yet smoother. Only built a Windows version so far. Protocol compatible with the earlier versions.

Update (2nd August 2017)

Added a new Linux build, with version 0.6.1 (protocol is compatible with 0.6.0)! This version features some attempts at making the game run on more GPU drivers, along with the improvements mentioned in the last update. The game should also no longer be reliable on as many shared libraries - they've been packed into the distribution. There was a deadlock (freeze) bug with the server on GNU/Linux earlier, and it's possible it still exists. Once I get to test on a proper machine, I'll try to find the bug and squash it if it didn't get fixed yet. Additionally, the Windows version was also pushed to version 0.6.1.

If you've tried running the program on Linux before and it didn't work, it just may work now with the added shared libraries.

Update (1st August 2017)

Windows version updated to 0.6.0. This update features improvements to client-side prediction (input reconciliation), as well as slight performance improvements. In addition, the outline shader should now also affect other players' weapons. The GNU/Linux version's server has a freeze bug for the moment, which I'll try to get fixed soon (version 0.5.0's protocol is not compatible with 0.6.0.)

Update (30th July 2017)

Updated the Windows version - included a missing DLL,
attempted to make the renderer work on different GPUs and improved
networked gameplay a little bit.


Karistys is a prototype of a fast-paced 3D arena first person shooter. It was created as a demo for the Kyssari engine, a game engine project written in four months as an exercise in learning more about game engines by a bunch of students.

The multiplayer portion of the game was written in as little a time as two or three weeks; hence its an extremely early prototype - a stage I (nor others) cannot promise it will ever rise up from. I or other people may still implement the occasional feature or fix or two, but nothing is promised.

The gameplay is, to be honest, pretty awful and written by people with no prior experience in network programming. It lacks a lot of features, like proper lag compensation for shots, and is likely a buggy mess. This was intended as a tech demo and an exercise, not much else.

Note that this is a multiplayer game, currently for up to 4 players
(though there's a singleplayer sandbox for testing the physics and
weapons.) The distribution includes a server executable that must be run
on a machine the players can connect to (for instance, on the machine
of one of said players.)

The code of the engine and the game are both licenced under the GPL version 3 and are hence free and open source software. The code is available at: https://gitlab.com/Partanen/ky...

Install instructions

The distribution includes both, the server and the client executables (see readme.txt). To be able to play multiplayer, you have to run the server on one machine and have the client(s) connect to that machine. You can also run a client on the same machine that runs the server.

To tell the client the address of the server, modify the connect.conf file in the game's root directory. The format of the file is: 'hostname =' (without the quotation marks).

Playing the single player 'demo', which allows you to jump around and test weapons  freely, does not require a connection to a server.

Note: there may be issues (at least for now, since I have no system to test changes on) with some GPU drivers where, inside the game after the menu, textures and models do not show up correctly, making the demo unplayable. On GNU/Linux, problems have also been detected on some older cards using Nouveau drivers. In the  case this happens, no can do, for the moment at least!


karistys_065c_win32.7z (49 MB)
karistys_065a_win32.7z (49 MB)
karistys_065c_gnulinux64.tar.gz (63 MB)
karistys_065a_gnulinux64.tar.gz (63 MB)
karistys_0_6_2a_gnu_linux64.tar.gz (63 MB)


Log in with your itch.io account to leave a comment.

how do you run these?

(Edited 4 times)


Each one of the distributions should come with a how_to_play.txt file which you may refer to for instructions. For a quick reference though:

On Window,s the game is started with karitys.exe. The server is started with server_nogui.bat. You don't need the server to test the offline demo, but it needs to be running on the machine you want to connect to if you want to play multiplayer. You can change the client's target IP address for multiplayer by modifying the connect.conf file (there must be no excess spaces or other marks in the file.)

On GNU/Linux, the process is the same, but the files to run are the "run_game.sh" for the client and "run_server.sh" for the server. Run the server from a terminal session. I believe the Linux server distribution has a problem where, if the console window is resized, it may crash, so beware of that. Also I haven't updated the Linux build in a while, nor got to test it on too many systems, so I'm not sure if all the shared libraries play together nicely. I'll try building a new Linux version one of these days.

Edit: I tried the 0.6.2a version downloaded from here on my laptop and on that machine, it did have problems with shared libraries. I've now built and uploaded the newer 0.6.5a version - it may give some better luck.