Questions About BlitzMax

BlitzMax Forums/BlitzMax Beginners Area/Questions About BlitzMax

Buggy(Posted 2007) [#1]
I currently only own Blitz3D, but have been seriously thinking in investing this month's food money in purchasing BlitzMax. I do, however, have some questions.

Does BlitzMax use 3D meshes? Or 2D meshes, for that matter? Does it, for example, render triangles, or only images? Is there an AddVertex command, for example?

Does BlitzMax render images/triangles at specific pixels, or at arbitrary coordinates like with Blitz3D's Graphics3D?

Thanks in advance.


H&K(Posted 2007) [#2]
Does BlitzMax render images/triangles at specific pixels, or at arbitrary coordinates like with Blitz3D's Graphics3D?
Not pixel perfect. (Well, you tell it the pixel, then it finds what % of screen that pixel is, then uses that, so...)

Does BlitzMax use 3D meshes? Or 2D meshes, for that matter? Does it, for example, render triangles, or only images? Is there an AddVertex command, for example?
Bmax isnt 3D at all, so no. It like how you cannot ask that question about c++, cos the basic language dosnt have that stuff.

However there is MiniB3D which is an OPenGL implementation of B3D (Free open source)
Gmans Irrlicht wrapper (With IrrB3D) (Free)
Dreamotion (Free)
And
B3DSdK (Not free)

Basicly MiniB3D and IrrB3D and B3DSdk are all sort of B3B, with B3DSDK being most complete (and Not free)


FlameDuck(Posted 2007) [#3]
Does BlitzMax use 3D meshes? Or 2D meshes, for that matter?
Define: 3D meshes and 2D meshes.

Does it, for example, render triangles, or only images?
Triangles. I don't think you can render "only images".

Is there an AddVertex command, for example?
Not directly, no.

Does BlitzMax render images/triangles at specific pixels, or at arbitrary coordinates like with Blitz3D's Graphics3D?
Specific pixels.


Buggy(Posted 2007) [#4]
Thanks, you guys. So it's like BlitzPlus (or, so I can better identify, like using 2D commands of Blitz3D), but with OpenGL?


Czar Flavius(Posted 2007) [#5]
And object-orientated, and more expandable.


Perturbatio(Posted 2007) [#6]
Of course, there are a few 3D modules for it, irrlicht, MiniB3D and others.


Dreamora(Posted 2007) [#7]
Its like BlitzPlus but with:

1. CrossPlattform
2. Images support realtime rotation, scaling and blending
3. New and definitely worlds more powerfull collision system if you understand how it works.
4 - 200. add further things here :)


Buggy(Posted 2007) [#8]
What kinds of collision is it, then?


Dreamora(Posted 2007) [#9]
Still pixel perfect.
But the old way of doing it with "image against image" is lousy and slow.
It now supports 32 collision layers you can write images to and read collisions.

That way you can reduce the calculations needed for collision tests drastically especially on not moving things or if 20 objects only send collision and do not need to know if they collided with (underground for example, walls etc) but only 1 object that needs to know if it has collided with the wall.

In that case you write the walls etc to the collision layer and the ball only reads the collision.

Oh and above that all you can add an object to the collision write, now when you do a collision read, you get an object array that has all objects in with which the object that just read collision collided :)
-> event handlers possible.


Buggy(Posted 2007) [#10]
I'm a little confused, but it sounds good. Is it more efficient, because - if you have a bunch of walls - instead of checking for collisions with each wall, the walls are all put onto one layer, and it does the whole check at once?

Another thing: realtime rotation and scaling... how is that different from BlitzPlus/Blit3D's ScaleImage/RotateImage? Does it not cause any slowdown? For a top-down space shooter, for example, is this real-time rotation as good or better than pre-rotating every frame into an animated image?


tonyg(Posted 2007) [#11]
This will explain about collisions and blend modes and transforms etc.
Bmax is 2D-in-3D so blends, rotates and scales have virtually no affect on performance.


Buggy(Posted 2007) [#12]
Gotcha.

They keep coming: are/is there more TCP/UDP commands/functionality with BlitzMax than Blitz3D?


tonyg(Posted 2007) [#13]
About the same but Bmax comes with Gnet module.
The GameNet module (GNet for short) provides a set of commands for creating and managing multiplayer network games.




Buggy(Posted 2007) [#14]
And what are the advantages of GNet? Do I have to use it if I make a multiplayer game?


tonyg(Posted 2007) [#15]
Advantages of GNet over what? It's the only one supplied as standard and you get the source. There is this tutorial.
You don't have to use GNet. There is KNetLib and TNet (Truplo Net?) and there was some discussion about RakNet.<edit> Hmmmm. It seems KNetLiB Bmax wrapper has gone and TNet is not longer being developed. That's a shame.


Dreamora(Posted 2007) [#16]
Or if you are a little freaky, you use ENet which is what GNet uses as underlaying networking layer.

I personally based my networking layer on Vertex BNetEx module as lowlever layer for the networking.


Buggy(Posted 2007) [#17]
What I mean is, do I have to use a networking library at all? Are there still the basic TCP/UDP commands plus GNet? Can I simply use only these commands?


Dreamora(Posted 2007) [#18]
No there are no common tcp/udp commands like in the old blitz.

Either you write your own, use a library like BNetEx or you use GNet.

Blitz only has socket support, so if you want to program on socket level ... lots of fun :)


Buggy(Posted 2007) [#19]
What's the "socket level," and when you say, "write your own," do you mean in Blitz or add a DLL-ish thing in C++?


Buggy(Posted 2007) [#20]
Basically, what are sockets, and can I use them directly with BlitzMax commands?


tonyg(Posted 2007) [#21]
sockets
and 'Yes'. Check Modules / Streams / SocketStreams and Networking / Sockets