Hikou no mizu

Hikou no mizu is a libre software anime-styled 2D platform/fighting game, licensed under GPLv3.

Moderate Pure Nim score 50/100 · last commit 2026-03-12 · 3 stars · tests present · no docs generated

Summary

Latest Version Unknown
License Unknown
CI Status Failing
Stars 3
Forks 2
Open Issues 0
Last Commit 2026-03-12
Downloads 0
Last Indexed 2026-07-27 04:31

Installation

nimble install Hikou no mizu
choosenim install Hikou no mizu
git clone https://gitlab.com/hikou_no/hikounomizu

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
Hikou no mizu - - - - - - -

Source

Repository https://gitlab.com/hikou_no/hikounomizu
Homepage https://gitlab.com/hikou_no/hikounomizu
Registry Source gitlab

README

Hikou no mizu

Hikou no mizu playable characters

Hikou no mizu is a libre software anime-inspired fighting game.
The characters fight using natural powers, e.g., water :ocean:, lightning :zap:, or fire :fire:.
All the graphics are free (various free software licenses) and drawn with a vectorized style.

The dependencies of Hikou no mizu are: - SDL3, SDL3_Image - OpenGL (1.1 +) - Freetype2 - OpenAL, libogg, libvorbis, libvorbisfile - enet - pugixml

Additionally, to regenerate the data from data source files, the following extra dependencies should be installed: - getopt - synfig - inkscape - imagemagick - pngquant - xz

Many thanks to the contributors of all these libraries!

Project website

https://hikounomizu.org

License

See COPYING.

Installation

Hikou no mizu uses CMake as a building system.

Data build

In order to function properly, Hikou no mizu needs to access its data/ folder.
Hikou no mizu is likely to come with a pre-built data/ folder in its root.
If not, or if you wish to rebuild the data from source, you may use the datasrc/ directory as follows:

$ cmake -S . -B databuild
$ cmake --build databuild --target data # Invoke the data building script (datasrc/databuild.sh)

To speed up data building, animation spritesheets may be rendered in parallel instead of sequentially.
The number of spritesheet rendering tasks to run in parallel can be passed through the HNM_PARALLEL environment variable:

$ HNM_PARALLEL=4 cmake --build databuild --target data # Render the data using four parallel processes

Note: Before proceeding to the installation, do ensure that the data/ folder was generated.

Note: For server-only builds, not all the data generated by make data is required.
The server only needs access to some data description files to work properly.
The datasrc/filterdata.sh shell script can be used to filter out the unnecessary data.

Source code build & installation

To build and install the project, you may type, from the same directory where this README is located:

$ cmake -S . -B build \ # Build both the game and the game server
    -DCMAKE_INSTALL_PREFIX=prefix/path/to/installation \
    -DCMAKE_INSTALL_DATADIR=where/data/should/be/installed
$ cmake --build build
$ cmake --install build

Example for a unix system-wide installation:

$ cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr
$ cmake --build build
$ cmake --install build
$ hikounomizu  # Start the game
$ hikounomizud # Start the game server

Example for a standalone installation:
(installation of the executables in the project directory, with a relative reference path to data)

$ cmake -S . -B build -DHNM_STANDALONE=1
$ cmake --build build
$ cmake --install build
$ ./hikounomizu  # Start the game locally
$ ./hikounomizud # Start the game server locally

Example for a development build to run the game without installation:
(will break if the data directory is moved)

$ cmake -S . -B build -DHNM_NOINSTALL=1
$ cmake --build build
$ ./build/hikounomizu  # Start the game locally
$ ./build/hikounomizud # Start the game server locally

Note: The -DHNM_NOCLIENT option can be set to build only the server, which does not require the graphical and audio dependencies.
Similarly, the -DHNM_NOSERVER option can be set to build only the game client.

shell $ cmake -S . -B serverbuild -DHNM_NOCLIENT=1 $ cmake --build serverbuild $ cmake --install serverbuild $ hikounomizud # Start the game server

Game server

Usage

The game server can be started without arguments, it will use a default server configuration and start listening on port 16026.

$ hikounomizud

A default configuration file can be exported using the -e/--export-conf options and a filename:

$ hikounomizud -e server.cfg # Create a ./server.cfg configuration file

In turn, a configuration file can be loaded with the -c/--conf option when starting the server:

$ hikounomizud -c server.cfg

The server port can be configured in server.cfg. Alternatively, the -p/--port option can be used and takes precedence over the configuration file:

$ hikounomizud -c server.cfg -p 1234 # Will use port 1234

Configuration

The following options are available to configure a game server in a server.cfg file:

Name Possible values Comment
port [1 - 65535] Overriden by -p/--port
matchmaking [stack, random, challenger] See matchmaking note
mode [default, versus] Default or versus mode
rounds_to_win [1 - 255] Rounds that a single player must win to win a game
player_count [2 - 255] Number of players in each game
arenas arena_name_1, arena_name_2, ... List of arenas enabled in the server, randomly changed at the end of each game
spectator_limit [0 - 3839 to 4092] Number of spectators that may join a server in addition to player_count
inactivity_timeout_lobby [0 - 4294967295] Inactivity kick timeout in seconds for players while in game, KO time does not count
inactivity_timeout_ingame [0 - 4294967295] Inactivity kick timeout in seconds for players while in lobby, KO time does not count
welcome_message Free utf8 text Welcome message which will be displayed to clients upon connection

Description

The server waits for incoming connections until the required number of players has been reached.
When the number of connected players is less than the player_count required to start a game, the server is in lobby mode.

Note: This means players can join and move around in the arena as well as fight, but they will be revived instantly when KO.

When the number of connected players reaches player_count, a game is queued to start shortly.
During a game: - If a player leaves, the game will continue until finished except if only one player is left. - If a peer joins, they are added as spectators.

When the game is completed with a winner, the server either: - Goes back to lobby if too many peers left (less than player_count remaining). - Performs matchmaking and queues a new game to start shortly.

Matchmaking note: Several algorithms are available to perform matchmaking at the end of a game.

  • stack: The first connected players will always play, if a player leaves, the first connected spectator will replace them.
  • random: All peers are shuffled randomly to playing and spectating spots.
  • challenger: The player that won the last game is guaranteed to play again, the rest of the peers are shuffled randomly.