A downloadable game for Windows and Linux

Download NowName your own price

Tux is just getting ready to go fishing when all of a sudden, he receives a message. The message states that his home, Icy Island, has been taken over by the Snow King, and a new Fish Tax will be imposed. Tux is furious! How dare the Snow King take away his fish?! Help Tux overthrow the Snow King and stop him from taking Tux's fish away!

ReTux is a 100% libre software and 100% libre culture action platformer loosely inspired by the Mario games, utilizing the art assets from the SuperTux project. The name "ReTux" is a play on the words "redux" and "Tux".

Although ReTux re-uses the art assets of SuperTux, no code from SuperTux is used in ReTux. The software portion of ReTux is entirely new, written in Python and based on the SGE Game Engine. ReTux also has several distinctions in its gameplay compared to both SuperTux and the Mario games, many of which are made apparent by watching these videos. Some particular distinctions of ReTux include:

  • Play through 41 action-packed levels with some puzzle elements, taking place on the snow-covered Icy Island.
  • Health is represented by hearts which are restored by collecting coins, making a wide variety of difficulties possible without making the game frustrating.
  • Powers are obtained by using special items directly rather than by transforming. Some such items include fire flowers (which shoot fireballs), ice flowers (which shoot ice bullets), and lanterns (which light up dark areas).
  • Your character's state is reset upon entering a new level, allowing more fine-tuned level design.
  • Items are picked up automatically and either used or thrown by pressing the "action" key.
  • Running is automatic. To walk, you can either hold the dedicated "sneak" key, or you can use an analog stick to finely control your speed.
  • You will never be forced to backtrack further because you failed too many times. Lives are infinite and checkpoints never stop working.
  • The game is fully accessible to colorblind and color deficient people.
  • Feeling creative? You can create your own levels for ReTux using the Tiled map editor, and share them with your friends using the Import/Export options.
  • The game is 100% libre software and 100% libre culture. The easy to read Python source code is fully available, and you have the liberty to do virtually whatever you want with it under the terms of the GNU GPL. You won't find any restrictive EULA or DRM here!

ReTux's main website is here:


More information

Published1 year ago
PlatformsWindows, Linux
Release date344 days ago
Tags2D, gamepad, jumping
LicenseGNU General Public License v3.0 (GPL)
Average sessionA few minutes
LanguagesEnglish, Spanish; Castilian, Japanese
InputsKeyboard, Gamepad (any)
AccessibilityColor-blind friendly, Configurable controls


Download NowName your own price

Click download now to get access to the following files:

ReTux 1.3.4 for Windows 64 MB
ReTux 1.3.4 for GNU/Linux (32-bit) 57 MB
ReTux 1.3.4 for GNU/Linux (64-bit) 59 MB
ReTux 1.3.4 Source Code (tar.gz) 42 MB
ReTux 1.3.4 Source Code (zip) 42 MB


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


I have just tried this on my OpenSUSE 42.2 system and get the following error:

Initializing game system...
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_pulse.so
/tmp/_MEItjknhd/sge/dsp.py:379: UserWarning: pygame.mixer module not initialized! Are you missing SDL_mixer?
Initializing GUI system...
Loading images...
Loading fonts...
Loading "special/title_screen.tmx"...
Starting game...
Failed to execute script retux

I have SDL_mixer and pygame.mixer installed. Can you offer any help?


(Edited 1 time)

The warning seems, from a quick search, to mean that you need to install the libasound plugins.

But that's not likely the cause of your crash. The crash is probably because of a compatibility problem between my GNU/Linux binaries (which are built on gNewSense) and OpenSUSE. I would recommend using the source code distribution in that case. It's not difficult to set up; just install Python and Pygame, and everything else is included.

If you want to see the errors that occurred, you can use get_errors.py, or just find stderr.txt in ~/.config/retux.

Getting a "Segmentation fault (core dumped)" error with the 64-bit binary in Arch.

(Edited 1 time)

So it's not just me then. Thank you; perhaps a bug report should be made to the PyInstaller developers.

To be clear, the binary *does* work... with older distros. I don't know for sure what is, but something about newer distros (including mine, Ubuntu 16.04) prevents any binary made by the development version of PyInstaller from working (though I think the stable version is unaffected). Even a simple Hello World script segfaults in the same way. I'll do some tests and make the bug report, and if/when the problem is resolved, I'll rebuild ReTux (and the other two games I've built with PyInstaller).

In the meantime, I recommend using the plain source code. It works out-of-the-box as long as you have Python and Pygame installed.

Would it be possible to move the 'TIME BONUS' part of the hud so that it does not take so much vertical space?

Yes, it would be possible. I actually chose that position so that it would be possible to add a second player (for split-screen co-op), but just didn't end up doing that.

I don't think it's worth it to make a new release for this change (especially since there's still a chance I might add 2-player in the future, though unlikely, and I don't see the additional use of vertical space as harmful), but if you would like the change, you can replace these lines in retux.py (around line 530):

text = "{}\n{}\n\n{}\n{}".format(
_("Score"), score_text,
_("Time Bonus") if time_bonus >= 0 else _("Time Penalty"),
sge.game.project_text(font, text, sge.game.width / 2, 0,

with these new lines:

text = "{}\n{}".format(_("Score"), score_text)
sge.game.project_text(font, text, sge.game.width / 2, 0, color=sge.gfx.Color("white"), halign="center")
text = "{}\n{}".format(_("Time Bonus") if time_bonus >= 0 else _("Time Penalty"), abs(time_bonus))
sge.game.project_text(font, text, sge.game.width, 0, color=sge.gfx.Color("white"), halign="right")