Files
libsst/README.md
2026-04-03 00:22:39 -05:00

80 lines
2.7 KiB
Markdown

# libsst / ZEngine
**Version 0.6.0** | **762 Studios** | **WTFPL v2**
A cross-platform C++ game engine library providing low-level system
abstractions, math, networking, rendering, and an entity-component simulation
framework. Originally developed circa 2011-2013.
## Modules
### Low-level C libraries (`libsst-*`)
| Module | Description |
|---|---|
| **libsst-atomic** | Atomic operations for lock-free programming |
| **libsst-concurrency** | Threads, mutexes, events, semaphores, read-write locks, TLS |
| **libsst-crypto** | Hash functions and cryptographic utilities |
| **libsst-glapi** | OpenGL 3.3 context management and function loading |
| **libsst-math** | Vectors (2/3/4), matrices (2x2/3x3/4x4), geometry, transforms |
| **libsst-net** | Cross-platform socket abstraction (TCP/UDP) |
| **libsst-os** | File I/O, memory mapping, dynamic libraries, timing, CPU info |
| **libsst-random** | Mersenne Twister, CMWC, small PRNG, simplex noise |
| **libsst-wm** | Window creation, input events, OpenGL context, display modes |
### High-level C++ libraries
| Module | Description |
|---|---|
| **ZUtil** | RAII wrappers around libsst, custom containers (ZArray, ZList, ZHashMap, ZRingBuffer, ZString), smart pointers, serialization (JSON, XML, INI, binary), logging, slab allocation, task streams |
| **ZNet** | Client/server networking built on enet with packet channels, bandwidth metering, and peer management |
| **ZRenderer** | OpenGL rendering abstraction: shaders, textures, data buffers, render targets, render state |
| **ZRendererUtil** | Font rendering, particle systems, static mesh loading (assimp), tessellation, camera, transform hierarchies |
| **ZSimulation** | Entity-component framework with fixed-timestep updates, entity messaging, property buffers, and network synchronization |
## Platform support
- **OS:** Windows, Linux, macOS, Solaris, Android, Raspberry Pi
- **Architectures:** x86, x86-64, ARM, IA64, MIPS, PPC, SPARC
- **Compilers:** GCC, ICC, MSVC, Sun Pro
## Building (GNU Make, non-Windows)
```sh
make release # release build for detected platform
make debug # debug build
make clean # clean artifacts
```
Output goes to `Bin/<arch>/`.
## Third-party dependencies
Bundled under `Lib/Include/`:
- Box2D (physics)
- CML (configurable math)
- OpenAL / FMOD (audio)
- assimp (model import)
- enet (reliable UDP)
- FreeType (font rasterization)
- RapidXML (XML parsing)
- ZSTL (custom STL containers)
## Tests
```sh
make ztestsuite
```
Covers math types, containers, memory allocation, smart pointers, I/O,
concurrency, random number generation, and noise.
## Authors
James Russell, Patrick Baggett, Chris Ertel, and contributors at 762 Studios.
## License
[WTFPL v2](http://www.wtfpl.net/) -- Do What The Fuck You Want To Public License.