{"id":13419843,"url":"https://github.com/yvt/openspades","last_synced_at":"2025-05-15T17:09:27.152Z","repository":{"id":1024724,"uuid":"12191592","full_name":"yvt/openspades","owner":"yvt","description":"Compatible client of Ace of Spades 0.75","archived":false,"fork":false,"pushed_at":"2024-06-06T23:14:52.000Z","size":18859,"stargazers_count":1162,"open_issues_count":248,"forks_count":224,"subscribers_count":72,"default_branch":"master","last_synced_at":"2025-05-08T00:47:57.981Z","etag":null,"topics":["ace-of-spades","action-game","c-plus-plus","cmake","cross-platform-game","fps","fps-game","game","linux","macos","multi-platform","multiplayer","multiplayer-game","network","online","opengl","realtime-games","sdl2","voxel","windows"],"latest_commit_sha":null,"homepage":"http://openspades.yvt.jp/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yvt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-08-18T06:56:25.000Z","updated_at":"2025-05-06T10:52:43.000Z","dependencies_parsed_at":"2023-07-06T07:27:16.647Z","dependency_job_id":"ef28514f-d767-47fc-a7ad-0b903180fe53","html_url":"https://github.com/yvt/openspades","commit_stats":{"total_commits":1798,"total_committers":70,"mean_commits":"25.685714285714287","dds":"0.28253615127919907","last_synced_commit":"54ef9fb7b30182e7d8a7d09b819081e8abbe2d25"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yvt%2Fopenspades","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yvt%2Fopenspades/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yvt%2Fopenspades/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yvt%2Fopenspades/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yvt","download_url":"https://codeload.github.com/yvt/openspades/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254384989,"owners_count":22062422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ace-of-spades","action-game","c-plus-plus","cmake","cross-platform-game","fps","fps-game","game","linux","macos","multi-platform","multiplayer","multiplayer-game","network","online","opengl","realtime-games","sdl2","voxel","windows"],"created_at":"2024-07-30T22:01:21.762Z","updated_at":"2025-05-15T17:09:22.145Z","avatar_url":"https://github.com/yvt.png","language":"C++","readme":"# OpenSpades [![Build status](https://travis-ci.org/yvt/openspades.svg?branch=master)](https://travis-ci.org/yvt/openspades) [![All releases downloads](https://img.shields.io/github/downloads/yvt/openspades/total.svg)](https://github.com/yvt/openspades/releases) [![Latest release](https://img.shields.io/github/release/yvt/openspades.svg)](https://github.com/yvt/openspades/releases) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/openspades/localized.svg)](https://crowdin.com/project/openspades)\n\n\n![OpenSpades banner](https://openspadesmedia.yvt.jp/brand/OpenSpadesBanner.jpg)\n\n[Official website](https://openspades.yvt.jp) — [Download](https://github.com/yvt/openspades/releases) — [Community](https://buildandshoot.com) — [Trello board](https://trello.com/b/3rfpvODj/openspades-roadmap)\n\n## What is it?\nOpenSpades is a compatible client of Ace of Spades 0.75.\n\n* Can connect to a vanilla/pyspades/pysnip server.\n* Uses OpenGL/AL for better experience.\n* Open source, and cross platform.\n\n## How to Build/Install?\n**Before you start:** In case you're having issues to build OpenSpades, it may be because this README file is outdated, if so:\n\n 1. See the [Building Guide](https://github.com/yvt/openspades/wiki/Building), which may be up to date\n 2. Or [open an issue](https://github.com/yvt/openspades/issues) if the problem persists\n\n### On Linux\n\n#### Snap package\nOn [snap enabled](https://snapcraft.io/docs/core/install) systems, the latest pre-built stable release of OpenSpades can be installed with:\n\n```bash\nsudo snap install openspades\n```\nOnce installed, you'll be able to launch OpenSpades from inside the desktop menu or from your terminal with the `openspades`\n\n#### Flatpak package\nOn [flatpak enabled](https://flatpak.org/setup/) systems, OpenSpades can be installed with:\n\n```bash\nflatpak install flathub jp.yvt.OpenSpades\n```\n\nOnce installed, you'll be able to launch OpenSpades from inside the desktop menu or from your terminal with `flatpak run jp.yvt.OpenSpades`\n\n### On Unixes (from source)\n\n#### Building\n1. Install dependencies:\n\n   *On Debian-derived distributions*:\n   ```\n   sudo apt-get install build-essential pkg-config libglew-dev libcurl4-openssl-dev libsdl2-dev \\\n     libsdl2-image-dev libalut-dev xdg-utils libfreetype6-dev libopus-dev \\\n     libopusfile-dev cmake imagemagick zip unzip\n   ```\n   (because of a bug in some distributions, you might also\n   have to install more packages by `sudo apt-get install libjpeg-dev libxinerama-dev libxft-dev`)\n   \n   *On Fedora or other RHEL-derived distributions*:\n   ```\n   sudo dnf install make automake gcc gcc-c++ kernel-devel pkgconf-pkg-config glew-devel \\\n     openssl-devel libcurl-devel SDL2-devel SDL2_image-devel \\\n     freealut-devel xdg-utils freetype-devel opus-devel opusfile-devel \\\n     libjpeg-devel libXinerama-devel libXft-devel cmake ImageMagick \\\n     zip unzip\n   ```\n\n   *On FreeBSD*:\n   ```\n   sudo pkg install gmake automake pkgconf glew openssl curl sdl2 sdl2-image \\\n     freealut xdg-utils freetype2 opus opusfile jpeg-turbo libXinerama libXft \\\n     cmake ImageMagick7 zip unzip\n   ```\n\n   *On other distributions*:\n   Install corresponding packages from your repository (or compile from source).\n   \n   Building OpenSpades requires a C++ compiler, which is included in the dependencies above in case you don't have one installed yet.\n\n2. Clone OpenSpades repository:\n\n   ```bash\n   git clone https://github.com/yvt/openspades.git \u0026\u0026 cd openspades\n   ```\n\n3. Create directory `openspades.mk` in cloned/downloaded openspades repo and compile:\n\n   ```bash\n   mkdir openspades.mk\n   cd openspades.mk\n   cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo \u0026\u0026 make\n   ```\n\n#### Installing and launching\n\nTo launch the built game without installing:\n```\ncd $REPO_DIRECTORY/openspades.mk; bin/openspades\n```\n\nTo install the game to your system (recommended), take the following steps:\n   1. Execute the following command:\n      ```\n      sudo make install\n      ```\n      **note**: If you have a previous installation of OpenSpades, you have to uninstall it manually by `sudo rm -rf /usr/local/share/games/openspades` before installing a new one, or else it might load old resources.\n\n   2. Launch the game by typing `openspades` into command line, or search for it from start menu.\n\nAlternatively, to install the game to a different directory, take the following steps:\n\n   1. Copy the Resources directory into bin (or else the game won't launch):\n\n      ```\n      cp -r ./Resources ./bin/\n      ```\n      **note**: If you plan on distributing it, remember to remove CMake files and folders from Resources.\n\n   2. Move the \"/openspades.mk\" folder somewhere else, for example `/home/user/Games`, or `/opt/games` and rename it to \"/OpenSpades\".\n\n   3. The game's launcher is located at `bin/openspades`. You can create a shortcut for it on the desktop or a `.desktop` file placed in `/usr/share/applications/` for it to appear in Start Menu. Make sure to set the `bin` directory as the shortcut's working directory, or else you will get an error about missing resources.\n\n      **note**: If you choose a directory outside of your `/home/user`, for example `/opt/games`, remember to *chmod*  the game launcher's permissions to 755.\n\nAfter successful installation, optionally you can remove the source code and build outputs to save disk space (~100MB).\n\n#### On Linux (from source, by Nix Flakes)\nTo build and run OpenSpades from the latest source code:\n\n```bash\nnix shell github:yvt/openspades -c openspades\n```\n\nTo build and run OpenSpades for development:\n\n```bash\ngit clone https://github.com/yvt/openspades.git \u0026\u0026 cd openspades\nnix develop\n# note: this will patch CMake files in the source tree\ncmakeBuildType=RelWithDebInfo cmakeConfigurePhase\nbuildPhase\nbin/openspades\n```\n\n**note**: Nix Flakes are an experimental feature of Nix and must be enabled manually. See [this wiki article](https://wiki.nixos.org/wiki/Flakes) for how to do that.\n\n### On Windows (with Visual Studio)\n1. Get the required software if you haven't already:\n  * CMake 2.8+\n  * PowerShell 5.0\n    * Integrated with Windows 10.\n    * Older versions are not tested, but might work\n  * *Visual Studio 2017* or later\n    * VS2015 is also supported, but VS2017 is more recommended\n    * VS2013 is no longer supported, but might work\n2. Grab the source code:\n  * Stable version: https://github.com/yvt/openspades/releases\n  * Latest development version (0.1.x): https://github.com/yvt/openspades/archive/master.zip\n3. Checkout the source\n  * All examples will assume `E:/Projects/openspades`, update paths in the examples to reflect yours\n  * Make sure to update all git submodules, e.g., by `git clone ... --recurse-submodules`). Note that the GitHub website's ZIP download currently does not support submodules.\n4. Build libraries using vcpkg:\n   ```bat\n   cd E:\\Projects\\openspades\n   vcpkg\\bootstrap-vcpkg.bat\n   vcpkg\\vcpkg install @vcpkg_x86-windows.txt\n   ```\n\n5. Run CMake:\n  * Source: `E:\\Projects\\openspades`\n  * Binaries: `E:\\Projects\\openspades\\OpenSpades.msvc`\n  * Generator:\n    * For VS2019: `Visual Studio 16 (2019)`\n    * For VS2017: `Visual Studio 15 (2017)`\n    * For VS2015: `Visual Studio 14 (2015)`\n  * Platform: `Win32`\n  * Toolchain file: `E:\\Projects\\openspades\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake`\n  * Add a new string entry `VCPKG_TARGET_TRIPLET=x86-windows-static`\n\n6. Open `E:\\Projects\\openspades\\OpenSpades.msvc\\OpenSpades.sln` in Visual Studio.\n7. Build the solution.\n * The recommended build configuration is `MinSizeRel` or `Release` if you're not an developer\n * The default build output directory is `E:\\projects\\OpenSpades\\OpenSpades.msvc\\bin\\BUILD_TYPE\\`\n8. To get audio working, download a [Windows release of OpenSpades](https://github.com/yvt/openspades/releases), extract it, and copy the following dlls to the build output directory:\n * For OpenAL audio: `openal32.dll`\n * For YSR audio: `YSRSpades.dll`, `libgcc_s_dw2-1.dll`, `libstdc++-6.dll`, `pthreadGC2.dll`\n9. Download the [Non-free pak](https://github.com/yvt/openspades-paks/releases/download/r33/OpenSpadesDevPackage-r33.zip), extract it, and copy `Nonfree\\pak000-Nonfree.pak` to the `Resources` folder inside your build output directory, which is probably `E:\\Projects\\openspades\\openspades.msvc\\bin\\BUILD_TYPE\\Resources`. You can also copy the paks contained in `Official Mods` folder of OpenSpades 0.0.12b to add more fonts and improve localization support of your build.\n\n### On macOS (with Ninja)\n\n#### Requirements\n- Xcode Command Line Tools\n- CMake\n- pkg-config\n- gcc 6 or newer (not clang!) — macOS 10.14 (Mojave) or earlier only\n- ninja\n\n#### Building\n1. Install the Xcode Command Line Tools and other required build tools.\n\n    ```bash\n    xcode-select --install\n    ```\n    Using Homebrew:\n    ```\n    brew install cmake pkg-config ninja\n    \n    # If you are using macOS 10.14 (Mojave) or earlier:\n    brew install gcc\n    ```\n    Using Nix:\n    - Add `$(nix-build '\u003cnixpkgs\u003e' -A pkg-config-unwrapped --no-out-link)/bin` to `PATH`.\n\t\n\t\n2. Clone the Openspades repository:\n\n\t```bash\n\tgit clone https://github.com/yvt/openspades.git --recurse-submodules \u0026\u0026 cd openspades\n\t```\n\t\n3. Bootstrap `vcpkg` and install the required packages:\n\n\t```bash\n\tvcpkg/bootstrap-vcpkg.sh\n\tvcpkg/vcpkg install @vcpkg_x86_64-darwin.txt\n\t```\n\n4. Create directory `openspades.mk` in the cloned/downloaded openspades repo and compile:\n\n   ```bash\n   mkdir openspades.mk\n   cd openspades.mk\n   cmake -G Ninja .. -D CMAKE_BUILD_TYPE=RelWithDebInfo -D CMAKE_OSX_ARCHITECTURES=x86_64 -D CMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake -D VCPKG_TARGET_TRIPLET=x64-osx\n   ninja\n   ```\n\n5. Launch:\n\n    ```bash\n    open bin/OpenSpades.app\n    ```\n\n    (Universal builds aren't supported yet.)\n\n### Network usage during building\n\nOpenSpades' build process automatically downloads prebuilt game assets and libraries as needed. Specifically:\n\n- `pak000-Nonfree.pak` and `font-uniform.pak` from \u003chttps://github.com/yvt/openspades-paks\u003e. Can be disabled by passing `-D OPENSPADES_NONFREE_RESOURCES=NO` to CMake.\n- The prebuilt binaries of YSRSpades (audio engine) from \u003chttps://github.com/yvt/openspades-media\u003e. Can be disabled by passing `-D OPENSPADES_YSR=NO` to CMake.\n\nIn addition, vcpkg (sort of package manager only used for Windows and macOS builds) [collects and sends telemetry data to Microsoft](https://vcpkg.readthedocs.io/en/latest/about/privacy/). You can opt out of this behavior by passing `-disableMetrics` option when running `vcpkg/bootstrap-vcpkg.sh` command.\n\n## Troubleshooting\nFor troubleshooting and common problems see [TROUBLESHOOTING](TROUBLESHOOTING.md).\n\n## Licensing\nPlease see the file named LICENSE.\n","funding_links":[],"categories":["TODO scan for Android support in followings","C++","FPS","Native"],"sub_categories":["FPS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyvt%2Fopenspades","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyvt%2Fopenspades","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyvt%2Fopenspades/lists"}