hipreme_engine ~master
Open-Source D Game Engine
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
This package provides sub packages which can be used individually:
hipreme_engine:hbuild - The main way to build your game using Hipreme Engine. It can generate projects and select to build to any of the supported platforms
<p align="center"> <img src="assets/marketing/svg/engine_logo.svg" width="300"/> </p>
<h1 align="center"> <a href="https://github.com/MrcSnm/HipremeEngine/wiki/Getting-Started">Getting Started</a> </h1>
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
- HENOLOG -> Disable the global logging functions
- HEERRONLY -> Maintain only error logging
Platforms
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.
Build System Showcase
- 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
Engine Core
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
Features
- 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
Coding
- 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
Next steps
- GLSL to HLSL transpiler
- Multi threaded audio decoding (currently only single threaded is supported)
- Create a proof of concept
- ~master released 6 days ago
- MrcSnm/HipremeEngine
- CC BY-4.0
- Copyright © 2018 - 2022, Hipreme
- Authors:
- Sub packages:
- hipreme_engine:hbuild
- Dependencies:
- net, util, config, audio, console, hipengine_api:interfaces, filesystem, bind, timer, renderer, tween, math, assetmanager, error
- Versions:
-
1.1.0 2025-Jul-28 1.0.14 2023-Dec-23 1.0.13 2023-Dec-23 1.0.12 2023-Dec-23 1.0.11 2023-Dec-23 - Download Stats:
-
-
0 downloads today
-
1 downloads this week
-
1 downloads this month
-
91 downloads total
-
- Score:
- 2.3
- Short URL:
- hipreme_engine.dub.pm