Starting BIG Project needed extensions!

Blitz3D Forums/Blitz3D Programming/Starting BIG Project needed extensions!

Captain Wicker (crazy hillbilly)(Posted 2012) [#1]
Hi there,

In a week or so, I am going to be starting work on a huge project with Blitz3D. I am going to need something to help load large ammounts of images, textures etc lightning fast! I will also need to have something that can somehow add more features like shadows and particle effects. Are there any recommendations? Dynamic Linked Libraries, External Libraries via 'bb' files. *Must have a good Documentation* Does anyone recommend the FastExtension or FastImage? Is there anything better/faster for low spec machines? not a necessary but a nice gui with a more professional appearance would be nice. :D

Last edited 2012


Yasha(Posted 2012) [#2]
I am going to need something to help load large ammounts of images, textures etc lightning fast!


The only way to load images and meshes faster than B3D already does will be to devise your own extremely optimised data format and packing system to load hundreds of meshes from a single file. Otherwise... it's already as fast as it can reasonably be made (and who even has that amount of media?). Libraries will not help with this in any significant way.


Does anyone recommend the FastExtension or FastImage?


Yes. These are the absolute best B3D libraries that still use the original engine core.


Is there anything better/faster for low spec machines?


...if B3D+FastExtension isn't low-spec enough, the machine in question will not play anything worthwhile anyway. As an aside, a general guideline is to not target low-spec anyway: it's better to create a good game that will be enjoyed by most players, than a game that low-end players can play, but won't like, and nobody else will play at all. (PS: Your ancient eBay laptop is not "low"-spec; it's waaaay off the bottom of the scale, and there is no reason whatsoever to even think about supporting it.)


a nice gui with a more professional appearance would be nice


...need to know what you want to build to know what kind of GUI is good for you.



Now, a question in return:

I am going to be starting work on a huge project with Blitz3D


...what? Why?

You have BlitzMax; you've been focusing on learning BlitzMax instead of Blitz3D; you understand that there are other 3D engines out there, and that the B3D engine has very few advantages these days (and very limited compatibility). Why are you actively choosing to downgrade both language and engine before beginning a "huge project"? (Especially since your request indicates that you already feel B3D isn't even appropriate for a "huge project" out-of-the-box?)

Seriously, I love B3D too, but for beginning a new "serious" project, if you have BlitzMax + a modern 3D engine I can't fathom why you wouldn't use them.


Guy Fawkes(Posted 2012) [#3]
And I cannot "fathom" it's not butter :D


Captain Wicker (crazy hillbilly)(Posted 2012) [#4]
Yasha, Would you recommend 3Impact or Irrlicht instead? Are there any guis similar to the Devil GUI for it? What engine can handle hundreds of *high poly* models? Which is better? MaxB3d, MiniB3d, Warner, OGRE? What about Irrlicht+iB3D? http://www.gprogs.com/viewforum.php?id=1
Also, When I said "Huge Project" what I meant was something similar to a modernized version of Super Gerball or MarioKart as this would be huge for me! :D

EDIT: btw is the netbook really that bad with XP, Intel Atom, a new screen and inverter? Im thinking about installing an Nvidia Geforce card too! :D

Last edited 2012


Yasha(Posted 2012) [#5]
Im thinking about installing an Nvidia Geforce card too! :D


You seriously want to spend more money on that thing? I will repeat my earlier comment: you can get a much newer device like an eeePC for the same sort of price as the replacement screen alone! ...I guess it's your money to burn, but be warned that you almost certainly won't be able to change the graphics card in a laptop (so do research this properly).


Back to the topic -

My personal recommendation would be for Irrlicht, because that's what I'm migrating to myself! (Don't ask me any questions about it yet though. Still new.)

Irrlicht does contain a GUI. Surely for a video game, the "business-style" Devil engine GUI is not what you want? Most games have very chunky, simple interfaces that don't look anything like application GUIs. All you normally want is a panel-based 2D engine that can detect inputs and roll the rest, especially the appearance, yourself (I think Irrlicht's GUI will handle this OK).

Which is better? MaxB3d, MiniB3d, Warner, OGRE?


Don't know MaxB3D or Warner Engine, but of the other two: miniB3D is a "simple" engine, and doesn't handle high-demand stuff that well (it does too much maths in BlitzMax, and animates with the CPU); OGRE is a rendering-only solution and may be a little short on other features that you would want, but is likely to be much faster than the others (similar to Irrlicht, I expect).


What engine can handle hundreds of *high poly* models?


Anything that does most of the maths in C/++ and the animation on the GPU...

You will need to give proper thought to LOD systems, geometry instancing, and level design, to make any highly-detailed game perform well, unless you use an engine that has those features built-in, but that will necessarily also mean a loss of control.

Super Gerball and Mario Kart don't really sound like they need that level of detail though (Super Gerball is the original miniB3D game, isn't it?).

The short answer is: pick one technology and learn it thoroughly. Upon seeing your goal, it is probably something you could do in B3D, but just choose one thing and develop with that. Of the tools available GMan's Irrlicht port looks like the best option to me, because it combines massive power with a familiar Blitz product, but really any of the ones you mentioned will do fine as long as you persist with them.


Captain Wicker (crazy hillbilly)(Posted 2012) [#6]
Irrlicht looks promising so ill try it first and if that doesn't go well, I will try something else :)

Wow, im impressed! this code is all it takes to create a sphere in Irrlicht ib3d:
Import irrlicht.core
Import irrlicht.b3d

ib3d_Graphics3D(800, 600, 32, 0)

Global LIGHT:Int = ib3d_CreateLight()
Global CAMERA:Int = ib3d_CreateCamera()

Global sphere:Int = ib3d_CreateSphere()
ib3d_PositionEntity sphere,0,0,5

Repeat


ib3d_UpdateWorld
ib3d_RenderWorld
Until AppTerminate() Or KeyDown(KEY_ESCAPE)

Very Nice! :)

Last edited 2012


Rroff(Posted 2012) [#7]
Couple of things

DDS files for texture formats as much as possible will not only decrease load times, reduce memory deployment footprint and result in better rendering performance in most cases letting you work with a lot more high resolution textures than normal.

Your going to start head butting the DirectX limits for vertices and tris pretty quickly if you start loading lots of high resolution meshes. Any model with more than IIRC 64K vertices will probably cause things to crash and in some cases you can hit the limits earlier than that. IIRC there are also fairly restrictive overall scene limits. Aslong as you use some good opptimisation tho its possible to use some decently high resolution meshes.

There is no one ideal realtime dynamic shadow casting system for B3D, fastext does well for certain types of useage but is quite limited, devils shadow system does proper stencil shadows but has some compatibility issues and if your producing a commercial app may run into some patent issues as some of the techniques it uses are based on IP owned by creative technology.

From the sounds of what your trying to do you probably should be either looking at the Leadwerks Engine or possibly HeroEngine. What your trying to do is possible in B3D but only with a lot of experience and preparedness to think outside the box.