Too much broken.

BlitzMax Forums/MiniB3D Module/Too much broken.

FlameDuck(Posted 2007) [#1]
Okay, so maybe "broken" isn't the best word. Maybe "missing" had been better.

Basicly the most fundamental thing that's missing is some sort of Unit Tests and other things that are essential to collaborative software development (like version and configuration management).

I had initially thought that the "Monkeys at typewritter" version was better suited, but that turned out not to be the case.

Anyway the things that are definitely missing (apart from unit tests that [amoungst others] would have caught the copy/paste bug in ScaleEntity) are:

Quaternion rotations.
Collada Importer - (and thus XML parser - but that's really a shortcomming of BlitzMAX).

Had a unit test framework been present I would have gladly volunteered to add these, but with the hit and miss state of the current code, I'm reluctant to add anything that could potentially break several hundred other things, without me knowing.

Also in the longer term I would like to see the possibility of adding third party products, like SpeedTree/SpeedGrass and PhysX, in an elegant manner.


klepto2(Posted 2007) [#2]
The idea with unit tests seems to be very useful. why not just try to implement your framework, you could also send your framework to my email and I will try to implement this.

A 'plugin' system is in the make by Mr.Pickleworth as far as I know. PhysX is a good point but I believe noone would have an advantage if we would implement a buildin for Speedtree/Speed grass because I believe the main blitzers simply don't have that much money for these engines (Speedtree license costs $8,495 per application) and without the source I think it is nearly impossible to implement this.

[Edit]
As far as I know a Unit Test system is not bind to a 3D Engine not needed in minib3d only. So maybe you could build a universal Bmax unittest module.


FlameDuck(Posted 2007) [#3]
I believe noone would have an advantage if we would implement a buildin for Speedtree/Speed grass because I believe the main blitzers simply don't have that much money for these engines
Fair enough, but my concern here isn't really for all blitzers. My concern is mainly a matter of "what I want".

So maybe you could build a universal Bmax unittest module.
Well I've already kinda got one. It's just mainly for internal use ATM, since it's not particularly well documented (in English anyway), and I'm still working on one of the support tools. I'll release it when it's done (shouldn't take much more than a week or so), if I can get my new subversion configuration up and running.


Amon(Posted 2007) [#4]
I think i read that Linepick is currently borked. There was a fix for it by ChrisC but the fix borked up CameraPick which I believe uses linepick.

I'd also like to see Collada support but .B3D will suffice for now. Plus if you're looking for physics for miniB3D take a look at JV-ODE for BMax. It only costs £10 via paypal.


Chris C(Posted 2007) [#5]
theres been xml support in max for ages now, thanks to burceys free and open modules (syncmod bah and grab all his stuff its good!)

adding 1001 mesh loaders I think would be a mistake, theres a b3d loader and the structure of a Tmesh is obvious, you can always write your own...

Someone has even demonstrated using irrlicht loaders with minib3d (I dont think he got very much feedback from memory I guess people aint that interested)

Theres loads of ways to export almost any format to b3d.

The major joy of minib3d is its simple and to the point
I fail to see the advantage of infesting it with 100's of loaders.


TheSin(Posted 2007) [#6]
I think Newton would be better than ODE, anyone got an idea how to implement Newton with minib3d in an cross plattform compatible manner?


FlameDuck(Posted 2007) [#7]
Plus if you're looking for physics for miniB3D take a look at JV-ODE for BMax.
I'm not, but I will be eventually, and I would prefer to use hardware accelerated physics on compatible hardware (like for instance the AGEIA PhysX cards).

theres been xml support in max for ages now, thanks to burceys free and open modules (syncmod bah and grab all his stuff its good!)
I thought one of the design goals was not to use external modules (like say, libxml2)?

adding 1001 mesh loaders I think would be a mistake
Collada is just one. It happens to be the industry standard and as such has a wide array of tools, unlike the propriety format B3D, which has fuck all.

the structure of a Tmesh is obvious, you can always write your own...
If I wanted to write my own 3D engine, we would not be having this conversation.

Theres loads of ways to export almost any format to b3d.
While this is technically true (although I'd hate to be the one who has to export a B3D from Bryce on the Mac) - Collada solutions are much, much better integrated than B3D will ever be.

I fail to see the advantage of infesting it with 100's of loaders.
You only need Collada. In either case if you want to be stuck with the out-of-date B3D format, be my guest. You don't have to use the Collada importer if you don't want to. But I would like to, and more importantly, I would like to not want to have to permanently branch off my Collada-enabled MiniB3D from the trunk MiniB3D development.


bradford6(Posted 2007) [#8]
Basing a very specific and rigid set of requirements on what is essentially freely contributed code (in the case of Mini-B3D) is rather harsh. Simon and Klepto have put in an incredible amount of work to make miniB3D stable, relatively feature-rich and very fast. MiniB3D uses the .B3D format primarily (3DS and MD3 also).

Collada is very interesting. It supports animations, physics, etc and when you finish the loader for MiniB3D I will be happy to use it :)

From what I understand, though, Collada is not generally used to load assets into Game Engines. It is primarily used to convert between different 3D packages within the pipeline. (although Irrlicht does have a COLLADA loader)

It seems to me that MiniB3D has met most of it's design goals to date and from the sounds of it, these design attributes are simply not what you are looking for. You can always go with the Unreal 3 engine or OGRE or Source or OpenSceneGraph or Torque or IIRlicht or...

http://www.devmaster.net/engines/

I normally don't like to respond to flamebait like this but the 'too much broken/missing' comment that kicked this thread off quite irked me.


Barbapapa(Posted 2007) [#9]
Sooner or later ( I guess sooner) Unwrap3D will have collada im/export, too. Brad has fixed and enhanced so much in the few days I own Unwrap3D and he is constantly improving it further and responses very fast to requests. In a few days an enhanced B3D plugin will be published. So, what i mean is, let simonh and klepto2 do their job ( a good BMax B3D clone) and others theirs (providing format conversion ).


Picklesworth(Posted 2007) [#10]
I would implement Newton with MiniB3D the old fashioned way: Outside of the graphics engine.

Unfortunately the SVN version is at present behind version 0.4 and not really getting much new... that shall change. As for now, I would not recommend it over the version 0.4 stuff.

As far as the code goes, I think it's pretty nicely done. Really tidy, no weird names, and easy to follow. It just begs to be expanded, because it is so quick to do so!
...Of course, I've been using Klepto's modular version where every part of the engine gets its own file.

Anyway, I do see why you would want to use a different engine, and those are certainly worthwhile suggestions for if someone ever wants to...


FlameDuck(Posted 2007) [#11]
Basing a very specific and rigid set of requirements on what is essentially freely contributed code (in the case of Mini-B3D) is rather harsh.
Not if you're willing to contribute code yourself, which I have stated on multiple occasions, provided there was a useful way to do so, without borking everything up.

Simon and Klepto have put in an incredible amount of work to make miniB3D stable, relatively feature-rich and very fast.
I haven't disputed that.

It seems to me that MiniB3D has met most of it's design goals to date and from the sounds of it, these design attributes are simply not what you are looking for.
I didn't say it was. Simon wanted to know what I thought was broken based on my comment in this thread, so I told him.

You can always go with the Unreal 3 engine or OGRE or Source or OpenSceneGraph or Torque or IIRlicht or...
I was. That's what provoked this conversation in the first place. People thought MiniB3D was the be all end all to 3D in BlitzMAX, I responded with the things I think it lacked.

I would implement Newton with MiniB3D the old fashioned way: Outside of the graphics engine.
That's fine, but not very practical. Since there is an abstract connection between the Entity and it's physics properties, it would be more useful to integrate the physics into the engine.


simonh(Posted 2007) [#12]
Blah.

I only asked you to elaborate on what was broken - you haven't been able to, so end of topic.