antizona

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit ddf913dc0a7392236495be20026bc7c1a76b8774
parent b5af32e2798ef3ebff4c9e262611a6c80bbcb0bd
Author: averagecoder <averagecoder@noreply.codeberg.org>
Date:   Tue, 25 Aug 2026 02:42:25 +0300

fix: remake readme, add roadmap

Diffstat:
MREADME.md | 116+++++++++++++++++++++++++++++++++++++++++++------------------------------------
1 file changed, 63 insertions(+), 53 deletions(-)

diff --git a/README.md b/README.md @@ -1,76 +1,86 @@ # antizona -A minimalist, high-performance open-source multiplayer engine and framework -for Grand Theft Auto: San Andreas, written in pure C99. +A minimalist 3D software-rendered multiplayer engine and client for Grand Theft Auto: San Andreas, written in pure C99. -Antizona is designed as a lightweight, secure alternative to modern bloated SA-MP -and MTA platforms. Instead of pay-to-win mechanics, heavy server-side scripts, and -unoptimized custom assets, the project focuses on a deep, systemic, player-driven -Roleplay (RP) environment. Every element of the world—from weapon manufacturing and -logistics to crime and law enforcement—is simulated as an interconnected, logical -cycle driven solely by player actions, with zero administrative or donation bloat. +## Overview -## Features +antizona is a low-level, bloat-free multiplayer suite. It operates without GPU drivers (software rendering), embedded web browsers (CEF), or heavy scripting runtimes. -- **Multi-threaded Asset Compiler**: Converts models (DFF) to PLY and textures (TXD) - to TGA directly from GTA3.IMG and GTA_INT.IMG. -- **Two-Pass Compilation**: Fully loads the 14,929 model IDE database before parsing - any IPL map placement, ensuring 100% correct object resolution. -- **Ultra-Lightweight Renderer**: Zero-dependency software rasterizer utilizing an - OpenSSL-secured network and local asset pipeline. -- **Strict POSIX Compliance**: Written in pure C99 with zero third-party dependencies, - ensuring maximum portability and performance. +- **Client**: Multithreaded CPU software rasterizer outputting directly to an X11 framebuffer (`XShm`). +- **Server**: Lightweight UDP daemon using spatial grid broadcasting. +- **Pipeline**: Offline asset converter mapping GTA SA archives into clean binary meshes and raw textures packed in an uncompressed `assets.tar`. -## Roadmap +## Platform & Status -### Phase 1: Local Collision & Player Physics -- Implement efficient Ray-Triangle intersection using the existing spatial grid `scene_grid` for ground height snapping. -- Build basic player movement physics: standard gravity and simple bounding-sphere world collisions. +- **Tested OS**: OpenBSD. +- **Target OS**: Linux / POSIX. -### Phase 2: Asynchronous UDP Networking -- Implement a minimalist asynchronous UDP server (`server.c`) utilizing Linux `epoll` or BSD `kqueue` for sub-millisecond execution. -- Serialize compact binary player state packets (ID, XYZ coordinates, Yaw, active actions). -- Implement local spatial partitioning on the server to broadcast state packets only to visible neighboring players. +*Windows and Android platforms are not supported at this stage.* -### Phase 3: Player Synchronization & Rendering -- Load dynamic player `.dff` skins (gang members, CJ) at runtime. -- Render other players as dynamic meshes using the existing `draw_mesh` pipeline. -- Implement a lightweight, low-overhead skeletal animation state machine. +## Quick Start -### Phase 4: Core Systemic Interaction -- Low-latency hitscan raycasting calculated against target bounding spheres (`sphere_cx`, `sphere_cy`, `sphere_cz`, `sphere_r`). -- Basic player-to-world interaction (inventory item pickups, server-side state verification). +### Prerequisites +- C99 compiler (`gcc`, `clang`, or `pcc`) +- POSIX threads (`pthread`), math library (`libm`) +- X11 libraries (`libX11`, `libXext`) +- Original GTA: SA installation files (required only for the asset build phase) -## Requirements +### Building & Running -- OpenSSL (libssl, libcrypto) -- X11 (libX11, libXext) -- POSIX threads (pthread) +1. Compile binaries: +```sh +make +``` -## Building +2. Extract game assets (one-time step): +```sh +./bin/build /path/to/gta_sa +``` -To compile both the asset compiler and the software rasterizer: +3. Launch server: +```sh +./bin/server 7777 32 +``` -```bash -make +4. Launch client: +```sh +./bin/render 127.0.0.1:7777 nickname ``` -## Usage +<details> +<summary><b>Development Roadmap</b></summary> + +### v0.1.0 — Core Hardening & UX +- [ ] Implement synchronous connection handshake (`PKT_JOIN` -> `PKT_JOIN_ACK`) before client window initialization. +- [ ] Add 5-second server timeout auto-disconnect in client. +- [ ] Add vertical substepping to movement physics to prevent high-velocity terrain clipping. +- [ ] Mandate strict packet length checks and string null-termination in network code. +- [ ] Remove `system()` calls from asset pipeline. + +### v0.2.0 — Protocol Security & Server Scaling +- [ ] Add 64-bit session tokens to packet headers to prevent UDP IP spoofing. +- [ ] Implement 64x64 spatial grid partitioning on the server for $O(N)$ broadcasts. +- [ ] Optimize server socket I/O using `recvmmsg()` / `sendmmsg()` datagram batching. +- [ ] Transition server polling from `poll()` to `kqueue()` on BSD and `epoll()` on Linux. + +### v0.3.0 — Animations & Ped Mechanics +- [ ] Parse RenderWare `.ifp` animation files. +- [ ] Implement keyframe vertex-pose caching and SIMD blending for ped locomotion. -1. Compile and pack the game assets: - ```bash - ./bin/build /path/to/gta_sa_directory - ``` +### v0.4.0 — Combat & Systemic Base +- [ ] Ray-capsule intersection testing for hitscan shooting. +- [ ] Server-authoritative hit verification and health tracking. +- [ ] Compact binary item and pickup system. -2. Run the software rasterizer: - ```bash - ./bin/render - ``` +### v0.5.0 — Vehicles +- [ ] Vehicle geometry parsing and raycast suspension physics. +- [ ] Vehicle movement, orientation quaternion, and entry/exit network synchronization. -## Support / Donations +### v1.0.0 — Production Release +- First stable, production-ready release. +</details> -If you appreciate financial privacy and want to support the development of a fully -independent, decentralized, and s_u_c_k_l_e_s_s GTA SA multiplayer engine, you can donate -via **Monero (XMR)**: +## Support +Monero (XMR): `83xqB91zW31gZkw9sbeT3vjcFQ22L69nKUyCEWgTnWYYfZ4E7gbEVAX5dWh6hCpk6RGqCatZUgjvzGiDYL9HZ6dVCWoa6Jh`