Skip to content

AstoniaCommunity/astonia_community_client

Repository files navigation

Astonia Community Client

This is the community client for Astonia 3. It is based on, and compatible with, the client maintained by Daniel Brockhaus.

The main goal is to allow community driven development.

Further goals:

  • Maintain backwards compatibility with the original game server.
  • Maintain compatibility with all servers currently using the client.
  • Keep it simple. No additional libraries, frameworks or tools unless absolutely needed.
  • Whenever possible, put bugfixes in single commits for easy cherry-picking.
  • Always have a downloadable Windows release with sensible hardware requirements and no software requirements.
  • Work towards supporting more / all of the servers.

Build

Windows

Install MSYS2. It comes with three shells, launch the clang 64 one (not aarch64).

Install dependencies:

pacman -Syu
pacman -Sy mingw-w64-clang-x86_64-clang mingw-w64-clang-x86_64-libpng mingw-w64-clang-x86_64-libzip mingw-w64-clang-x86_64-mimalloc mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-ninja make zip mingw-w64-clang-x86_64-dwarfstack mingw-w64-clang-x86_64-zig mingw-w64-clang-x86_64-rustup
make build-sdl3 build-sdl3-mixer
rustup toolchain install stable-x86_64-pc-windows-gnullvm
rustup default stable-x86_64-pc-windows-gnullvm

Then build:

make

Runtime DLLs

To run bin/moac.exe outside of the MSYS2 shell, copy the required DLLs into bin/:

cp /clang64/bin/{zlib1,libpng16-16,libzip,libbz2-1,liblzma-5,libzstd,dwarfstack,SDL3,SDL3_mixer,libmimalloc,libc++}.dll bin/

Linux

Install dependencies:

sudo pacman -S base-devel sdl3-git sdl3_mixer-git libpng libzip zlib mimalloc zig rust
# Or: make build-sdl3 build-sdl3-mixer

Or use Docker (no dependencies needed):

make docker-linux

AppImage (Universal Linux Binary)

Build a portable AppImage that runs on any Linux distribution:

make appimage

This creates astonia-client.AppImage which bundles all dependencies (including SDL3) and works on any modern Linux distribution without installation.

Requirements: FUSE2 must be installed to run AppImages. Most distributions include it by default, but if needed:

# Arch Linux
sudo pacman -S fuse2

# Ubuntu/Debian
sudo apt install libfuse2

To run the AppImage:

chmod +x astonia-client-*.AppImage
./astonia-client-*.AppImage

Alternatively, extract and run without FUSE:

./astonia-client-*.AppImage --appimage-extract
./squashfs-root/AppRun

macOS

Install Xcode Command Line Tools:

xcode-select --install

Install dependencies:

brew install cmake ninja zig libpng zlib libzip mimalloc rust
make build-sdl3 build-sdl3-mixer

Commands

make            # Build for current platform
make zig-build  # Build using Zig
make distrib    # Create distribution package
make amod       # Build mod (src/amod/)
make clean      # Clean up build assets

Development & Quality Checks

Run quality checks locally before committing (same checks as CI pipeline):

make lint       # Auto-fix code formatting
make check      # Run all quality checks

Testing

To run tests:

make test

About

Community maintained client for the online game Astonia 3.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors