Hi, I'm new to BlitzMax

BlitzMax Forums/BlitzMax Programming/Hi, I'm new to BlitzMax

Yue(Posted 2015) [#1]
I am a user of Blitz3D and want to know who has better BlitzMax for 3D development.

It's easy, complicated?

Regards


xlsior(Posted 2015) [#2]
There is no 'official 3D engine for Blitzmax -- there's a few 3rd party ones out there, but not all of them are actively supported by their makers anymore.

Since you're used to B3D, the closest thing is probaby the MiniB3D module for blitzmax... It has the vast majority of the B3D commands, although not all of them.


feeble1(Posted 2015) [#3]
Hey Yue, Blitz3D is simpler than BlitzMax for 3D development, but you have much more flexibility with BlitzMax.

Check out the OpenB3D wrapper. Here is the forum post http://www.blitzbasic.com/Community/posts.php?topic=105082 and here is the wrapper download https://github.com/markcwm/openb3d.mod/archive/master.zip

It is in active development by people smarter than myself and it is also in a useable state. Most of the Blitz3D functions are present in OpenB3D and even a few extra goodies.


RustyKristi(Posted 2015) [#4]
Hey feeble

In regard to flexibility, I see there some early experiments and projects with BlitzMax and Android done by quite a few, so any demos or tests already done for OpenB3D wrapper + BMX + Android?

thanks


feeble1(Posted 2015) [#5]
I have not tested out OpenB3D on android and I should probably not attempt to speak for Brucey.

But, he has a version of the OpenB3D wrapper on his github repository and he appears to be feverishly working towards making all of his goodies compatible with BlitzMaxNg.

So, if it does not currently work, I think it is likely that he will sort it out at some point.


markcw(Posted 2015) [#6]
Hi Yue, with Blitz3d there are quite a few libraries not available in Bmx but if you really want to access Mac/Linux then use Bmx. There is also Bmx-NG (next generation) by Brucey who has provided new mobile platforms, namely raspberrypi and ios but this is very advanced so focus on legacy Bmx first.

It is not easy, it takes a long time to grasp it but it is a logical step onward from Blitz3d so if you want a more mature language then Bmx is that, for example proper OOP. The help files are a little poor so asking questions or searching for answers will be needed.

The official 3d engine was Max3d but has some bugs I believe, I think it is OGL 3 but not sure. Minib3d is OGL 1 and Minib3d Extended and Openb3d are OGL 2. Maxb3d is DX9 and OGL 2 it is promising but has some bugs. Leadwerks is OGL 3 but you have to use Lua not Bmx. Minib3d Plus is OGL 3, I think.


Brucey(Posted 2015) [#7]
any demos or tests already done for OpenB3D wrapper + BMX + Android?

If someone wants to make OpenB3D OpenGLES 2.0 compatible, then I will get it working with BlitzMax NG on ARM platforms (iOS, Android, Pi)


RustyKristi(Posted 2015) [#8]
If someone wants to make OpenB3D OpenGLES 2.0 compatible, then I will get it working with BlitzMax NG on ARM platforms (iOS, Android, Pi)


That would be awesome Brucey! Yes, please. btw, I'm trying the win32 release via github and it works great so far. :-)


angros47(Posted 2015) [#9]
In theory, OpenB3D should be able to work on OpenGLES 2.0 if incompatible commands are removed/mapped to null functions. Of course, it would be able to render only entities that have a shader attached. Current version can already bypass most of the fixed pipeline, even if it does not that by default.

To be able to use GLES 2.0 under linux or win32, what library/include should I use? OpenGL can do everything i need, but it does not alert when I use a command that is not available in GLES.

Brucey once suggested the use of Angle, would it be a solution? And how could I install it in GCC?


JoshK(Posted 2015) [#10]
There's a macro you can define in GLSL that will make the same shader run on ES or regular code. I forgot what it was, something to do with the default precision definition.

You also have to add support to make the application save and reload all its textures and VBOs, because Android dumps everything when you switch out of the application. I think they added a setting to modify that behavior, but I am not sure if it works all the time. And mobile doesn't support DXT compression.


JaviCervera(Posted 2015) [#11]
I think you mean this, Josh:

#ifdef GL_ES
precision highp int;
precision mediump float;
#endif


angros47(Posted 2015) [#12]
Since OpenB3D does not contain any GLSL code, I don't need GLSL macro. What I need is some library that reproduce GLES restriction (i.e. no glLoadIdentity), so I can test the code.