GLBasic forum

Codesnippets => 3D-snippets => Topic started by: SnooPI on 2021-Feb-12

Title: SGEngine
Post by: SnooPI on 2021-Feb-12
Get the latest version here:
https://www.mediafire.com/file/pcadn73ym1bii1n/SGEngine.rar/file
Password: snoopisge

irrEdit
https://www.moddb.com/downloads/irredit (https://www.moddb.com/downloads/irredit)
Title: Re: SGEngine
Post by: Qedo on 2021-Feb-12
wonderful work and thanks for sharing.  :booze:
How long is it to complete?
ad maiora
Title: Re: SGEngine
Post by: Steinbock on 2021-Feb-12
Wow, great work  :good:
Title: Re: SGEngine
Post by: SnooPI on 2021-Feb-13
I don't know (I wasted a lot of time in my work) but I think I can work on it in parallel, I would say 1 month or 2 to make it complete with all the examples.
But during the development I will put the updates online so that you can test them.

Thank you for your support  :booze:
Title: Re: SGEngine
Post by: Schranz0r on 2021-Feb-14
Ah Irrlicht Engine.  :good:
Title: Re: SGEngine
Post by: SnooPI on 2021-Feb-14
-The Irrlicht wrapper is not just a simple transcription of Irrlicht functions, it's a little more complex.
-The engine uses 2 wrappers, one for Irrlicht but also another for irrKlang (for 3D sound)
-In the future, I plan to add AI and then more advanced physics.
So it's not only Irrlicht Engine,  it's SGEngine  ;)

Thanks Schranz0r, as I know you worked on a wrapper for Irrlicht, you might be able to help me later when you have time.
Title: Re: SGEngine
Post by: SnooPI on 2021-Nov-17
With a lot of delay (for lack of motivation I admit it :-[) here is a new update for SGE  :booze:
Title: Re: SGEngine
Post by: bigsofty on 2021-Nov-17
With a lot of delay (for lack of motivation I admit it :-[) here is a new update for SGE  :booze:

Only had a quick look but it's very imressive work SnooPI! Nicely structured code, with lots of remarks.

Well done!  :good:
Title: Re: SGEngine
Post by: Qedo on 2021-Nov-17
this is a great job, congratulations SnooPI and thanks for sharing it
Title: Re: SGEngine
Post by: SnooPI on 2021-Nov-19
Only had a quick look but it's very imressive work SnooPI! Nicely structured code, with lots of remarks.
The original Irrlicht wrapper was in this style, I kept it for clarity and to be able to understand it without difficulty even after years.
In addition, it saves me from having to write documentation ;) we understand perfectly the engine with only the examples.

this is a great job, congratulations SnooPI and thanks for sharing it
With pleasure  :booze:
Hope this engine will help to make quality 3D easily.

Thanks guys, I added 4 examples (from now on I would put "NEW" in the code for each new example).
Title: Re: SGEngine
Post by: dreamerman on 2021-Nov-29
Very nice, clean coding and well structured. Looks very easy to use. Checked several things, they are working without issues even on iGPU.
I have some tech questions, as always :D I'm curious, as Irrlicht could use several render API's (OGL, DX, software), You most likely are using OpenGL, are you creating another OGL context or using that already made by GLB? Does Irrlicht have now something more advanced than basic collision detection? (years ago they wanted to include some physic lib like Newton or Bullet if I remember correctly).
Such engine gives much more opportunities for more advanced 3d from start, so it gives some nice possibilities, one thing that is how portable this will be, for moment GLB main platform is Windows, but what about Linux (most likely should be simple and just use other headers), HTML5 (this may be tricky). Still current state of Proton and x86 emulation on MacOS can mitigate possible problems with this. Really nice to have another rendering back-end, even If now I would use it just for testing some things.

Thing about motivation, yeah, specially for larger project where so many things need to be done it sometimes hard, but I'm glad that you found perseverance to finish this ;)
Title: Re: SGEngine
Post by: SnooPI on 2021-Dec-08
Oh sorry Dreamerman, it's only now that I see your message  :(

Quote from: dreamerman
Very nice, clean coding and well structured. Looks very easy to use. Checked several things, they are working without issues even on iGPU.
Thanks  :booze: Yes, anyway I only have that at home and it's an old iGPU  :D
But if it's fast on my PC, it's normally fast everywhere, even on mobile  ;)

Quote from: dreamerman
I have some tech questions, as always :D I'm curious, as Irrlicht could use several render API's (OGL, DX, software), You most likely are using OpenGL, are you creating another OGL context or using that already made by GLB? Does Irrlicht have now something more advanced than basic collision detection? (years ago they wanted to include some physic lib like Newton or Bullet if I remember correctly).
You are right, the first version of SGE uses OGL and DX9 but I noticed a lot of issues with Windows 10, apparently Microsoft wants the developers to ditch DX9 completely  ;/
So I dropped DX9 and at the same time the software rendering, it's technically interesting but without much interest for serious development. The Irrlicht DLL has also been updated (so it's smaller).
No real physics engine for the moment but I plan to implement one soon (as well as an AI).
SGE uses its own OGL context.
The collision detection is great and even though the physics is basic it can do some interesting things (see example 12).

Quote from: dreamerman
Thing about motivation, yeah, specially for larger project where so many things need to be done it sometimes hard, but I'm glad that you found perseverance to finish this ;)
Your encouragement helps me  ;)

I did a big update, restructured the code, added / rewrote some functions, optimized others and removed DX9
With OGL it's a bit slower in windowed mode but in full screen it's almost as fast (tested on my old iGPU  =D)
I also added 5 examples.

I put the engine on MediaFire to allow me to update it more easily for small changes (like adding a comment for example).
For big updates like bug fixes, optimization, adding examples, ... I would put a message here.

If you have any problems or questions, don't hesitate.
Happy Christmas to all (despite the Covid  :sick:).
Title: Re: SGEngine
Post by: bigsofty on 2021-Dec-14
Never noticed a new update, will have a go tomorrow, thanks again SnooPI

If you have any problems or questions, don't hesitate.
Happy Christmas to all (despite the Covid  :sick:).

You too buddy!  :booze:
Title: Re: SGEngine
Post by: SnooPI on 2021-Dec-21
 :booze:  Bigsofty

New update.
Some functions have been rewritten and renamed, examples that used them have been updated.
Only 2 examples have been added but they are important because they show how to load a scene and create collisions from it.

I've put a link to an old version of irrEdit (in fact I've not yet tested the compatibility with the latest version  :-[)

Good fun.

(https://www.photofunky.net/output/image/0/d/2/6/0d2686/photofunky.gif)
Title: Re: SGEngine
Post by: dreamerman on 2021-Dec-22
Not sure how much to blame M$ and how much others like Intel, but from I discovered through digging in internet is that older iGPU's (most likely older graphic cards too) doesn't have proper Win10 drivers, they are using Win8.1 drivers with some tweaks/compatibility layer or whatever, that's why there are some issues - like not all hardware capabilities are exposed through those drivers - something is available/working ok in older Windows but not in >Win10, at least from what I found out/understand. It relates to both OpenGL and DirectX afaik, yet this may be wrong... I must admit that in some way I understand that, newer OS are for newer hardware so it can fully utilize it features and don't look behind (but it hurts :D)..

Nevertheless your Irrlicht wrapper works without problems, I checked all included examples, no visible issues found, all work with fluidity, mostly > 200fps (in windowed mode, beside BSP). The way You are doing this - keeping all core code behind curtain in SGE lib makes it really clear, simple to read and use, someone may be more familiar with this kind of scene management or have irr* background so would be easier for him to transit to GLB, another thing that some functions can be handy during prototyping phase.
Keep up good work, built-in some kind of physic will be interesting to see :-)

Happy Christmas! :)
Title: Re: SGEngine
Post by: SnooPI on 2021-Dec-23
Yes you are probably right, I would have to do some tests on a real graphics card for DX.
However, for the moment I would only keep the OGL rendering.

Quote from: dreamerman
Nevertheless your Irrlicht wrapper works without problems
It's not just an Irrlicht Wrapper, it's SGE!  :rant:  :P
-The Irrlicht wrapper is not just a simple transcription of Irrlicht functions, it's a little more complex.
-The engine uses 2 wrappers, one for Irrlicht but also another for irrKlang (for 3D sound)
-In the future, I plan to add AI and then more advanced physics.
So it's not only Irrlicht Engine,  it's SGEngine  ;)
In addition, the irrKlang and Irrlicht file system is "synchronized", this allows for example to use addzip even with irrKlang.
I just now have to do the same with loadscene  :whistle:

Quote from: dreamerman
keeping all core code behind curtain in SGE lib...
Damn, my bad English prevents me from fully understanding the beginning of this sentence  :doubt:

Quote from: dreamerman
so would be easier for him to transit to GLB, another thing that some functions can be handy during prototyping phase.
In fact we can easily use SGE in C/C ++  ;)

Quote from: dreamerman
Keep up good work, built-in some kind of physic will be interesting to see :-)
It's on fire.

Quote from: dreamerman
Happy Christmas! :)
You too and thank you for your feedback on this engine  :good:

Maybe later I'll do a tutorial in the form of a 3D mini-game to help people with their project with it.
For now, I will continue to add examples.
If anyone starts a project or even a few tries with SGE, I will be very interested to see it  :booze:

Title: Re: SGEngine
Post by: dreamerman on 2021-Dec-23
Quote from: SnooPI
Quote from: dreamerman
Nevertheless your Irrlicht wrapper works without problems
It's not just an Irrlicht Wrapper, it's SGE!  :rant:  :P
Sorry my bad :P I wanted to say that Your engine works great ;) Is 'SGEngine' is abbreviation from 'SnooPI Game/Graphics Engine'? :]

Quote from: dreamerman
keeping all core code behind curtain in SGE lib...
It meant that core code responsible for all things, works in back, just like in a proper game engine, so end-user doesn't bother messing with unnecessary stuff - has simplified task with ready to use simple functions :)
Title: Re: SGEngine
Post by: SnooPI on 2021-Dec-23
Ah ok I understand better like that  :good: Thks

For the name at the start it was a mix of Simple (SnooPI also why not  ;)) + GLBasic  + Engine.
But "Game/Graphics" is also good.

However, the name is not final, especially since there are already several 3D engines with the same name :(
I would have to find another one before the final version.


In fact I saw that almost all the abbreviations for 3D engines are already taken.
So I will keep the same and as the engine can easily work with another language, the G will be for "Game" and the "S" will be whatever we want (Simple, Super, Small, SnooPI :P, ...)