hipreme_engine 1.0.14
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:build_selector - 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="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 source/global/opts.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
Current features
- Input handler and text input with selected keyboard layout;
- Xbox One/Series Gamepad implementation;
- Minimal Matrix/Vector implementation;
- Asset packing, appending, updating and reading for faster performance(less IO);
- Multi threaded asset loading and decoding (image).
Platforms
Almost all of those platforms can be built by using the build_selector project.
If you have D installed already, the buildselector can be got by running `dub run hipremeengine:build_selector`
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
Features
- Simple build system
- Virtual File System
- Centralized asset locator with caching
- File reading with progress notification
Rendering
- Metal 2.4
- Direct X 11
- OpenGL 3
- OpenGL ES 3
- OpenGL ES 2
- WebGL 1.0 (OpenGL ES 2 emulated)
- HipRenderer (abstraction)
Features
- Sprite
- SpriteBatch
- GeometryBatch
- FrameBuffer
- BitmapText
- Shader
- Material
- Tiled maps
Audio
- AVudioEngine
- OpenSL ES
- OpenAL
- XAudio2
- WebAudio
- HipAudio (abstraction)
Features
- Streaming
- 3D audio
- Low Latency on Android -> See flags at config/opts.d
HIP_OPENSLES_OPTIMAL
andHIP_OPENSLES_FAST_MIXER
Decoding
- Images: PNG, JPG, BMP, TIFF and maybe others via arsd-official:image_files
- Audio: MP3, OGG, WAV, FLAC via audioformats
- Tiled: TSX and TSJ parser
- TextureAtlas: JSON, ATLAS, XML and TXT(Spritesheet) parser
- Font: FNT, TTF, OTF
- Pack: HapFile(Hipreme Asset Packing File)
- Settings: INI/CONF, JSON (HipremeEngine own's implementation that simulates std.json but faster) and CSV
Coding
- Scripting:
- D ( check api module for reference )
- Filewatcher for recompiling the script
- WebAssembly server reloader
- Live reload ( no engine restart for coding )
State is not saved, it is a simple restart, but all the assets are also cached, so, it is still way faster than reopening.
- Lua (outdated)
- May be subject to removal
Next steps
- GLSL to HLSL transpiler
- Multi threaded audio decoding (currently only single threaded is supported)
- Create a proof of concept
Issues list
- You can't spawn an Object from within an interface without calling
hipSaveRef
orGC.addRoot
. This is a bug on DLL implementation which doesn't actually add the new object spawned from an interface as a leaf.
- 1.0.14 released 12 months ago
- MrcSnm/HipremeEngine
- CC BY-4.0
- Copyright © 2018 - 2022, Hipreme
- Authors:
- Sub packages:
- hipreme_engine:build_selector
- Dependencies:
- util, config, audio, console, hipengine_api, filesystem, bind, timer, renderer, tween, math, assets, error
- Versions:
-
1.0.14 2023-Dec-23 1.0.13 2023-Dec-23 1.0.12 2023-Dec-23 1.0.11 2023-Dec-23 1.0.10 2023-Dec-22 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
2 downloads this month
-
34 downloads total
-
- Score:
- 2.2
- Short URL:
- hipreme_engine.dub.pm