www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Hipreme Engine v1.0.0 Announcement + iOS port

reply Hipreme <msnmancini hotmail.com> writes:


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?


![Hipreme Engine on 
iOS](https://private-user-images.githubusercontent.com/10136262/292053871-c9985689-4e96-4cae-bb21-22e4bdb7cd88.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDMxMTg5NDcsIm5iZiI6MTcwMzExODY0NywicGF0aCI6Ii8xMDEzNjI2Mi8yOTIwNTM4NzEtYzk5ODU2ODktNGU5Ni00Y2FlLWJiMjEtMjJlNGJkYjdjZDg4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjIxVDAwMzA0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZjNjYzMTQ5YmViODVkNDc3N2Y2NjkyMzczOTVkODM5ZDZlYzhjZGYwMTNkNzhiY2EzMjdiZjIyYjVkYjZjMjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.6GmEEIyPlM45h3Qpj-c0zHehxXnk0Azip6JMDFJ9D7I)


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.


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.


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.


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.





- Windows
- Linux
- MacOS
- iOS
- Android
- PS Vita
- WebAssembly
- Xbox Series


- DMD 2.106
- LDC 1.36

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.



- OpenGL 3
- OpenGL ES 1/2
- WebGL
- Direct3D 11
- Metal 2.4


- OpenAL
- OpenSL ES
- XAudio 2
- AVAudioEngine




- 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



- Easily create a single screen game
- Generate builds to every platform mentioned
- 2D games


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



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



- Means that the API finally reached a lot more of stability, it 
is entirely possible to create games.


- As of now, I'm releasing this to make it easily available to 
`dub` users. So, this project is still lacking some battle 
testing.


- The lack of tutorials and documentation are a real problem 
right now. This is the next step after the creation of some games


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



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.
Dec 20 2023
next sibling parent aberba <karabutaworld gmail.com> writes:
On Thursday, 21 December 2023 at 00:32:00 UTC, Hipreme wrote:


 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?

 [...]
Man I'm so happy to see this!
Dec 21 2023
prev sibling next sibling parent M.M. <matus email.cz> writes:
On Thursday, 21 December 2023 at 00:32:00 UTC, Hipreme wrote:


 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....
This is quite an achievement. Congratulations and wishing you good progress with the future releases.
Dec 22 2023
prev sibling parent zoujiaqing <zoujiaqing gmail.com> writes:
On Thursday, 21 December 2023 at 00:32:00 UTC, Hipreme wrote:


 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?


 ![Hipreme Engine on 
 iOS](https://private-user-images.githubusercontent.com/10136262/292053871-c9985689-4e96-4cae-bb21-22e4bdb7cd88.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDMxMTg5NDcsIm5iZiI6MTcwMzExODY0NywicGF0aCI6Ii8xMDEzNjI2Mi8yOTIwNTM4NzEtYzk5ODU2ODktNGU5Ni00Y2FlLWJiMjEtMjJlNGJkYjdjZDg4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjIxVDAwMzA0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZjNjYzMTQ5YmViODVkNDc3N2Y2NjkyMzczOTVkODM5ZDZlYzhjZGYwMTNkNzhiY2EzMjdiZjIyYjVkYjZjMjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.6GmEEIyPlM45h3Qpj-c0zHehxXnk0Azip6JMDFJ9D7I)


 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.


 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.


 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.


 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.





 - Windows
 - Linux
 - MacOS
 - iOS
 - Android
 - PS Vita
 - WebAssembly
 - Xbox Series


 - DMD 2.106
 - LDC 1.36

 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.



 - OpenGL 3
 - OpenGL ES 1/2
 - WebGL
 - Direct3D 11
 - Metal 2.4


 - OpenAL
 - OpenSL ES
 - XAudio 2
 - AVAudioEngine




 - 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



 - Easily create a single screen game
 - Generate builds to every platform mentioned
 - 2D games


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



 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



 - Means that the API finally reached a lot more of stability, 
 it is entirely possible to create games.


 - As of now, I'm releasing this to make it easily available to 
 `dub` users. So, this project is still lacking some battle 
 testing.


 - The lack of tutorials and documentation are a real problem 
 right now. This is the next step after the creation of some 
 games


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



 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!
Dec 30 2023