SkillAgentSearch skills...

HipremeEngine

Cross Platform D-Lang Game Engine with scripting support

Install / Use

/learn @MrcSnm/HipremeEngine

README

<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>

HBuild

The engine maintains some global options which you can modify it on

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

Example on build selector running and showing the build system

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

Related Skills

View on GitHub
GitHub Stars139
CategoryCustomer
Updated2d ago
Forks10

Languages

D

Security Score

85/100

Audited on Mar 26, 2026

No findings