The engine maintains some global options which you can modify it on
- modules/config/source/hip/config/opts.d:
- modules/config/source/hip/config/renderer.d:
- HE_DEBUG -> Use that for creating a debug version for the engine only
- HE_NO_LOG -> Disable the global logging functions
- HE_ERR_ONLY -> Maintain only error logging
Almost all of those platforms can be built by using the hbuild project.
If you have D installed already, the hbuild can be got by running
dub run hipreme_engine:hbuild
If not, you may go to the BuildAssets page and select your system. Both the language and engine will be installed locally by using them.
- Xbox Series (UWP): build/uwp
- Android: build/android/
- Browser (WebAssembly): build/wasm
- PS Vita: build/vita
- MacOS : build/appleos
- iOS: build/appleos
- Windows: bin/desktop
- Linux: bin/desktop
Requires libgl1-mesa-dev for opening X11 window and OpenGL
Rendering | Audio | Decoding | FileSystem | Renderer2D | Network | Input |
---|---|---|---|---|---|---|
Metal 2.4 | AVAudioEngine | Image: PNG, JPG, BMP & TIFF | C Std | Sprite | Server | Mouse |
DirectX 11 | XAudio2 | Audio: MP3, OGG, WAV, FLAC | D Std | Sprite/Geometry Batch | WebSocket | Touch |
OpenGL 3 | OpenAL | Tiled: TSJ & TMJ | Android AAssetManager | Framebuffer | TCP | Xbox Gamepad |
OpenGL ES 3 | OpenSL ES | Font: FNT, OTF TTF | Web Filesystem Simulation | BitmapText | NetController | Input Listener |
OpenGL ES 2 | Pack: HapFile (coming) | Parallel Asset Manager | Shader | Lightweight TypeInfo | ||
WebGL 1 (OpenGL ES2 Emulation) | WebAudio | General: INI, CSV, JSONC | Dynamic Asset Factory | Material | Auto Data Layout | |
HipRenderer* | HipAudio* | TextureAtlas: JSON, ATLAS, XML & TXT | TiledMaps | HipNetwork* |
*: Hipreme Engine abstraction
- HBuild build system. 1-Click deliver to expected platform
- WebAssembly reload server
- Centralized asset locator with caching and new types registering
- Lightweight TypeInfo: Guarantees that the sent type is the same that is received
- Auto Data Layout: Guarantees that the data is aligned to 1 byte reducing the overall toll of sending data over net
- Abstraction over renderer and audio player guaranteeing best performance and unified API
- Easy asset loading system
- Scripting: Use D for scripting with runtime code loading
- Filewatcher: Currently disabled since I didn't like the experience
- WebAssembly server reloader: Every rebuild of wasm automatically reloads the game
- GLSL to HLSL transpiler
- Multi threaded audio decoding (currently only single threaded is supported)
- Create a proof of concept