AssaultCube Documentation

repository·master·Indexed 21 days ago

https://github.com/assaultcube/ac

A lightweight, open-source multiplayer first-person shooter based on the CUBE engine. Documentation covers system requirements for Windows, Linux, and macOS; server configuration via server.sh; custom map and preview image management; and build instructions for the Cube engine and ENet library. Includes technical details on SDL_image integration, OpenAL-Soft audio troubleshooting, and cheat mitigation strategies for the thick client-thin server architecture.

Tokens
11.8K
Snippets
27
Records
68
Agent score
72%

What's inside AssaultCube

  1. Overview of IJG JPEG Software

    master

    The Independent JPEG Group (IJG) provides C software for JPEG image encoding, decoding, and transcoding. It implements JPEG baseline, extended-sequential, and progressive compression processes.

    Key components include:

    • Library routines: For reading and writing JPEG image files, intended to be integrated into other applications.
    • cjpeg: A sample application for converting images to JPEG format.
    • djpeg: A sample application for decoding JPEG images.
    • jpegtran: A utility for lossless transcoding between different JPEG processes.
    • rdjpgcom & wrjpgcom: Utilities for inserting and extracting textual comments in JFIF files.

    The software emphasizes portability, flexibility, and reliability, making it suitable for industrial-strength use and commercial products.

  2. Overview of AssaultCube

    master
    AssaultCube is a free, lightweight, multiplayer first-person shooter based on the CUBE engine. It is designed for fast, arcade-style gameplay in realistic environments and is optimized for low-latency performance, even on low-bandwidth connections (as low as 56 Kbps) and older hardware (Pentium III and above).
  3. AssaultCube Key Features

    master

    AssaultCube includes several built-in tools and gameplay features:

    • In-game Map Editor: Allows players to create custom maps with support for real-time cooperative editing.
    • Single-player Bot System: Provides AI opponents for solo play.
    • Demo System: Supports recording gameplay sessions.
    • Multiplayer Game Modes: Includes Deathmatch, Survivor, Capture the Flag, Hunt the Flag, Keep the Flag, Pistol Frenzy, Last Swiss Standing, and One-Shot One-Kill (with team variants available).
    • Low Resource Footprint: The base package is ~50 MB, and additional maps are very small, averaging ~20 KB each.
  4. AssaultCube Licensing and Attribution

    master
    AssaultCube is primarily based on the Cube game engine and uses a z-lib-like license. It also incorporates code from pCube and Sauerbraten. For detailed licensing information regarding the engine, refer to README_CUBEENGINE.txt.
  5. AssaultCube System Requirements and Platform Support

    master

    AssaultCube is a lightweight package (~50 MB) that officially supports the following platforms:

    • Windows: 2000, XP, Vista, 7, 8, 10, 11
    • Linux
    • macOS: 10.6+ (64-bit)

    It is optimized to run on older hardware, specifically Pentium III processors and above, depending on settings.

  6. Redistribute AssaultCube

    master
    You may redistribute AssaultCube according to the terms of its zlib-like open source license. This includes the free, unmodified distribution of both the source code and the binaries. For specific legal details, refer to the official license documentation.
  7. Rules for using modified AssaultCube clients

    master

    AssaultCube binaries compiled from source are compatible with official binaries, but they do not include the cheat protection described in README_CUBEENGINE.txt.

    Important Usage Policy: To support fair play, you MUST NOT connect to servers that are not your own using a modified client that contains changes other than those made for platform compatibility or bug fixes. Using modified clients to gain an advantage is considered cheating.

  8. Understand the Cube engine license

    master

    The Cube engine source code is provided under the ZLIB license, with one additional specific clause:

    1. Origin: You must not misrepresent the origin of the software or claim you wrote the original code.
    2. Marking Alterations: Altered versions must be clearly marked and not misrepresented as the original software.
    3. Notice Preservation: The license notice must not be removed or altered from any source distribution.
    4. No Relicensing (Cube Specific): Source versions may not be relicensed under a different license without explicit written permission from the author.

    Important Notes:

    • The enet network library included in the source is covered by the "No problem Bugroff" license (compatible with ZLIB).
    • Game Media: Maps, textures, sounds, and models are not covered by this license and may have individual copyrights/restrictions.
    • Binary Distribution: The ZLIB license allows for the distribution of compiled binaries.
  9. Mitigating cheats in Cube-based multiplayer games

    master

    Because Cube uses a thick client - thin server architecture, it is highly sensitive to cheating (e.g., aimbots). If you are building a multiplayer game based on this source, consider these mitigation strategies:

    • Distribute Binaries Only: Only release compiled executables to make reverse engineering more difficult for casual cheaters.
    • Network Proxy: Use a closed-source network proxy (similar to qizmo) that checksums the executable and game media to verify client integrity.
    • Protocol Incompatibility: Release your source code with a network protocol that is incompatible with the official Cube binaries.
    • Client-Side Consistency Checks: Implement cheat detection where clients track stats (health, movement speed, shot consistency) for other players. If discrepancies are detected, clients can vote to ban the cheater, or you can implement server-side stat checking.
  10. Distribute the SDL runtime environment with AssaultCube

    master
    When distributing AssaultCube (specifically the Win32 binaries), you must include the Simple DirectMedia Layer (SDL) runtime environment. SDL is a cross-platform library used for multimedia software, such as games and emulators. Without the appropriate SDL runtime files, the application may fail to launch or function correctly.