Super Haxagon is a cross platform, open source Super Hexagon clone for the Nintendo 3DS, Nintendo Switch, Windows, Linux, and the TI-Nspire (yes, the calculator). It is developed in C++ and uses no additional libraries for the core logic, making it easy (in theory) to port to new platforms. It also has a GUI based level editor called Haxa Editor.
You can download the latest build on the releases page to the right.
Warning: The windows/linux versions requires a graphics adapter with OpenGL 3.2 or higher. Super Haxagon may be unsupported on first generation Intel processors, Remote Desktop sessions, or VMs with no hardware acceleration. See #22 for details.
- Cross Platform
- Widescreen support
- High Refresh Rate support
- Custom Levels
- OGG decoder for BGM
- High Score Saving
Super Haxagon targets the 3DS, Switch, TI-Nspire, Windows (MSVC), and Linux. For desktop platforms, it uses a cross-platform library called SFML, so it will probably also compile on other platforms that support it.
- Clone this repository with
git clone https://github.com/RedTopper/Super-Haxagon.git --recursive
You can use the provided tools/compose.yaml
file for creating sane build environments.
The following examples use podman-compose
and podman
on fedora, but a similar result
can likely be done with docker
by replacing podman-compose
with docker compose
(untested).
From within the tools
directory, run the following commands replacing the placeholders:
<platform>
: The platform to build for: 3ds switch nspire linux<cpus>
: The number of parallel jobs to default to, usually the CPU core count of your computer (ex: 8)
Create the build environment with:
podman-compose build <platform> --build-arg JOBS=<cpus>
Then build Super Haxagon with:
podman-compose up <platform>
If you need a shell within the build environment, run:
podman-compose run --rm <platform> bash
Then run the following to kick off a build from the /haxagon/build
directory:
../build.sh
For more advanced users, feel free to modify the compose.yaml
file to your needs.
Install SFML
's developer package using your system's package manager (this is
usually the one that ends in -dev or -devel). Then:
mkdir build
cd build
cmake ..
make
Note: This build will be dynamically linked with SFML and will require SFML to be installed on any machine you want to run Super Haxagon on. For static building, use the container or build SFML yourself.
Run tools/linux/flatpak.sh
from the root of the repo.
- Install Visual Studio 2022
- Place a copy of SFML in
libraries/SFML
(Create the directory) - Open this repository in Visual Studio and press "Play"
Thanks everyone for:
- The toolchain by devkitPro
- The 3DS 2D engine by fincs at devkitPro/citro2D
- The CTR User library by Smea at devkitPro/libctru
- The Switch User library by Switchbrew at switchbrew/libnx
- The font Bump IT UP by aaronamar at fontstruct.com
- Steveice10 for the build tools at RedTopper/buildtools (MIRROR)
- Steveice10 for the banner tool at RedTopper/bannertool (MIRROR)
- Sean T. Barrett for OGG decoding at nothings/stb
- The SFML developers for, well, SFML
- Audio from Open Hexagon at SuperV1234/SSVOpenHexagon
- ...and Kevin MacLeod for more music at incompetech.com
- and all the people on the contributors page (seriously, you guys rock!)
Music Attribution
Werq by Kevin MacLeod
Link: https://incompetech.filmmusic.io/song/4616-werq
License: http://creativecommons.org/licenses/by/4.0/
Screen Saver by Kevin MacLeod
Link: https://incompetech.filmmusic.io/song/5715-screen-saver
License: http://creativecommons.org/licenses/by/4.0/
Call Me Katla, Baby by Dunderpatrullen
Captain Cool by Bossfight
Commando Steve by Bossfight
Dr. Finkelfracken's Cure by Bossfight
Jack Russel by Bossfight
The Maze Of Mayonnaise by Bossfight
Link: https://github.com/SuperV1234/SSVOpenHexagonAssets
License: ᵖˡᵉᵃˢᵉ ᵈᵒⁿ'ᵗ ˢᵘᵉ ᵐᵉ
Below are a few screenshots featuring the various platforms that Super Haxagon compiles on. The 3DS version is packaged with a custom 3D banner to make it look official. Additionally, the gif was recorded on actual Nintendo Switch hardware.