Initial commit
This commit is contained in:
79
README.md
Normal file
79
README.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user