Files
jminos/README.md
zulianc b17a40fda5
All checks were successful
Linux arm64 / Build (push) Successful in 3m14s
benchmark de simon
2025-06-19 15:55:15 +02:00

4.8 KiB
Raw Blame History

jminos

Modern stacker game with every polyominoes from size 1 to 15, made in C++ with SFML 3!

Download

// TODO when the game is finished //

This game has been tested on and built for Windows 11 and WSL2 Ubuntu.
If your OS isn't compactible with either of theses two, you can try manually building the project.

How to play

Choose which pieces you want to play with and stack them up until you either win or top out!
Make full lines to make them dissapear.
Use the different spins to kick the pieces in spot you couldn't imagine were attaignable!
Each gamemode has its own objective, but you can play as you wish.

You can see and change in-game keybinds in the SETTINGS section of the main menu!
All of in-menu navigation is done with the arrow keys, the Enter key and the Escape key. Theses are unchangeable keybinds.
You will find more infos about the Rotation System, the scoring system, or the different pieces type in the INFO section of the main menu.

Features

  • Every polyominoes up to pentedecaminoes!
  • 7bag with proportionnality for each polyomino size!
  • AutoRS as the Rotation System!
  • 0° rotations!
  • All spin!
  • IRS, IHS, infinite hold, and other leniency mechanics!
  • Customizable board size!
  • Customizable keybinds!
  • Very bland interface!! (i'm not a designer)

Available gamemodes

  • SPRINT : clear 40 lines as fast as possible!
  • MARATHON : clear 200 lines with increasing gravity!
  • ULTRA : scores as much as possible in only 2 minutes!
  • MASTER : clear 200 lines at levels higher than maximum gravity!
  • INVISIBLE : get 1000 grade while not being able to see the board!
  • ZEN : practice indefinitely in this mode with no gravity!

Screenshots

Pentedecamino jumpscare

Pieces select screen

AutoRS demonstration

0° spins demonstration

Manual build

This project uses xmake for compiling, xmake is cross-platform and works in most OS, xmake also automatically install supported librairies.
To be able to build this project, you need to have xmake installed and have a compiler with C++20 compatibility.

Build the project

cd jminos

xmake

If you need to change the toolchain (for example using gcc):
xmake f --toolchain=gcc

Run the project

xmake run

The program will generate the polyomino files for you if you don't have them. As this is a lengthy process, debug mode limits pieces size to 10. To switch between debug and release mode:
xmake f -m debug
xmake f -m release

If for some reasons you wanna run the command line version (not updated):
xmake build text
xmake run text

Package the project

// TODO when the game is finished //

Benchmarks

One-sided n-polyominoes

n Number Generation File storing File retrieving File size
1 1 0s 0.005471ms 0s 0.14436ms 0s 0.022223ms 3 bytes
2 1 0s 0.006979ms 0s 0.036624ms 0s 0.011424ms 4 bytes
3 2 0s 0.018718ms 0s 0.035885ms 0s 0.013246ms 9 bytes
4 7 0s 0.060544ms 0s 0.056277ms 0s 0.019395ms 36 bytes
5 18 0s 0.220348ms 0s 0.166593ms 0s 0.036526ms 76 bytes
6 60 0s 0.773924ms 0s 0.283423ms 0s 0.063492ms 186 bytes
7 196 0s 3.00331ms 0s 0.827344ms 0s 0.163653ms 546 bytes
8 704 0s 13.142ms 0s 3.68255ms 0s 0.630044ms 1898 bytes
9 2500 0s 50.9272ms 0s 16.1929ms 0s 2.35157ms 6889 bytes
10 9189 0s 204.031ms 0s 87.1819ms 0s 10.5841ms 25302 bytes
11 33896 0s 832.82ms 0s 412.466ms 0s 57.6399ms 93711 bytes
12 126759 3s 425.907ms 1s 982.715ms 0s 226.816ms 350325 bytes
13 476270 14s 570.595ms 9s 945.511ms 0s 972.036ms 1327156 bytes
14 1802312 56s 394.426ms 41s 675.672ms 4s 79.0436ms 5035148 bytes
15 6849777 258s 219.666ms 223s 386.329ms 16s 483.426ms 19392417 bytes

File storing includes type checking and sorting all polyominoes before writing them to the file.
If you want to know more details about the generation and storage of polyominoes, check the documentation!

Run it yourself by typing:
xmake f -m release
xmake build bmark
xmake run bmark

Credits

Library used: SFML 3.
Font used: Press Start.

Inspired by other modern stacker games such as Techmino, jstris, tetr.io, etc.
This game isn't affiliated with any of them.

Special thanks to my friend Simon who did most of the outside stuff (github actions, files compression, asset manager, xmake).