Hipreme Engine v1.0.0 Announcement + iOS port

zoujiaqing zoujiaqing at gmail.com
Sat Dec 30 17:59:37 UTC 2023


On Thursday, 21 December 2023 at 00:32:00 UTC, Hipreme wrote:
> # Hipreme Engine v1.0.0 Announcement
>
> Today, I'm glad to announce that Hipreme Engine is finally 
> releasing its version 1.0. The 1000th commit marks the first 
> release of this engine. There is a lot of work already done and 
> a lot of work to be done. Some systems may find unstable 
> support, such as Linux, which of course I'm willing to help, 
> since it is not my development platform, it may not even work 
> on the first run. But, even though this may happen, there is 
> still a lot of work already done to be shown. It is the first D 
> library with that quantity of abstraction done for making your 
> work fully cross platform. But, with a lot of missing 
> functionality, why announce right now?
>
> # iOS Porting is Done
> ![Hipreme Engine on 
> iOS](https://private-user-images.githubusercontent.com/10136262/292053871-c9985689-4e96-4cae-bb21-22e4bdb7cd88.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDMxMTg5NDcsIm5iZiI6MTcwMzExODY0NywicGF0aCI6Ii8xMDEzNjI2Mi8yOTIwNTM4NzEtYzk5ODU2ODktNGU5Ni00Y2FlLWJiMjEtMjJlNGJkYjdjZDg4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjIxVDAwMzA0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZjNjYzMTQ5YmViODVkNDc3N2Y2NjkyMzczOTVkODM5ZDZlYzhjZGYwMTNkNzhiY2EzMjdiZjIyYjVkYjZjMjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.6GmEEIyPlM45h3Qpj-c0zHehxXnk0Azip6JMDFJ9D7I)
>
> # Battle Testing
> It is high time to start battle testing Hipreme Engine. The 
> engine is not gonna suffer any more power refactor for some 
> time now, since all the platforms are supported, the 
> abstraction is good enough for doing much.
>
> ### Make It Better
> By releasing this to public, it is possible to identify common 
> pitfalls that could be easily solved with a little time. Build 
> selector born from the need of making it easier to users setup 
> the engine.
>
> ### Be Patient
> Expecting the engine to work with the same behavior on every OS 
> and API is quite a hard task. It may take some time until the 
> engine is stable for everyone, although I guarantee I've done 
> the best I could to provide a high quality experience.
>
> ### Your Issue Is My Priority
> If you find any kind of issue, don't be afraid to submit the 
> issue, don't try to circumvent it unless you're really planning 
> to release anything soon. By submitting the issue you make me 
> aware of it and I'm certain that if it is doable, it is 
> definitely priority.
>
>
>
>
> ## Platforms Supported:
> - Windows
> - Linux
> - MacOS
> - iOS
> - Android
> - PS Vita
> - WebAssembly
> - Xbox Series
>
> ## Current Compiler:
> - DMD 2.106
> - LDC 1.36
> ### Warning:
> You won't be able to use your PC's D version. This was made 
> because the existence of the custom runtime I'm supporting 
> right now and to guarantee the best experience of any user. The 
> language understands which version you're using on 
> build_selector, and queries your permission for downloading it. 
> Since this is a one person project, this is the best way I 
> found for guaranteeing more stability.
>
> ## Supporting APIs:
> ### Rendering
> - OpenGL 3
> - OpenGL ES 1/2
> - WebGL
> - Direct3D 11
> - Metal 2.4
>
> ### Audio
> - OpenAL
> - OpenSL ES
> - XAudio 2
> - AVAudioEngine
>
>
> ## Features
>
> - Basic Windowing Support (Meant to open your window and 
> execute your game)
> - Basic Filesystem (Read/Write) on supported platforms with 
> async API
> - Game assets recognition + preloading
> - Primitives Rendering
> - Sprites+Animations rendering
> - Tween
> - Scripting API (Hot reload without reopening game window) + 
> null dereference check on Windows + Linux
> - Easy build system that should not require knowledge in 
> specific domains
> - Tilemap rendering
>
>
> ## What you can do with the current state
> - Easily create a single screen game
> - Generate builds to every platform mentioned
> - 2D games
>
> ## Common functionalities it is lacking
> - GUI
> - 2D Physics Engine
> - Particle System (needs more testing and serialization)
> - Post Processing shaders
> - User threading (means that the API user should not use 
> core.thread as it is not guaranteed to work)
>
>
> # Planned Features
> The features here planned are in order of importance:
>
> 1. Tutorials
>     1. Particle System
>     2. Basic GUI
> 2. Documentations
> 3. Small refactors on audio engine
> 4. Shader Transpiler - Write in D, output shaders for every API
>    1. Frame buffer abstraction
>    2. Post processing shaders
> 5. Make the renderer message based
>
> ## Warnings
> ### Starting Point
> - Means that the API finally reached a lot more of stability, 
> it is entirely possible to create games.
>
> ### You may find dumb bugs
> - As of now, I'm releasing this to make it easily available to 
> `dub` users. So, this project is still lacking some battle 
> testing.
>
> ### Lack of tutorials and documentation
> - The lack of tutorials and documentation are a real problem 
> right now. This is the next step after the creation of some 
> games
>
> ### Build Selector CI
> - The build selector CI is still requiring some updates to not 
> let it get changes from separate branches, it may break on the 
> release section.
>
>
> # Getting Started
> Run `dub run hipreme_engine:build_selector`. The actual 
> recommended would be simply cloning the engine on your own 
> since it may reach some path requirements problems on Windows.

exciting!
Hope to get better and better, continue to pay attention! DX12 
and Vulkan render!



More information about the Digitalmars-d-announce mailing list