70 lines
3.0 KiB
Plaintext
70 lines
3.0 KiB
Plaintext
HALFIVE, THE UNIVERSAL RACING GAME
|
|
|
|
Halfive is a collection of specifications, libraries and implementations for a portable racing game.
|
|
Extension ID: _DEFAULT
|
|
To make extensions/modifications to this project easily trackable, I recommend specifying an 8-character alphanumerical extension ID (underscore hyphen 0-9 A-Z a-z, e.g "_My-Ext2").
|
|
|
|
'docs' folder: Documentation
|
|
'include' folder: Interfaces
|
|
'src' folder: Implementations
|
|
|
|
It has a lot of portable C utility interfaces, such as:
|
|
- Freestanding standard library (SWP) (include/halfive/h5stdlib.h)
|
|
- Coroutines (SWP) (include/halfive/h5cr.h)
|
|
- Custom document format (SWP) (include/halfive/h5doc/h5doc.h)
|
|
- Racing track format (WIP) (include/halfive/h5doc/h5t.h)
|
|
- Network packet format (UWP) (include/halfive/h5doc/h5net.h)
|
|
- Custom virtual machine (SWP) (include/halfive/h5vm/h5vm.h)
|
|
- Assembler for the VM (SWP) (include/halfive/h5vm/h5asm.h)
|
|
- Lisp dialect for the VM (WIP) (include/halfive/h5vm/h5elq.h)
|
|
- Rational numbers (SWP) (include/halfive/h5rat.h)
|
|
- Other mathematical tools (UWP) (include/halfive/h5math.h)
|
|
- Graphics/Sound/input glue code (UWP) (include/halfive/h5vi.h)
|
|
- RPG battle simulator (WIP) (include/halfive/h5rpg.h)
|
|
- RPG battle simulator prototypes (WIP) (include/halfive/h5rpg_proto.h)
|
|
|
|
WIP: Work in progress, unstable/unfinished
|
|
UWP: Work in progress, usable
|
|
SWP: Work in progress, stable
|
|
|
|
|
|
List of specifications and corresponding MIME types:
|
|
Encoding formats:
|
|
Halfive Document (H5DOC)
|
|
- text/x-h5doc
|
|
Halfive Bitmap Format (H5BMP)
|
|
- application/x-h5bmp
|
|
[ARCHIVED] Halfive Sound Format (H5SND)
|
|
- sound/flac
|
|
Domain-specific data formats:
|
|
[ARCHIVED] Halfive Network (H5NET)
|
|
- text/x-h5net
|
|
Halfive Track (H5T)
|
|
- text/x-h5t
|
|
General-purpose tools:
|
|
Halfive Virtual Machine (H5VM)
|
|
- text/x-h5asm
|
|
- application/x-h5bin
|
|
- application/x-h5drive
|
|
Halfive Eloquent Lisp (H5Elq)
|
|
- text/x-h5elq
|
|
|
|
If you read all specifications in the docs, you should be able to:
|
|
- Use H5T as a basic format for circuits
|
|
- Use H5BMP as a basic format for sprites
|
|
- Use H5SND as a basic format for sound effects and music
|
|
- Use H5NET as a basic format for communication
|
|
- Use H5VM as a basic runtime for user-generated content
|
|
|
|
|
|
Bonus projects in this repo:
|
|
- Custom Version Control System (SWP) (src/h5vcs/)
|
|
- Custom web client for controlling the server (UWP) (src/web-control/)
|
|
- Preprocessor for H5VM assembly (SWP) (src/core/h5vm/pp.sh)
|
|
- Generate an RSS feed from a directory (SWP) (docs/news/genfeed.sh)
|
|
- Generate a traffic page from an nginx log file (SWP) (docs/trafficgen.sh)
|
|
- Viewer for PAM files and tilesets (run 'make pamview' in src/core/, requires SDL2 headers) (SWP) (src/core/h5vi.c, part inside #ifdef H5VI_IMAGE_VIEWER)
|
|
|
|
--- Licensing ---
|
|
The whole project is released under the MIT license (SPDX: MIT). Please see each folder/file for individual licensing information.
|