Max3D Google code!
Miscellaneous Forums/General Discussion/Max3D Google code!
Hi,
Max3D google code is open!
http://bmx3d.googlecode.comPlease visit if you are interested in helping out with development of the open source max3d egine.
Currently Missing:
* Skinned meshes.
* Transparency (just a single additive pass currently).
* Any LOD management (eg: terrains).
* Any occlusion methods (just culls surfaces to frustum/light bounds).
Also, shadows are currently very slow on 'old' hardware (well, by 'old ' I mean an nVidia 6600!) Hopefully, there's something I can do to improve speed here, but there may not be (or it may not be worth it). On newer hardware, shadows are nice and fast.
There's also a google group - please post there (or here) with any Max3D discussion, including how to get bmx modules going etc. Also feel free to fill Wiki page comments at googlecode with any useful hints or tips.
If your bummed out about any of this (as I suspect some will be...), please keep nasty comments to this thread?
first reply
thanks mark
Awesome dude!
Taking BRL 100% independent was one thing, but making max3d a free open-source engine is total boldness.
Hurrah!
Cool, thanks Mark. Happy New Year.
Excellent!
Just built it... up and running...
Tip for everyone - when you have compiled everything copy C:\bmx3d\Release and rename it to C:\bmx3d\Debug so you can use debug mode in BlitzMax!
I can get the dropcubes and cubechain examples to work... but the castle one seems to hang...

(Note the error, if you hold space down)

(I like this one!)
And with shadows on:
Just built it and up and running...
Yay! Not too much of a mission I hope...
but the castle one seems to hang...
Weird - is the CASTLE1.X model there?
Yay! Not too much of a mission I hope...
Nope very easy... just followed your instructions from here:
http://code.google.com/p/bmx3d/wiki/ProjectInstallationBTW I downloaded Slik subversion (Slik SVN 1.5.5):
http://www.sliksvn.com/en/download
Weird - is the CASTLE1.X model there?
Yep... in C:\bmx3d\max3d\samples
[EDIT - Ive put some debuglog statements in the code and its def hanging when it tries to load CASTLE1.X]
[EDIT 2:
if I replace the castle to be just a cube, it works fine:

For superstrict... is everything an int?
]
Sweet Thanks!
(Castle demo works fine here)
Castle demo works fine here
Strange... still cant get it to work...
Thought it might be the model itself, as I cant load it in Blender:
ValueError: invalid literal for int() with base 10: '0.577350'
So I tried another .x model which can be loaded into Blender, still no joy...
BTW the pc specs Im using (if it helps):
E6600, 2GB RAM, GeForce 8800 GTS 512MB, Windows XP SP3
how do I download it... it says i have to be a member or something ???
it says i have to be a member or something
What says?!?!
Nate, just follow the instructions here:
http://code.google.com/p/bmx3d/wiki/ProjectInstallationHave you got SVN installed?
God! I can't believe it' s the moment!!!!
Thanks!
(downloading now...)
Is it possible to get it working with TortoiseSVN?
Edit: It seems to be working now.
I still had to install a commandline SVN.
pretty sure you just use checkout and enter the URL
http://bmx3d.googlecode.com/svn/trunk to download the whole max3d svn to your hd
The samples won't run for me. I followed the instructions, downloaded and installed all the bits I need etc. The samples open a bmax window and closes it straight away...
EDIT: Hmmm I tried again but install.bat doesn't download anything. The window just opens and closes. I'm using tortoiseSVN if that makes any difference.
Cool. Congrats on the release.
Neat. Considering what is and is not yet done, this is probably a good place for others to jump in and work on stuff. I'm still trying to get it to build under Mac OS, mostly because it won't load the dylib even though it's present.
Still fiddling, will have to see what I can do, since I'm still new to OSX's stuff...
What error are you getting Noel?
You may have to put the dylib into the App bundle (Contents->MacOS).
One thing to point out even if it is clearly indicated in the installation guide.
Even if you have already installed MinGW for BlitzMax You need MinGW installed with 'MAKE' (for people coming from BlitzMax this is option was not mandatory if I remember).
And I need to rename my folder in 'Release' for running (in release mode) the example (I think I need to install gdb to resolve this problem...and to compiling in debug mode my projects...)
ooohhh!
FYI.
Installed as per directions (Assuming a MinGW of 5.1.4 is ok instead of 5.1.3
All works A-Ok, including castle demo.
Thanks MAK and congrats on getting the beast out there.
I have noticed there is not a 'proper' command documentation - and this is quite obviuos considering the Max3d.mod is 'built' from C++ source.
But at this point the only solution is to change MakeMax3d.bmx (possible) to point-out to a wiki site where found documentation (just adding some external link to REM..bbdoc..EndREm).
Or to the www.blitzbasic.com/Manuals page if supported.
Even if this is a open-source project I think YOUR (MARK) decision on this aspect is important. (This mean you dont' need to take too much time on this aspect and do what you want really :D)
EDIT: The engine works well on my GeForce 6600gt...
What error are you getting Noel?
Nevermind, seems to just be stupidity on my part. Everything's working quite well now.
Sorry for being stupid but how do i get the whole thing?
http://bmx3d.googlecode.com/svn/trunk/only seems to only allow me to get single files.
Well Noel, at least it was stupidity and not insanity.... there's hope yet :-)
Sorry for being stupid but how do i get the whole thing?
Isn't there a bat file for downloading everything for you? (assuming you've
followed the instructions and have an SVN client).
Otherwise, point your SVN client at that page and "checkout" - but it should all be a bit easier running the batch file.
Refer to the installation instructions:
http://code.google.com/p/bmx3d/wiki/ProjectInstallationI think I'll take any further discussion to the group.
Well Noel, at least it was stupidity and not insanity.... there's hope yet :-)
No, the insanity is different. I'm already long-gone in that regard.
Follow this
http://code.google.com/p/bmx3d/wiki/ProjectInstallationYou need to install SVN to make your life easier in this case!
Once SVN is installed, just create a max3d_install.bat file on your desktop
And double click it.
Once downloaded in c:\your_Destination_path\trunk you will find ANOTHER Install.bat file - double click on it and you get other things (ODE and Assimp)
Edit: too late...
Assuming a MinGW of 5.1.4 is ok
Hmmmmm.... I had 3.something, just installed 5.1.4 and recompiled... the castle demo is now working :-) (Sorry Mark... since it all compiled I thought I was all good to go)
Thanks Roger!

Still get a funny visual error with the drop cubes when holding space... But least the castle model loads.
Also tested a b3d one too ;-) :
Looks better in Blitz3D.
LOL... just added the castle to the drop cubes example, enabled shadows and collisions:
EnableCollisions 1,4,1000,0,0
...
Local castle%=LoadModel( "castle1.x",4,0 )


Look at the shadows falling on the castle... COOL!
Seems cool, b3dish in syntax and works on my old pc.
I am getting unhandled memory exeption errors on any of the samples which load models (or at least the castle model) in release mode, but i guess there is plenty of time to fix this.
Cheers
Charlie
Max3D seems to work really well and fast.
It seems all rotation commands have their pitch(=X) and yaw(=Y) parameters wrong, it should be TurnEntity ent,X,Y,Z, and not TurnEntity ent,Y,X,Z.
jkrankie: Be sure to be using the right version of MinGw. That happened to me before untill I updated my MinGW version to MinGW-5.1.4 instead of 5.1.35 or 3.x That fixed it for me.
I get this error when trying to run Install.bat:

I have updated MinGw and installed CodeLite already. I'm using TortoiseSVN. What am I missing?
the SVN command/exe is not in your path..
you can either uninstall tortoiseSVN and install just the regular SVN (or Slik SVN), or you can add the path of the svn exe in the tortoise installation, to your PATH environment variable..
(rightclick my computer, choose properties, and you'll find your environment variables there somewhere)
im getting:
Building:
"mingw32-make.exe" -j 2 -f "bmx3d_wsp.mk"
Failed to start build process, command: "mingw32-make.exe" -j 2 -f "bmx3d_wsp.mk", process terminated with exit code: 0
when i try and build it on vista.
There's no need to uninstall TortoiseSVN. Just install Slik SVN or add the path to the svn.exe from TortoiseSVN in your path.
Thanks LarsG :)
I did check my path environment variable earlier but tortoisesvn was there as it should be. I just uninstalled it and installed sliksvn instead. Now it works :D Thanks again.
D4NM4N:
looks like you forgot to add the "MinGW Make" option when installing the MinGW application. Open "c:\MinGW" and run the "MinGW-5.1.4" exe, and make sure you've selected the "g++" and "mingw make" packs, in addition to the standard base installation..
Htbaa:
I know there's no need to uninstall TortoiseSVN,
but as I stumbled upon the same thing myself, I felt no need to have two svn applications installed.. I just summarized what I did.. :)
Well if you really don't need TortoiseSVN and only need the command line tools then SlikSVN is fine :).
When I try to run the samples, I get the following:
Executing:castle.exe
ERROR:glCheckFramebufferStatusEXT failed:8cd9 (file:C:/Code/Max3D/max3d/max3d/openglgraphics.cpp, line:496)
Did I do something wrong, or is my graphicscard just too crappy to run Max3D?
( Radeon X1650XT -- I know it's much slower than the recommended 8800 series card, but is it also flat-out incompatible?)
As a side note, those getting a 'get permission to install this (p) permanent (t) temporal (d) deny' Have to update their SVN client. Not sure if the message text is exactly the same in english as this has been translated to Spanish.
@LarsG
I have installed make and set the env path.
(you should add how to do that in the instructions btw as some people wanting to try this wont know what it is)
Edit: NVM, i had "/MinGW/Bin" in the path (linux style, oops.. :O) and the build is on D (i dont like putting things in my system root)
It seems all rotation commands have their pitch(=X) and yaw(=Y) parameters wrong, it should be TurnEntity ent,X,Y,Z, and not TurnEntity ent,Y,X,Z.
That'll be when he's building the rotation matrix, DirectX 9 uses this:-
D3DXMatrixRotationYawPitchRoll( &matRot, currentMesh.yaw, currentMesh.pitch, currentMesh.roll);It seems he's just kept the parameter list in the same order... No biggy!
Dabz
xlsior:
This is a bug related to depthbuffer FBO creation on ATI. Unfortunatly I'm currently at work, else I would try it before posting, but may be you can give it a try:
in line 489 and 490 you find this:
glReadBuffer( GL_NONE );
glDrawBuffers( 4,_glbufs );
could you add this: after the glReadBuffer command, so it look like this:
glReadBuffer( GL_NONE );
glDrawBuffer( GL_NONE );
glDrawBuffers( 4,_glbufs );
if i remember correctly this should fix it.
BTW: Can't wait to get home to give max3d a try :)
thx mark
Wow, grats on the release MArk. Must be a mammoth weight (mostly) off your shoulders!!!
Will be interesting to follow what people do with this in the coming weeks. Fun fun.
Well, while waiting an 'official Max3d thread' on this forum I need to ask you a quite simple thing.
I want to test on another computer the DropCubes example. So I moved
1. Only the .exe --> nothing happened
2. .exe + Max3d.dll --> nothing happened
What files I need to distribuite to run Max3d?
- This is awesome - tested the samples on my system, everything is
working :) - many thanks + congratz mark..
There are many .exes in my TortoiseSVN folder, but no svn.exe ?
THE N00B TUTORIAL HOW TO INSTALL MAX3D, aka this is how I got it work (on first try):
1) Install Slik SVN from:
http://www.sliksvn.com/en/download2) Copy&Paste these lines into a newly opened command prompt window (each line seperately, and press Enter after each line if it doesn't do it automatically):
svn co
http://bmx3d.googlecode.com/svn/trunk c:\bmx3d
cd c:\bmx3d
install
3) Install CodeLite+MinGW from:
http://downloads.sourceforge.net/codelite/codelite-mingw3.4.5-1.0.2527.exe?modtime=1229071723&big_mirror=04) Add c:\mingw\bin (or whereever you installed MinGW) to the System Path (under My Computer/Properties/Advanced/Environment Variables/System Variables/find the "PATH" variable and press the Edit button, and enter c:\mingw\bin to the end of the line, use ; to seperate entries)
5) Start CodeLite, and open c:\bmx3d\bmx3d.workspace via Workspace/Switch to Workspace, then choose Build/Build Project (or press F7), and it will create max3d.dll
6) Compile and run C:\bmx3d\max3d\makemax3d.bmx with BlitzMax 1.30 (BlitzMax 1.3x+ Beta SVN version might work too, haven't tried)
7) Now you can compile and run the bmx examples in C:\bmx3d\max3d\samples, and everything works.
This is Max3D? It's 4 months too early for April fools surely.
This is a bug related to depthbuffer FBO creation on ATI. Unfortunatly I'm currently at work, else I would try it before posting, but may be you can give it a try:
in line 489 and 490 you find this:
Hm... doesn't seem to fix the issue.
I made the change in opengplgraphics.cpp, did a rebuild, then re-ran the makamax3d.bmx from within Blitzmax, and am getting the same error:
Executing:castle.exe
ERROR:glCheckFramebufferStatusEXT failed:8cd9 (file:C:/Code/Max3D/max3d/max3d/openglgraphics.cpp, line:497)
At least, almost the same -- now the linenumber is one higher, so it does appear that it's using the updated file.
@xlsior - try rebuilding in codelite then do makemax3d.bmx
Cheers
Charlie
and everything works.
After doing all that, I'd be a bit pissed if it didnt! :P
Dabz
ok,
Built the DLL, this has been my first exposure to SVN.. can someone explain in lamen terms how this works. Do you redo the process when you want to get the latest source ? How does one contribute to the source without messing up mark or others modifications/additions?
Sorry if this has been asked elsewhere, or is obviously stated in docs that I missed ect. I want to be sure im "in the loop" of development as it progresses
Thanks in advance.
When you want to check for updates, you just run the c:\bmx3d\update script.
I think to publish your own modifications, you need to install your own SVN repository on googlecode.com, or any other server.
I don't think people want to have other people's mods in the original BRL version.
I finally got everything downloaded except svn... well I dowloaded it but I cant run it because there isnt an exe. did I do something wrong? could someone copy/paste a download link directly to svn?
sorry im just slow with this kinda stuff
edit nevermind I fixed it... clicked the wrong link... silly me :p
@Nate: Read my n00b instructions I posted above:
xlsior, sorry but now I'm at home and found the reason why it is not running.
You need to set the Resoltion to something with the power of 2. Unfortunatly Mark doesn't check if the Reselotion is power of 2 or if non rectangular textures are supported.
I will try to fix it.
thanks lumooja but I just clicked the wrong link... I was downloading the mac version or something lol
lumooja... when I type those lines into the command prompt window i get the error command svn not recognized as an internal or external command :(
You need to open the command prompt AFTER you have installed Slik SVN. Else it has the old environment vars. So just close the command prompt window and open a new one.
ok I did that... and it still doesnt work... ??? I bet I missed something... ill start over
maybe I have to restart my computer?
btw running all of this on vista... anyone else tried it on vista?
edit... now it says co is not recognized as a command
It works nicely with my Nvidia GeForce 9800GT.
Still waiting to test it properly with a Ati Radeon 9600 Pro and a Ati Radeon 1950 pro.
Out of curiosity, what shader model does the engine require? is it possible to run the engine with lower versions if you don't use the respective shaders?
Edit: post edited to cut the ATI ones out until I can do a proper test. :)
Does anybody get how this works? I mean, the C++ code generates a dll, well, the max module is built, then I use the max module in my bmx file, in a folder like samples where there's not any dll, and it works!!?? Is max3d embeded into the mod? For the size of it, I don't think so, so if it is dinamically linked, how is this put together? I haven't set any path env variable to the max3d folder and I'm coruis to know how any app should be deployed...
@Nate: I think you're not copying the text correctly into the command prompt window, try typing it by hand.
if you look closer in the generated module, then you will notic that the max3d svn repo path is included. and it loads the dll directly from the SVN source.
So, for every one whose gfx cards don't support non-power of 2 textures here is a small fix how you can at least play with max3d (it is not official and the multiple viewport system may be broken).
Note: this is just a five minute hack to get max3d to work:
First open scene.cpp and add this:
static int maxShadowBufSize;
static CTexture *shadowBuffer;
static CShader *shadowMapShader;
int nextpow2(int in)
{
int t = 1;
while(t<in)
t*=2;
return(t);
}
The nextpow2 function is important.
next you have to change the scene_init()
void scene_init(){
int w=App.Graphics()->WindowWidth();
int h=App.Graphics()->WindowHeight();
int tw = nextpow2(w);
int th = nextpow2(h);
App.Graphics()->SetVec2Param( "bb_WindowSize",CVec2( w,h ) );
App.Graphics()->SetVec2Param( "bb_WindowScale",CVec2( 1.0f/w,1.0f/h ) );
float vbdata[]={ 0,0,1,0,1,1,0,1 };
int ibdata[]={0,1,2,0,2,3 };
quadVB=App.Graphics()->CreateVertexBuffer( 4,"2f" );
quadVB->SetData( vbdata );
quadIB=App.Graphics()->CreateIndexBuffer( 6,"1i" );
quadIB->SetData( ibdata );
quadShader=(CShader*)App.ImportObject( "CShader","quad.glsl" );
boxVB=App.Graphics()->CreateVertexBuffer( 8,"3f" );
int ip[]={
2,3,1,2,1,0,
3,7,5,3,5,1,
7,6,4,7,4,5,
6,2,0,6,0,4,
0,1,5,0,5,4,
6,7,3,6,3,2 };
boxIB=App.Graphics()->CreateIndexBuffer( 36,"1i" );
boxIB->SetData( ip );
//accumBuffer=App.Graphics()->CreateTexture( w,h,FORMAT_RGBA16F,TEXTURE_CLAMPST|TEXTURE_RENDER );
accumBuffer=App.Graphics()->CreateTexture( tw,th,FORMAT_RGBA8,TEXTURE_CLAMPST|TEXTURE_RENDER );
materialBuffer=App.Graphics()->CreateTexture( tw,th,FORMAT_RGBA8,TEXTURE_CLAMPST|TEXTURE_RENDER );
normalBuffer=App.Graphics()->CreateTexture( tw,th,FORMAT_RGBA8,TEXTURE_CLAMPST|TEXTURE_RENDER );
depthBuffer=App.Graphics()->CreateTexture( tw,th,FORMAT_DEPTH,TEXTURE_RENDER );
App.Graphics()->SetTextureParam( "bb_AccumBuffer",accumBuffer );
App.Graphics()->SetTextureParam( "bb_MaterialBuffer",materialBuffer );
App.Graphics()->SetTextureParam( "bb_NormalBuffer",normalBuffer );
App.Graphics()->SetTextureParam( "bb_DepthBuffer",depthBuffer );
clearShader=(CShader*)App.ImportObject( "CShader", "clear.glsl" );
shadowMapShader=(CShader*)App.ImportObject( "CShader", "shadowmap.glsl" );
}
now you have to replace CScene::SetShaderMode with this
void CScene::SetShaderMode( string mode ){
int shaderMode=CShader::ModeForName( mode );
App.Graphics()->SetShaderMode( shaderMode );
_modeMask=1<<shaderMode;
if( mode=="ambient" ){
App.Graphics()->SetColorBuffer( 0,accumBuffer );
App.Graphics()->SetDepthBuffer( depthBuffer );
App.Graphics()->SetViewport( _viewport.x,_viewport.y,accumBuffer->Width(),accumBuffer->Height() );
App.Graphics()->SetWriteMask( WRITEMASK_RED|WRITEMASK_GREEN|WRITEMASK_BLUE|WRITEMASK_ALPHA|WRITEMASK_DEPTH );
App.Graphics()->SetBlendFunc( BLENDFUNC_ONE,BLENDFUNC_ZERO );
App.Graphics()->SetDepthFunc( DEPTHFUNC_LE );
App.Graphics()->SetCullMode( CULLMODE_BACK );
}else if( mode=="clear" ){
App.Graphics()->SetColorBuffer( 0,accumBuffer );
App.Graphics()->SetDepthBuffer( depthBuffer );
App.Graphics()->SetViewport( _viewport.x,_viewport.y,accumBuffer->Width(),accumBuffer->Height() );
App.Graphics()->SetWriteMask( WRITEMASK_RED|WRITEMASK_GREEN|WRITEMASK_BLUE|WRITEMASK_ALPHA|WRITEMASK_DEPTH );
App.Graphics()->SetBlendFunc( BLENDFUNC_ONE,BLENDFUNC_ZERO );
App.Graphics()->SetDepthFunc( DEPTHFUNC_LE );
App.Graphics()->SetCullMode( CULLMODE_FRONT );
}else if( mode=="shadow" ){
App.Graphics()->SetColorBuffer( 0,0 );
App.Graphics()->SetDepthBuffer( shadowBuffer );
App.Graphics()->SetViewport( maxShadowBufSize/2-_shadowBufSize/2,maxShadowBufSize/2-_shadowBufSize/2,_shadowBufSize,_shadowBufSize );
App.Graphics()->SetWriteMask( WRITEMASK_DEPTH );
App.Graphics()->SetBlendFunc( BLENDFUNC_ONE,BLENDFUNC_ZERO );
App.Graphics()->SetDepthFunc( DEPTHFUNC_LE );
App.Graphics()->SetCullMode( CULLMODE_BACK );
}else if( mode=="shadowmap" ){
App.Graphics()->SetColorBuffer( 0,accumBuffer );
App.Graphics()->SetDepthBuffer( 0 );
App.Graphics()->SetViewport( _viewport.x,_viewport.y,accumBuffer->Width(),accumBuffer->Height() );
App.Graphics()->SetWriteMask( WRITEMASK_ALPHA );
App.Graphics()->SetBlendFunc( BLENDFUNC_ONE,BLENDFUNC_ZERO );
App.Graphics()->SetDepthFunc( DEPTHFUNC_T );
App.Graphics()->SetCullMode( CULLMODE_FRONT );
}else if( mode=="spotlight" || mode=="pointlight" || mode=="distantlight" ){
App.Graphics()->SetColorBuffer( 0,accumBuffer );
App.Graphics()->SetDepthBuffer( 0 );
App.Graphics()->SetViewport( _viewport.x,_viewport.y,accumBuffer->Width(),accumBuffer->Height() );
App.Graphics()->SetWriteMask( WRITEMASK_RED|WRITEMASK_GREEN|WRITEMASK_BLUE );
App.Graphics()->SetBlendFunc( _shadowBufSize ? BLENDFUNC_DSTALPHA : BLENDFUNC_ONE,BLENDFUNC_ONE );
App.Graphics()->SetDepthFunc( DEPTHFUNC_T );
App.Graphics()->SetCullMode( CULLMODE_FRONT );
}else if( mode=="additive" ){
App.Graphics()->SetColorBuffer( 0,accumBuffer );
App.Graphics()->SetDepthBuffer( depthBuffer );
App.Graphics()->SetViewport( _viewport.x,_viewport.y,accumBuffer->Width(),accumBuffer->Height() );
App.Graphics()->SetWriteMask( WRITEMASK_RED|WRITEMASK_GREEN|WRITEMASK_BLUE );
App.Graphics()->SetBlendFunc( BLENDFUNC_ONE,BLENDFUNC_ONE );
App.Graphics()->SetDepthFunc( DEPTHFUNC_LE );
App.Graphics()->SetCullMode( CULLMODE_BACK );
}else if( mode=="postprocess" ){
App.Graphics()->SetColorBuffer( 0,accumBuffer );
App.Graphics()->SetDepthBuffer( 0 );
App.Graphics()->SetViewport( _viewport.x,_viewport.y,accumBuffer->Width(),accumBuffer->Height() );
App.Graphics()->SetWriteMask( WRITEMASK_RED|WRITEMASK_GREEN|WRITEMASK_BLUE );
App.Graphics()->SetBlendFunc( BLENDFUNC_ONE,BLENDFUNC_ZERO );
App.Graphics()->SetDepthFunc( DEPTHFUNC_T );
App.Graphics()->SetCullMode( CULLMODE_NONE );
}
}
At least rebuild the release and debug dll.
As said, this is just a quick fix for playing around with max3d and not intended to be a fully fix.
@lumooja
I just had to restart my computer... not really sure why but it worked
I have a question, probably a silly one.
Max3d.dll is accessed through an absolute path.
How can I make the app access the library within a relative path? (i.e. the current dir)
Try to change this in the max3d module:
Function OpenMax3d()
If m3dLib Return
Local lib$="D:/bmx3d/"
?Debug
lib:+"Debug/"
?Not Debug
lib:+"Release/"
?Win32
lib:+"max3d.dll"
?Macos
lib:+"max3d.dylib"
?Linux
lib:+"max3d.so"
?Win32
m3dLib=LoadLibraryA( lib )
?Not Win32
m3dLib=dlopen( lib,1 )
?
If Not m3dLib
lib = ""
?Win32
lib:+"max3d.dll"
?Macos
lib:+"max3d.dylib"
?Linux
lib:+"max3d.so"
?Win32
m3dLib=LoadLibraryA( lib )
?Not Win32
m3dLib=dlopen( lib,1 )
?
If Not m3dLib Then
Print "Max3d Error: Can't open Max3d lib:"+lib
End
End if
EndIf
And rebuild the module. Now it first searches in the absolute path, if the lib is not found there, it searches in the app directory.
Hi
After installing Max3D I just tried to test the samples but I got this message:
ERROR:Max3d requires OpenGL 2.0 support (file:C:/max3d/max3d/max3d/openglgraphics.cpp, line:782)
Thought OpenGL 2.0 was installed with the newest driver !?
My graphics card is a Radeon 9250 Sapphire.
Mfg Suco
I realise that this isn't really very important this early in the development of Max3D, but is it possible to have the library (dll, etc) built into the final executable? It would be nice to be able to do this with the Blitz3D SDK as well.
I have a GeForce 7100, which I'm guessing isn't that great since the samples run pretty slowly. However, a spinning cube with shadows turned off runs pretty fast (at 640, 480, that is!). I hope that eventually, older cards will be able to get respectable results from Max3D.
Is a Direct3D version still planned?
I get this error when building the max3d.dll
failed to start build process, command: "mingw32-make.exe" -j 2 -f "bmx3d_wsp.mk", process terminated with exit code: 0
Suco-X, Even the newest drivers can't make it run on so low end gfx cards.
OpenGL 2.0 maybe, but you need at least SM2.0 cards.
Oh, so it's referenced in the template. Thanks Klepto2!
@Nate: When you open a command prompt window and type: g++, does it recognize it as a command? If not, then you forgot to add the c:\mingw\bin directory to your system path, or you installed mingw under another directory. It could be also a Vista issue, like someone else reported earlier.
oh yes it probably is a vista issue... there is no folder called properties and if I right click and hit properties there is no tab called advanced...???
oh yes it probably is a vista issue... there is no folder called properties and if I right click and hit properties there is no tab called advanced...???
There is a button called "advanced system settings" on the left panel. On the new window then click on "environment variables".
IT WORKS! FINALLY!!!
now I just have to see if max3d even works on my graphics card :p
thank you doiron and lumooja
I tried the demos with a Radeon 9600 Pro and a Radeon X1950 pro, and it returns to desktop with the previously reported "glCheckFramebufferStatusEXT failed:8cd9" error.
I guess that if you have an Ati, without the patch provided by Klepto2 at the moment it won't work. Otherwise have fun. :)
if you dont want to apply the patch, then simply change the window resolution to something like 512,512 or 1024,512 etc.
eg Max3dGraphics 512,512 instead of Max3dGraphics 1024,768
Anyone having hangs on loading models, it's most likely due to not having the correct MinGW version -- this happened to me during testing. (I had to do a full MinGW reinstall.)
Type gcc --version into your command line, and if it's not 3.4.5 then you need to update.
@Suco: This also happened to me on an earlier release -- it's probably because the full OpenGL feature set isn't supported by your hardware, ie. some OpenGL features are emulated in software within your drivers. Max3D requires full hardware support for OpenGL 2.0-level features.
so I spoke too soon when I said it works... I dont currently have bmax but I will soon... I figured I would try it out with b3d for now so how would I finish compiling it without bmax considering you have to run some bmx file just to use max3d
Building:
"mingw32-make.exe" -j 2 -f "bmx3d_wsp.mk"
Failed to start build process, command: "mingw32-make.exe" -j 2 -f "bmx3d_wsp.mk", process terminated with exit code: 0
Help???
edit : my fault forgot to install Slik lol
That error has already been mentioned and resolved in this thread (about half a dozen posts up).
hmmm someone should make a how to do this step by step detailed instructions thread :)
@Nate: I already did and told you:
http://www.blitzmax.com/Community/posts.php?topic=82426#929585Someone can write it to the Wiki, or I could.
I followed the Wiki instructions, and they work for advanced users, but n00bs need a hand in hand tutorial :)
oh yes I meant a trial and error thread that had all the errors and dead ends you could run into that people keep asking about myself included
I do have one more problem tho... I dont have bmax... maybe getting it for birthday? :D and I figured it would make a dll so I could try it out with b3d until then but I cant seem to find the dll it was supposed to make
It's c:\bmx3d\release\max3d.dll. But it needs some additional code to create the graphics window. It might be possible to use FreeGLUT for that.
oh ok... has anyone else gotten it to work with b3d?
and is there a decls file?
Builds went ok, but my Macbook (running XP) only does OpenGL 1.5, so I only get as far as ERROR:Max3d requires OpenGL 2.0 support (file:C:/bmx3d/max3d/max3d/openglgraphics.cpp, line:782) too.
Too bad, I was looking forward to trying this, but I guess I'll have to update to get on board.
Looking at the source made me wonder if the assimp module can be used for minib3d... It's really neat that there is obj, collada and ase out of the box(if that is the case for max3d).
Cant run it under Ubuntu, under Vista it says "no openGL 2.0" or some such thing. I tried downloading the latest driver from intel and it says current driver is a corporate modified version and i should get the latest from the manufacturer (I have, but it seem it is out of date doesnt it!) bummer. (its an intel GMA 9x series)
Ill try it on my own lappy later (with a proper gpu) this piece of sh-intel is my works laptop.
Does all of it need ogl2 or is it just the shader/shadows stuff? what would happen if i forced it?
[quote]I am getting unhandled memory exeption errors on any of the samples which load models (or at least the castle model) in release mode, but i guess there is plenty of time to fix this.[/ quote] Have a look in the mesh, -if- its a text file and see of there are any string replacements for floating point errors (eg B3D's "NaN") and change them to "0.0" This may (or not) be causing the odd crashes.
This is all very exciting! I'll surely follow this closely. I'm busy doing 2d stuff atm though!
Thanks Klepto2 - that fix actually made Max3D work on my laptop as well (got an ATI Mobility Radeon x1600 graphics card in it) - before the fix, it would start, but I got like 0.1 fps - and after the fix it works fairly well. :)
Enabling shadows grinds it down to perhaps 5 fps though.. :p
The googlecode forum is really horrible, it's missing the most used function: EDIT. So you have to remove each post and repost it to simulate an edit button. This forum is so much better, except that it should have an lines-per-page option, since it takes ages to read a long thread on a mobile phone.
Got it to work thanks to kleptos dll path fix.
Max3D at this stage, revision 42, has some bugs:
1) When you create many cubes, some cube gets crazy vertices and it looks like a big triangle or square
2) You can't make more than 2081 cubes. It crashes at 2082.
3) The shadows get cut off at near viewing distances. This might be also a camerarange setting, which is by default set too high for near distances.
Building:
"mingw32-make.exe" -j 2 -f "bmx3d_wsp.mk"
Failed to start build process, command: "mingw32-make.exe" -j 2 -f "bmx3d_wsp.mk", process terminated with exit code: 0
When trying to compile max3d.workspace... I have mingw installed, as I've compiled other bmax modules.
@Yahfree: That error is well known already, you didn't add c:\mingw\bin to your System Path. See my n00b tutorial:
http://www.blitzmax.com/Community/posts.php?topic=82426#929585
Thanx Mark, great release!
Downloading, compiling and building went all just fine. But when I try to run any of the examples I get an
'Unhandled Exception: Unhandled Memory Exception Error'
I assume that if the problem is the crappy 3d card in this laptop I would get a more detailed error message?
Debugger stops on line: Max3dGraphics 512,512. (I changed res to Brucey's recommendation, but still get the error..)
@nadia: Updating your graphics card drivers fixes usually a lot of things with OpenGL. That is because OpenGL drivers support hardware features immediately when the hardware supports it, while DirectX supports the features only when DirectX supports it.
Building:
"mingw32-make.exe" -j 2 -f "bmx3d_wsp.mk"
----------Building project:[ assimp - Release ]----------
mingw32-make.exe[1]: *** No rule to make target `assimp/code/irrXML/irrXML.cpp', needed by `Release/irrXML.o'. Stop.
mingw32-make.exe: *** [All] Error 2
0 errors, 0 warnings, total time: 00:00:00 seconds
----------Build Ended----------
I:
1. Installed the lastest version of minGW and set the path variables/got rid of the old ones
2. I compiled the .workspace file with the output above...
All downloaded, installed and ran the examples fine over here. The only thing I missed was to tick the g++ compiler on the MinGW installer first time around, D'OH!
You don't need to install MinGW, since it comes with CodeLite. If you install MinGW manually, a lot more tutorial steps would be needed.
....
so does anyone know where the decl files are? I cant find any but I am trying to use it with b3d
@Yahfree: Same here ... i've no idea ... svn sucks
@D4NM4N
What version of Ubuntu are you using and what gcc/g++?
And thanks mark
so does anyone know where the decl files are?
There aren't any. It quite clearly states that it's only for BlitzMax at the moment. Skidracer told you in a previous thread (or possibly earlier in this one, I can't remember) that it would be probably be possible to use it with Blitz3D right now, if you created a DECLS. Not that there would be one provided.
@Nate: I very much doubt it will ever work with Blitz3D (not sure why you would want it too either). It's a BlitzMax module.
People still struggling with Subversion, there's a complete and totally free manual for Subversion available here:
http://svnbook.red-bean.com/
It's a BlitzMax module.
It's not... really... One has been provided... but it's a C++ library... so in theory you can use it with *any* language... like Python, Ruby, etc... :-)
@bruZard: A bad workman...
Subversion is extremely good and extremely useful tool. In fact I'd be totally lost without it (or at least would have to resort to something like CVS *shudder*)
Read the manual:
http://svnbook.red-bean.com/
But Blitz is DX so you'd need to include functions in that C++ library to set up a window/glCanvas for bmx3d to draw on.
@Brucey: Yeah, but if people are struggling with something as easy to use as Subversion, that's probably a can of worms best left closed. ;)
yay will have to roadtest it :)
@Brucey: Yeah, but if people are struggling with something as easy to use as Subversion, that's probably a can of worms best left closed. ;)
Make them use git.
Haha. Last time I tried GIT it really didn't play nicely on Windows. Shame really, as I like the look of it.
Has that changed?
Nope, it's still difficult as heck to use under Windows. I managed it, but it was a pain. I switched to Mac OS, so at least I can use it easily now. It's a really fantastic tool, especially with git-svn letting me use it for pretty much every other project out there. Plus I like to commit every time I make a change I like, so it's good for that too.
i've wasted 8 hours and cant build this fuc*i... nice DLL ... its all for trash. i stay with miniB3D.
Max3D was a good idea ... now it is a library for nerds.
excuse my bad english.
Subversion is only easy if youve used it before.
Removed.
Subversion is only easy if youve used it before.
You can say that about most things.
Larn.
I never even tried to use svn without an easy client, anything that requires installing any kind of servers or using the command prompt is evil. Especially if it comes with a huge manual that makes almost no sense.
Glad there are simple windows apps for interacting with repositories out there. SVN definitely isn't easy undressed in it's natural state.
1. Installed the lastest version of minGW and set the path variables/got rid of the old ones
Did you also add the mingw-make component in the mingw setup? Plain blitzmax didn't require that to recompile modules, but Max3d does need it to be installed.
SVN isn't the problem, i'm just having trouble compiling the DLL.
@AdrianT: After you understand how subversion works and more importantly, how to work with it, it's really very easy.
"I hope that eventually, older cards will be able to get respectable results from Max3D."
Agreed. Otherwise...not sure if I should dig into this or not?
ERROR:Max3d requires OpenGL 2.0 support
Bah! Looks like I'll be sticking with MiniB3D for the meantime.
I never even tried to use svn without an easy client, anything that requires installing any kind of servers or using the command prompt is evil.
I used tortoise without issue...
-do a tortoise checkout like normal from the bmx3d link
-checkout the 3 required libs listed in install.bat
-move the 3 libs to the bmx3d folder
-copy the file list in install.bat
take notice that boost should be another folder deep.
I haven't compiled yet because I'm in the middle of a project and I can't just yet update mingw
@MGE lol you could say that by the time anyone has analyzed, learned and mastered and refined it enough to release an actual polished product the "old" hardware will be the stuff of garage sales :>
This works with the BlitzMax Demo as well ! No problems installing and compiling - all samples work.
@dawlane, that should have been "cant" (have edited), i get a stackdump in bmax. For the record its hardy 32 8.04 gcc3.3 and 4.x
(edit: invalid pointer error free()) this is on the max3dgrapghics statement.
Everything compiles ok though. I may try and see if i can get it to work directly in c++ when i get some time.
Is there a way of getting the compiled DLL without going through all this SVN and compilation. I don't really want to use bmax3d with BlitzMAX. I am more interested in using it with other languages and would only like to see how it behaves i.e. is it worth investing time into it or not.
Perhaps someone can put a link to a compiled DLL... or perhaps a copy of the latest DLL could be put on sourceforge.
Barney
Is there a way of getting the compiled DLL without going through all this SVN and compilation
Sure, here's a link to the compiled mod and dll (with license, natch). Note that, as I can't use Max3d with my gfx card, I won't be updating this.
Max3d_ModAndDll.zip (1.5 MB)
Maxers, remember that the module looks for the dll in C:\bmx3d\Release\ -- no idea if it expects to find any of the other guff in there... you may have to face up to building it yourself.
Thank you guys. Will try it first thing tomorrow when I wake up.
Barney
This is all fantastic and whatnot, and I'm compiling stuff atm, but it would be REALLLLLLLLYYY nice if you, Mark, would move on from Strict, and start using SuperStrict.
Just my opinion..
EDIT: Why is the perspective wrong?
EDIT2: In the cube demo, the cube variable (in the loop) is local, the entity should be destroyed when the variable is changed or if it leaves the scope.. but it isn't..
EDIT3: Hold down the space bar in the cube demo and watch the top of the screen.. What the ..?
I'm very excited about this Mark! Great idea!
The support you see here is a great example of whats to come.
Hmm.. Why ODE and not Newton?
EDIT: Castle demo, more oddities..
EDIT: Why is the perspective wrong?
I think it's just a very high FOV.
EDIT2: In the cube demo, the cube variable (in the loop) is local, the entity should be destroyed when the variable is changed or if it leaves the scope.. but it isn't..
It appears to be written in unmanaged C++, and it's certainly exported as a plain C API so there couldn't be any Garbage Collection. Besides, the local variable in question is an integer, not an object, so it could not be handled by the GC anyway. It would appear that this is a purely procedural engine, and you'll need to do anything else yourself.
Hmm.. Why ODE and not Newton?
We're going back a long time, but I think I recall reading in the worklog that he wanted a physics engine which was open source. He does seem to prefer ODE though in any case. I can't really agree because I prefer something like Newton where you can choose your own balance between speed and accuracy.
It would appear that this is a purely procedural engine, and you'll need to do anything else yourself.
Rubbish.
EDIT:
Besides, the local variable in question is an integer, not an object, so it could not be handled by the GC anyway.
No it isn't, look at the return type for CopyEntity(); I still blame it being Strict instead of SuperStrict though
EDIT2: Nevermind.. it is an integer.. my docs were from MiniB3D and not Max3D, this engine is a disappointment.
So much for a modern engine..
I still blame it being Strict instead of SuperStrict though
SuperStrict and Strict both create the same code, the difference is only cosmetic. So that would never have been a possibility.
So that would never have been a possibility.
But if it were SuperStrict I would've noticed immediately that something was silly right as I saw the copy variable definition (I don't know the EXACTS of Strict, but in non-Strict Max assumes the variable definition). I would not have had to peek at the source to make sure what it was doing (docs were from MiniB3D instead of Max3D).
Everything works great after downloading that precompiled DLL.
Gabriel
He does seem to prefer ODE though in any case. I can't really agree because I prefer something like Newton where you can choose your own balance between speed and accuracy.
FYI, you can balance speed vs accuracy in ODE.
@ Mark:
I think you should mention a direct link to the
INSTALLATION (now with Q&A section) in your initial post - so everyone has an hint without posting the same thing.
Second:
What is the current Mingw version for BLITZMAX and MAX3d ? You mention (for Max3d) MinGW-5.1.4.exe
while
here you refer to Mingw v5-1-3 (of course you was speaking of Bmax v1.26 - more than one year ago..)
Just to know if we can switch to the latest MinGW release (using Max3d or not) without problem.
Third:
I think a proper section in the forum for Max3d is required...(installation, errors, updates and so on)
Max3D rev 51 is out! (previous rev was 42).
Mirrors were fixed, and the castle demo shows now one:


Still some problems with the shadows in the mirror.
To update max3d, just run the update script, and then use codelite to rebuild the changes.
Just to know if we can switch to the latest MinGW release (using Max3d or not) without problem.
I did a fresh install of XP recently -- Max 1.30 seems to work fine with MinGW 5.1.4.
However I couldn't get Max3d to build from CodeLite without the CodeLite+MinGW package (which made a new "MinGW-3.4.5" folder next to my old "MinGW" one) so keep that in mind.
Mirrors were fixed, and the castle demo shows now one:
I'm still seeing something odd: the floor in the mirror shows completely black, unless I'm right up against the mirror itself, then all of a sudden it pops the floor into view.

(Plus I have to run it in 1024x1024, if I attempt to use the standard 1024,768 it blows up with an error message on my ATI card)
I did a fresh install of XP recently -- Max 1.30 seems to work fine with MinGW 5.1.4. However I couldn't get Max3d to build from CodeLite without the CodeLite+MinGW package (which made a new "MinGW-3.4.5" folder next to my old "MinGW" one) so keep that in mind.
It worked OK for me without installing the codelite+minGW stuff in a seperate folder, the one catch was the prior Blitzmax itself didn't need the mingw-make sub-component installed.
Just to know: how fast is the Castle example with Shadows ON?
On my GeForce6600gt is quite slow...(I know is old hardware, I would know the results by others compared with their gfx).
So I need to install MinGW-5.1.4? Will that break my BlitzMax+MinGW-3.4.5 combo?
I'm using Blitzmax (not max3d) with MinGW 5.1.4 and it works fine.
Ok, thanks!
I'm getting this error on a intel macbook with osx 10.5.5:
g++ -shared -fPIC -o ./Release/max3d.dylib ./Release/animator.o ./Release/api.o ./Release/app.o ./Release/camera.o ./Release/entity.o ./Release/GLee.o ./Release/graphics.o ./Release/light.o ./Release/material.o ./Release/math3d.o ./Release/model.o ./Release/object.o ./Release/openglgraphics.o ./Release/physics.o ./Release/shaderutil.o ./Release/std.o ./Release/stdparams.o ./Release/surface.o ./Release/textureutil.o ./Release/world.o ./Release/modelutil.o ./Release/odephysics.o ./Release/sprite.o ./Release/resource.o ./Release/pivot.o ./Release/terrain.o ./Release/mirror.o ./Release/scene.o "-L./Release" -lassimp -lode -O2 -framework Carbon -framework OpenGL
Undefined symbols:
"_main", referenced from:
start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [Release/max3d.dylib] Error 1
What might be wrong?
Managed to get everything running. The instructions sound a lot more complicated than they actually are.
Less than spectacular results performance-wise though... After enabling shadows the "dropcubes" sample runs at 21 fps before creating any cubes. That's just my HD 3450, though, which is about equal to a 6600.
Also, there are some glitches - sometimes one or more vertices of a box appear momentarily in the upper-right corner of the screen.
@deps
You might need to specify target platform/architecure...
-arch i386
or
-arch ppc
or, try using -dynamiclib instead of -shared.
:-)
In file included from C:/bmx3d/max3d/max3d/GLee.c:43:
C:/bmx3d/max3d/max3d/GLee.h:903: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:903: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:904: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:904: error: ISO C++ forbids declaration of `GLvoid' with no type
....
etc.
who can explain this issue?
Thanks Brucey, I got it to compile by right clicking the "max3d" project and changing "Project Type" to "Static Library".
But now it can't find the max3d.dylib file, but I can see it where it says it wasn't found. Looks like I have the same problem Noel Cower had earlier...
I compiled max3d as release and I also compiled the castle demo as release, how come it can't find the dylib file?
@deps
the dylib needs to be in yourApp/contents/Macos alongside the binary. right click on your app and click show package contents in the finder.
Cheers
Charlie
thanks for the help but it didn't work. When I double click it dissapears again. I tried to run it from a console and was told that it still couldn't find the dylib file:
$ castle.app/Contents/MacOS/castle
Max3d Error: Can't open Max3d lib:/Users/deps/bmx3d/Release/max3d.dylib
It's in that folder, but somehow it can't be found. Might it be because I had to change the library to static when I compiled max3d in CodeLite?
how come it can't find the dylib file?
Note, that if you build it as a Static library, you will end up with a .a , not a .dylib.
:-)
I am? Odd. CodeLite prints this line at the end of the compiler messages:
ar rcus ./Release/max3d.dylib ./Release/animator.o ./Release/api.o ./Release/app.o ./Release/camera.o ./Release/entity.o ./Release/GLee.o ./Release/graphics.o ./Release/light.o ./Release/material.o ./Release/math3d.o ./Release/model.o ./Release/object.o ./Release/openglgraphics.o ./Release/physics.o ./Release/shaderutil.o ./Release/std.o ./Release/stdparams.o ./Release/surface.o ./Release/textureutil.o ./Release/world.o ./Release/modelutil.o ./Release/odephysics.o ./Release/sprite.o ./Release/resource.o ./Release/pivot.o ./Release/terrain.o ./Release/mirror.o ./Release/scene.o
Edit: Cannot find a .a file in the Release folder...
Have anyone successfully built max3d on osx? I followed the instructions to the letter, but something must have gone wrong somewhere, or the instructions didn't mention something.
Or it might be a problem between my ears. :)
Cool, got it all to work after installing the newest Omega drivers! The demos are very slow with shadows enabled. But I'm surprised it runs at all on this laptop with a Radeon X M200 ATI card ;-)
FYI, you can balance speed vs accuracy in ODE.
Well you can and you can't. With ODE, it's nowhere near as accurate as Newton's most accurate solver to begin with. You can sacrifice yet more accuracy for extra speed - which I guess is what you're referring to - but what I'm referring to is that on it's most accurate settings Newton is not only more accurate than ODE, it's "perfect". That's to say, results are 100% reproduceable. ODE is "good enough" for most games, but it's useless for true simulation ( nb: not the same thing as a simulation game! ) At the same time, if you drop Newton to less accurate settings it's still just as accurate as ODE but faster with it. I'm not sure what the appeal of ODE is, given that it lacks in speed and accuracy, but I assume it has functionality which Newton doesn't.
I think the only reason why Mark chose ODE for the first Max3D release, was that it is OpenSource, while Newton isn't. However, Newton is still free to use for commercial applications. I think later on Max3D will also use Newton, or even have multiple physics engines to choose from. At least it should support Newton and PhysX.
Yes, I think you're right. Open Source is the one thing ODE has over Newton, and it must be nice for Mark to know he can change anything he needs to if it comes to that. Particularly for an initial release. As you say, if he keeps the physics layer abstracted, it won't be hard to plug other physics engines in later.
I'm gonna stay away from this until there's proper documentation and it's stable...
I'm gonna stay away from this until there's proper documentation and it's stable...
Likewise... although also because I don't want to get sidetracked away from my current Blitzmax game (which is 2D), and that'd almost definitely happen if I started mucking about with 3D again.
I'm still keeping an eye on Max3D proceedings, though. I'm sure it'll improve a lot in the next few months.
Is it possible to change the FOV ? My imported level looks really bad.
Can`t find a command for this.
Looks interesting so far, gonna wait a while before giving it a bash :)
I find it hard to understand how people are having issues with SVN clients. I guess someone needs to make a picture tutorial. Not everyone works well reading instructions from a large body of text! (you would think that as we are all programmers here, that would not be the case!)
i get it !
works ok on xp here with an 6600 gt
Is it possible to change the FOV ? My imported level looks really bad.
Setting up the FOV revolves around the camera, so look for that section in the source... Usually in DirectX, I use
PI/4, which is common apparently, and its never failed me yet at different resolutions.
Dabz
Got it to work in osx.
I clicked on "Settings"->"Build settings" then on the button "Tools"
There i removed -shared -fPIC and replaced them with -dynamiclib
My problem now is that my macbook apparently doesn't support OpenGL 2.0. It got an integrated Intel graphics card so I don't doubt that for a second. :P
My problem now is that my macbook apparently doesn't support OpenGL 2.0. It got an integrated Intel graphics card so I don't doubt that for a second. :P
My laptop has an intel so I've never bothered having a go compiling the examples.
Though, I did have a scan through the source, and that to me is better than running sample applications.
So I'll leave it at that for now! :P
Dabz
Building:
"mingw32-make.exe" -j 1 -f "bmx3d_wsp.mk"
----------Building project:[ assimp - Release ]----------
mingw32-make.exe[1]: *** No rule to make target `assimp/code/irrXML/irrXML.cpp', needed by `Release/irrXML.o'. Stop.
mingw32-make.exe: *** [All] Error 2
0 errors, 0 warnings, total time: 00:00:00 seconds
----------Build Ended----------
(Yes, Yahfree, I know you had this problem.)
Does anyone have any help for this? I'd rather compile everything myself instead of downloading the compiled lib.
Just install CodeLite which has MinGW 3.4.5 included, then it compiles fine.
I did.
@ked
I got this when I renamed the folders so maybe u are missin some folders?
@ked
I had this issue after trying to compile after I ran install.bat the first time. somehow the svn client didn't download everything. A second run of install.bat solves the problem.
@Ked: I also think something's missing, possibly a makefile from what little I've gathered from Google regarding this error. (I'm not very handy with C stuff.)
Do you have this file in your setup?
"... \dev\bmx3d\assimp\code\makefile.mingw"
(Also check for makefile without .mingw in the same folder.)
If it's missing, I think you ought to try and update, and failing that, delete the lot and check it out again.
Nobody knows why this happens?
In file included from C:/bmx3d/max3d/max3d/GLee.c:43:
g++ -c "C:/bmx3d/max3d/max3d/graphics.cpp" -O2 -fno-strict-aliasing -o ./Release/graphics.o "-I." "-I./opende/include" "-I./assimp/include"
C:/bmx3d/max3d/max3d/GLee.h:903: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:903: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:904: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:904: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:908: error: `GLvoid' has not been declared
C:/bmx3d/max3d/max3d/GLee.h:908: error: ISO C++ forbids declaration of `table' with no type
C:/bmx3d/max3d/max3d/GLee.h:911: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:911: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:913: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:913: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:914: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:914: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:921: error: `GLvoid' has not been declared
C:/bmx3d/max3d/max3d/GLee.h:921: error: ISO C++ forbids declaration of `image' with no type
C:/bmx3d/max3d/max3d/GLee.h:924: error: `GLvoid' has not been declared
C:/bmx3d/max3d/max3d/GLee.h:924: error: `GLvoid' has not been declared
C:/bmx3d/max3d/max3d/GLee.h:924: error: `GLvoid' has not been declared
...
...
...
You guys are correct: I am missing something. The install.bat and update.bat files do not work because it cannot recognize "svn" as a command. I think it's because I am using TortoiseSVN? This SVN stuff is tough work! Anyway, I'm downloading the compiled files now. :)
EDIT:
Yay! All that work for nothing! Graphics card doesn't support it. Oh well, back to MiniB3D. :P
@iroker: what version of MinGW/gcc do you have? (Type gcc --version into a command line for the latter -- you want it to say 3.4.5.)
For some reason IRRLoader.cpp isn't checking out.
Is this happening to anyone else?
I've deleted the folder and tried again, rebooted my PC and router but the install script still stops in this same place every time.
For 3rd party repositories (assimp etc.) you may need to make sure you have latest svn commandline, that means uninstalling all previous versions of subversion command line tools (ignore tortoise it does not interfere) and install latest sliksvn which is the new official subversion command line tools for windows users.
It is a pity tortoise does not provide command line tool with their install as this would simplify things for windows users.
For some reason IRRLoader.cpp isn't checking out.
Is this happening to anyone else?
I downloaded it last night pretty much immediately it went up, and I didn't get that file, but then I haven't bothered compiling it. Browse the repository on GoogleCode and get it in your browser. It'll be quicker than trying to figure out why it won't come since you only need that one file.
@ Blitzsupport
gcc (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 Free Software Foundation, Inc.
is that OK?
For those who don't have command-line SVN, and because the official svn download page is so confusing about windows packages, what you need is
SlikSVN. That'll get you the command-line version.
It's a start I guess. It's looking (and feeling, by the sad physics) like a 10 year old engine, but I have no doubts things are going to improve fairly quickly...although it still seems like an uphill battle against the many already-featured 3d engines out there, ironically including blitz3d, which aside from crossplatform ability, is a lot further ahead.
Hi,
CodeLite on the Mac has problems building dynamic libs:
If you go to Settings/Build Settings/Tools, the Shared Object Linker is set to:
g++ -shared -fPIC
This is wrong on the Mac - it needs to be 'g++ -dynamiclib' I think. Can't remember exactly as I'm at home right now with no Mac!
It does need to be -dynamiclib instead. However, it seems that CodeLite is responsible for the -shared bit.. not sure why or what the reasoning is. Anyhow, to fix that, just open the max3d project settings in CodeLite, go to the linker page, and add -dynamiclib to the end. It'll still put -shared on there, but that doesn't affect anything from what I can see.
In the meantime, I'm fiddling with getting it to work in Xcode. Edit: Success.
I haven't noticed.. but has it been said why entities and other handles are integers instead of objects?
The latest revision of the castle demo (54) has a different problem now:
- There are intermittently horizontal lines drawn over the mirror in the floor
- The castle itsel f(outside of the mirror) alternates between normal colors and very dark colors when I move towards it. each step I take alternates the castle between light and dark.
Sample:

Note that the mirrored contents themselves stay light, but the rest of the environment keeps alternating: the castle, brick floor, etc.
Same thing for the dropcube demo: the plane alternates between bright yellow and dark brown when I move around.
I haven't noticed.. but has it been said why entities and other handles are integers instead of objects?
They're pointers. When it comes down to it, you pass a memory address the same way you pass an int, it's just simpler on the BMax end to have the function written as CreatePivot%() than CreatePivot@ Ptr(). This might be an issue with 64-bit machines at some point.
This might be an issue with 64-bit machines at some point.
Good point.
Fun.
Someone said this was inferior to B3D in some areas. In what way? I haven't got around to trying it for myself yet.
i guess its because its still in 0 versioning :) The Blitz3D engine is stable, bug free and has been refined for over a decade.
I dont think this is intended as a "Final release" by any shot (otherwise it would be announced more loudly, probably with its own blitz page). If anything its a development release so everyone interested (and who actually have time) can help to tighten the screws and seal the hatches by testing and suggesting additions.
A good idea if you ask me. If you want a quick-release commercial project though i wouldn't switch from B3D, Minib3d etc.. just yet.
Someone said this was inferior to B3D in some areas. In what way? I haven't got around to trying it for myself yet.
At the moment: performance and stability. But what can you expect - it's still WIP.
Okay, thanks guys. So there's no major holes in functionality compared with B3D?
I agree it's a good idea to get it out there, but you will always get those unhappy that it's not 100% complete.
The fact that Max3D has realtime shadows and mirrors already makes it better than Blitz3D. Blitz3D has only mirrors. The additional fact that Max3D is using OpenGL, makes it also better than Blitz3D, since OpenGL runs on all platforms, and is faster and more advanced than DirectX10.1 or any higher version.
Okay, thanks guys. So there's no major holes in functionality compared with B3D?
Well there's no transparency, and no skinned animation. That's two kinda big holes for me. I've not even compiled it yet, but I did have a glance through the camera class to try to help out with the questions about FOV and the camera class is virtually empty. I wouldn't start porting any big projects just yet, put it that way.
EDIT: I'd be interested to hear more though. I don't know, for example, whether it still loads compressed textures.
The additional fact that Max3D is using OpenGL, makes it also better than Blitz3D, since OpenGL runs on all platforms, and is faster and more advanced than DirectX10.1 or any higher version.
This thread is full of people it doesn't work for, so it's hardly universally compatible as you're suggesting. Furthermore, OpenGL 2.0 is barely equivalent to DirectX 9, it's not even close to 10.1. For example, elementary DirectX10.0 stuff like geometry shaders isn't even available in OpenGL 3.0 without extensions.
The additional fact that Max3D is using OpenGL, makes it also better than Blitz3D, since OpenGL runs on all platforms
Hows that better when the vast majority of new PC's still come with Windows, and with the recent onslaught of free laptops for internet connections, as well as laptops are at their cheapest prices ever... I dare bet theres a limited amount of them that dont have a intel GMA, which turns out to be useless for GL2.1 as this thread seems to prove.
and is faster
My intel X3100 says otherwise on various tests, OpenGL comes in second under Flow3D and Max2D (EDIT: DX9 Driver BTW), granted its by a margin, but still second.
and more advanced than DirectX10.1 or any higher version.
Your joking right?
Dabz
@Dabz: No, I'm not joking. Not every PC is capable of the same things, not every console either. The "problem" is only that on PC's there is no numbering system like PS1, PS2, PS3, etc..., but still each generation of PC is a completely new platform. To play a PS3 game, you need a PS3. To play a OpenGL 2.1 game you need a PC which is capable of OpenGL2.1.
Maybe only Microsoft fanboys find DirectX faster than OpenGL, but I'm not a fanboy of anything, I just know that several demos and games which supported both DX and OGL graphics, were always faster with OGL, no matter if it was my old ATI 800, or my old GF 8800.
and more advanced than DirectX10.1 or any higher version.
Father forgive them, they don’t know what they say...
I understand predilection, but don't push it too far as to look completely uninformed. Just say that despite the drawbacks OpenGL is actually the only cross platform option available (and if the OpenGL team will not keep up in future years since they're not doing it right now - they look more headed toward supporting graphical tools than gaming - someone else will have to). We're not comparing DX7 or DX8 with OpenGL, and a lot has changed in recent years.
If you want to get a good insight and keep up with recent changes - namely the OpenGL 3 revision (version seems a bit too much) and DirectX 11 - this article is excellent:
http://www.tomshardware.com/reviews/opengl-directx,2019.html
Not every PC is capable of the same things
Did I say every PC was capable of the samethings... I only stated that DX9 was faster on MY machine... On the other hand, you stated, and I quote:-
and is faster
Mmmm, no other factor apart from its just faster!?!
To play a OpenGL 2.1 game you need a PC which is capable of OpenGL2.1
Well thats a given... But my point was that Blitz3D nigh-on ran everywhere... Max3D wont... Thats why I, and I'll repeat... I... think its better,. You dont need top heavy tech to make a decent game... Look at World of Goo, 93% or something in PC format, that bitch even runs on an netbook.
games which supported both DX and OGL graphics, were always faster with OGL, no matter if it was my old ATI 800, or my old GF 8800.
So why didnt you say that in the first place?
Maybe only Microsoft fanboys find DirectX faster than OpenGL
lol... Obviously, I've bigged up DirectX to the hilt when I stated:-
granted its by a marginTo me, that states that OpenGL is up DirectX9's arse on my system, not that I'm currently up Bill Gate's back chaff! ;)
Dabz
DirectX 11 will again need new hardware, and people don't have even DirectX 10, let alone 10.1 hardware yet.
When people slowly start to catch up to the PC2007 standard (like GF 8800), then they will realize that Microsoft doesn't support them anymore, and they start to look for other platforms, like Mac OSX and Linux, where their hardware works 100%.
OpenGL works always as good as the hardware is, and it doesn't need special DX10/10.1/11 hardware.
Besides, I heard that article was a pure marketing trick from Microsoft to sell Vista. What worth is a graphics API which works only on Windows Vista and 7?
Alone the title is ridiculous: The war is over. What kind of war is that when you tell your people that they can have food in 10 years, but we won now, and don't have any food to offer now. The enemy's food is compatible with older generations and other races of humans also, and any species of lifeform too, and it works all the time, even in 10 years.
I'm not a fanboy of anything
Ahh, that's awesome. You should do stand up.
@Dabz: Yeah, Blitz3D is like PS1 games. PS1 games work on PS3 also, but they look horrible.
OpenGL works always as good as the hardware is
It blatantly doesn't. Sometimes it just doesn't work at all. Sometimes it works but not correctly. I could go on.... actually no I couldn't cos I can't be bothered.
The day I find myself writing games that don't work on anything worse than a £300 graphics card, is the day I'll quit.
If the mods don't notice then I predict an increase in popcorn sales. Fantastic.
Okay, thanks guys. So there's no major holes in functionality compared with B3D?
Max3D blows up on my ATI card unless I have a square windowed screen (e.g. 1024,1024 instead of 1024,768), so I'd say that's a fairly major hole in functionality considering how common ATI cards are... :-?
Yeah, Blitz3D is like PS1 games. PS1 games work on PS3 also, but they look horrible.
I quite agree, but I would ultimately prefer it over Max3D at this time if given the choice between them.
OpenGL works always as good as the hardware is
In my experience, and I will state I'm just a hobbist programmer, but in my experience DirectX has always been the most stable API between the two.
Max3D blows up on my ATI card unless I have a square windowed screen (e.g. 1024,1024 instead of 1024,768), so I'd say that's a fairly major hole in functionality considering how common ATI cards are... :-?
Its all right though, it uses OpenGL! :D
Alone the title is ridiculous: The war is over. What kind of war is that when you tell your people that they can have food in 10 years, but we won now, and don't have any food to offer now. The enemy's food is compatible with older generations and other races of humans also, and any species of lifeform too, and it works all the time, even in 10 years.
I'll not even ask! :)
Dabz
@Dabz: Then use Flow3D, or Ogre3D. It would be cool if Max3D would be able to support as low hardware as Flow3D/Ogre3D (even lower than Blitz3D: DX7 class hardware (like GF2), but not only Windows), but Ogre3D has a long development time behind it, and the amount of code is accordingly huge.
It would be quite an impossible task to make Max3D compete with Ogre3D, and it's not really worth it. Ogre3D is perfect for older hardware, but can't compete with modern engines, and Max3D should be a modern engine, else we wouldn't need it.
Then use Flow3D, or Ogre3D
I just today had a conversion with Cygnus regarding Flow3D, surrounding it's .mesh file format. Basically, thats the only format it supports (Because Ogre does)... The models I've bought over the years have nigh on every available file format available apart from .mesh.
So, until theres a decent converter for the most popular file types->.mesh, or until Flow3D allows the use of said formats, its no good for me I'm afraid... But I will be keeping tabs on their site, because as it stands, the beta really impressed me.
Dabz
UU3D Pro can convert almost any format to dae, which Blender can read, and Blender has .mesh exporter. Anyway, every artist and programmer should have those 2 programs anyway, so it's no additional cost.
There's a good reason Ogre supports its own format almost exclusively though. The mesh format evolves with the engine to support advanced features directly rather than a generic format that contains no geometry and shader optimization data. Ogres format is much better supported than blitz3D too.
Here's the ones I found with a quick look, there are a few others too
3dsmax
Maya
XSI
Lightwave
Blender
truespace
cinema4d
wings
milkshape
sketchup
AC3D
Gile[s]
Ultimate Unwrap
BlitztoOgre
Bioware MDL2mesh
Vrml converter
http://flow3d.org/wiki/index.php5?title=Ogre_ExportersSo here are exporters and converters for most tools, not sure which ones you use, either direct to binary mesh or the xml format. Theres a xml to binary tools, and a mesh updater tool that updates old ogre meshes to newer versions. We have a drag and drop batching tool that pops up a confirm dialogue asking if you want all the meshes in a folder converted too.
There is a collada import library, not sure if we will be supporting it though. There are a lot of benefits to using Ogres own format over other general purpose ones.
Ok, been following this thread with interest. But I am confused.
We were all able to do things like this in Blitz3D 6 years ago on hardware about a fifth of the processing power. Furthermore it was a doddle to create, from the posts on this forum, it looks like this is now as fiddly as C++, and from my experience of BMax2D I can imagine it to be frustrating.
And just like BMax2D compared to old skool Blitz, it looks like documentation is at a minimum and compatibility is a bit flakey.
So what's next? Green cubes dancing over a castle was exciting stuff when PS1 games were the newest games in the market in early 2000. But I don't see where this is going anymore, or even 'what' makes it better than Blitz3D. Do we really need BMax3D to create Match3 games?
Realtime stencil soft shadows (klepto2's mod), realtime mirrors, are already a good step into AAA games. Now what's still missing is DoF, SSAO and fog. I see it's a forward renderer, so transparency will be one of it's strenghts, but it will interesting to see how it can cope with 100 or more spotlights.
Does it support anti aliasing?
2p worth : It seems like a project where the developer lost interest and decided to open the code. The worklog suggests as much.
Not saying there's anything wrong in that just the majority of Blitzers were probably looking for something more complete and something akin to B3D-Max rather than a base template to improve upon.
Oh well.
p.s. Any Render-to-texture code in there that could be stripped out?
@tonyg: It's barely 2 days old, and already has features which many high end engines don't have: open source / cross platform / opengl 2.1 / realtime shadows / realtime mirrors / Blitz3D like command syntax / Node:Entity system. And there are several SVN updates daily, at this pace it looks very promising.
@tonyg: It's barely 2 days old, and already has features which many high end engines don't have: open source / cross platform / opengl 2.1 / realtime shadows / realtime mirrors / Blitz3D like command syntax / Node:Entity system. And there are several SVN updates daily, at this pace it looks very promising.
... but, in my view, that's not what many people were expecting and/or hoping for. I can see how it's all very exciting and that, for some, the potential is great.
However, some people have been waiting for BlitzMax3D for 5 years or so.
I realise there are other solutions available. I am just posting an opinion.
It's put me off completely. Although I've never been into 3D I was hoping the release would filter improvements into the 2D code.
p.s. I don't think half the things you list as high-end engine features are anything special.. then again not into 3D so don't really know.
p.p.s 2 days old? Again, that's something that will come as a shock to many people who have been charting BMax3D progress for 4 years.
I meant it's 2 days since it was released in it's first public version. Of course it has been developed for 4 years and more unpublic before.
That 4 or more years include specification, strategy planning, technology analysis, implementation, and much more.
I never understood why someone would write 2D games anymore. Even ex-2D games like Command & Conquer are now all full 3D, but they can be still played in 2D manner. You are just making your life harder trying to make cool special effects in 2D mode without real 3D support.
That 4 or more years include specification, strategy planning, technology analysis, implementation, and much more.
From the worklogs it seemed more like 4 years of a traditional 3D engine route, then 1 year of gamemaker route, before opening the code. Again I could be wrong.
I never understood why someone would write 2D games anymore.
Really? I can only guess you're reading 2D as pure-2D rather than 2d-in-3D.
You are just making your life harder trying to make cool special effects in 2D mode without real 3D support.
Errrr.... B3D+spritecandy/nsprite pro, Bmax and, recently, PBFX all provide 3D support for 2D engines.
Am I missing something?
Ah ok, yeah I really thought you meant real 2D games like boulder dash. But you apparently mean top down games, or side view games. Those are fine. Boulder Dash is not bad though, I still play it :)
Anyway, every artist and programmer should have those 2 programs anyway, so it's no additional cost.
Well, the exportor for Blender I used is an xml one, which creates a model.mesh.xml file... I then tried using OgreXMLConverter.exe, but received an 'Entry Point Not Found Error' when using the application alongside Flow3D's OrgeMain.dll!
I've also tried a few things on the wiki page without luck, but if anyone can rustle up an article on shifting models to the .mesh format using Blender, I'd love to see it, because quite frankly, I've spent best part of my sunday trying to figure it out, with no avail and I'm pretty tired of it now TBH!
Dabz
Hi Dabz, I'll get Lina to compile the converter asap. She's the only one that uses C++ and is away on holiday till tuesday which is why we havent been able to get the tool on the wiki yet. I'll email you as soon as we have it, we will make a drag and drop batcher tool to make things easier too. Will stop posting about this on this thread, didn't mean to hijack it.
Ohhh, nice one AdrianT!

Cheers
EDIT:-
@Dabz: I thought this page explains it all:
Erm, what does it explain?
It shows links to stuff that a) dont work, for me at least (Note post above), or b) links to dead ends!
You see, the thing I really want to do is program stuff, thats what I like doing, not installing a million bits of software, downloading this, downloading that, downloading X plugin, building this, to run that, which means something else will work, but doesnt... Rinse... Repeat.
I'd rather ring a TalkTalk call centre and talk to someone from India that doesnt understand English than have the fanny on again like I've done today.
Dabz
Dunno, but in my browser the link ends up with this file, which is the mesh exporter for Blender:
http://www.xullum.net/lefthand/downloads/temp/BlenderExport.zipBut it's true, Ogre3D is damn hard to learn at first. I spend a whole day to get even a simple self-made application to compile under OpenSUSE 11.1.
The most help was random luck and clairvoyance. Nothing is documented in a step by step method.
I would say no one who is seriously interested in shipping a product will be interested in Max3D in it's current state as it's full of holes (not only those Mark stated, btw has the topic 3d sound been covered at all?) and hasn't matured on a wide variety of hardware yet.
I suspect it will still take quite a lot of time to get it into a round, complete and reliable shape on a wide range of cards on all three platforms, maybe even with docs? It's a typical nerd release mainly for those who like to play around with engines or for the more clueless who prefer throwing around with technical phrases without understanding what they are talking about or caring if these features work properly on other people's systems but sadly nothing for those who intended to finish and ship a product. I guess your closest chance will be if you're choosing a similar gametype like Mark is after.
All in all i would sum this up as a dissapointment as it's not in a state which quite some people were hoping for, those will continue to head for other solutions. So yes, finally it arrived but in what kind of shape and with what kind of future perspective? Maybe it will be a nice product in the longrun but i doubt this for the near future, so the real release is still to come.
Ive updated my link to r55, if anyone wants the dll without compiling it themselves:
http://therevills.syntaxbomb.com/max3ddll.zip(included the module aswell)
@tamuel: it has not been released, it has been opened.
@therevills: Thank you. Much appreciated.
Barney
I never understood why someone would write 2D games anymore.
I do that because programming and playing those games is fun.
I'd rather play a Foppy game than an EA game. Nuff said.
me too,
If a 2d game is good then it doesnt matter one bit. To me a 'real' gamer is someone who can find immersion and imagination regardless of the graphics (provided the gameplay is good). Someone who reads the reviews and back of the box over simply oggling the screenshots.
In the last year or so ive played many 2d games, and two games with relatively simple graphics really stood out, both made by indies and both are in my top 20 most favorite of all time games. One was Eschalon by Basilisk (i was a huge baulders/ultima fan :) the other was Wesnoth, an infuriating TBS that had me playing for weeks.
That said, i still -prefer- 3d as it gives more freedom, but just because a game is 2D it dont make it bad.
Back on topic,
All those saying its a disappointment, why? Its not -that- kind of release. Now it has been opened up, i am certain development will speed up enormously. Much more so than if it had remained closed.
Maybe only Microsoft fanboys find DirectX faster than OpenGL, but I'm not a fanboy of anything, I just know that several demos and games which supported both DX and OGL graphics, were always faster with OGL, no matter if it was my old ATI 800, or my old GF 8800.
i agree, the few games i can run on ubuntu using OGL seem to run smoother than the same game using DirectX.
On windows XP both seem to run the same (when i tested i think i got like 5-10 fps more on GL) but OGL is -much- slower on in vista. My blitzmax and irrlicht experiments seem to indicate this too. I only buy Nvidia or ATi though. (although my work laptop is intel but i wouldnt use it for games anyway)
It can feel dissapointing because that more or less means more xmas 2009, xmas 2010, ... instead of xmas 2008. I'm not sure how much opening it speeds up development.
Regarding 2D games i guess it just needs some experience how much work it takes making a 2D game with 2D assets or making it with 3D assets, both in terms of time and skills. This can vary a lot and tadaa again depends on the game design. It can be advantageous if you have walked both routes before on your own before wondering about certain decisions.
A lot of casual programmers are earning a tidy living with 2D games. A good game is a good game - whether its 2D or 3D doesn't make the slightest difference.
Anyway, think we're going a little O/T here...
I am just simply venting:
I CAN'T BELIEVE THAT MY BRAND NEW DELL 1525 CAN ONLY RUN UP TO OPENGL 1.5!!! STUPID INTEL GMA965 CHIP!!!
Supports DirectX 10 though :P
It can feel dissapointing because that more or less means more xmas 2009, xmas 2010, ... instead of xmas 2008. I'm not sure how much opening it speeds up development.
I completelly understand you. Believe me! Anyway, at last we can start playing with the engine, and prototiping while it is being developed by, instead of mark only, a team. I think this is a good move by Mark.
Hi all,
i am trying to compile the engine but its stops at GLee.h:
In file included from C:/bmx3d/max3d/max3d/GLee.c:43:
g++ -c "C:/bmx3d/max3d/max3d/graphics.cpp" -O2 -fno-strict-aliasing -o ./Release/graphics.o "-I." "-I./opende/include" "-I./assimp/include"
C:/bmx3d/max3d/max3d/GLee.h:903: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:903: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:904: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:904: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:908: error: `GLvoid' has not been declared
C:/bmx3d/max3d/max3d/GLee.h:908: error: ISO C++ forbids declaration of `table' with no type
C:/bmx3d/max3d/max3d/GLee.h:911: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:911: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:913: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:913: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:914: error: expected `,' or `...' before '*' token
C:/bmx3d/max3d/max3d/GLee.h:914: error: ISO C++ forbids declaration of `GLvoid' with no type
C:/bmx3d/max3d/max3d/GLee.h:921: error: `GLvoid' has not been declared
C:/bmx3d/max3d/max3d/GLee.h:921: error: ISO C++ forbids declaration of `image' with no type
C:/bmx3d/max3d/max3d/GLee.h:924: error: `GLvoid' has not been declared
...
...
...
using:
Codelite v 1.0.2527
MinGW 5.1.4
gcc 3.4.5
r56 is out!
Dabz suggest that I changed the way I was uploading the dlls.
So now just go to:
http://therevills.syntaxbomb.com/max3d/And you will find the r55 and r56... r56 requires a new version of the mod as well (included in the zip)
"I never understood why someone would write 2D games anymore. Even ex-2D games like Command & Conquer are now all full 3D, but they can be still played in 2D manner. You are just making your life harder trying to make cool special effects in 2D mode without real 3D support. "
wow...that has to go down as one of the most mis leading posts on this forum. amazing...
The latest version no longer has the dark fields and lines in the mirror, and no longer flickers the entire environment between bright and dark anymore either on my ATI card.
@xlsior... can you run the examples now in a standard res eg 1024x768 (not 1024x1024)?
My gfx card is 8800 GTS 512MB, and Ive always been able to run them in a standard res... must be ATi
using the r56 DLL:
Fragment shader failed to compile with the following errors:
ERROR: 0:51: 'bb_QuadTexture' : undeclared identifier
ERROR: 0:51: 'texture2DRect' : no matching overloaded function found
ERROR: 0:51: 'assign' : cannot convert from 'const float' to 'FragColor 4-component vector of float'
ERROR: compilation errors. No code generated.
@xlsior... can you run the examples now in a standard res eg 1024x768 (not 1024x1024)?
My gfx card is 8800 GTS 512MB, and Ive always been able to run them in a standard res... must be ATi
Nope, still blows up in 1024,768 -- although now it gives a different and much more elaborate error message:
SHADER COMPILE ERROR
1:uniform int bb_InstanceID;
2:#define BB_POSTPROCESS 1
3:mat3 bb_mat3( mat4 mat ){
4: return mat3( mat[0].xyz,mat[1].xyz,mat[2].xyz );
5:}
6:#define BB_MODE BB_POSTPROCESS
7:uniform vec2 bb_WindowSize;
8:uniform vec2 bb_WindowScale;
9:uniform sampler2D bb_AccumBuffer;
10:uniform sampler2D bb_MaterialBuffer;
11:uniform sampler2D bb_NormalBuffer;
12:uniform sampler2D bb_DepthBuffer;
13:uniform sampler2D bb_ShadowBuffer;
14:uniform vec3 bb_AmbientColor;
15:uniform mat4 bb_ProjectionMatrix;
16:uniform mat4 bb_CameraMatrix;
17:uniform mat4 bb_ViewMatrix;
18:uniform mat4 bb_ViewProjectionMatrix;
19:uniform vec2 bb_ViewportSize;
20:uniform vec2 bb_ViewportScale;
21:uniform vec2 bb_FragScale;
22:uniform vec2 bb_FragOffset;
23:uniform float bb_zNear;
24:uniform float bb_zFar;
25:uniform mat4 bb_LightMatrix;
26:uniform mat4 bb_InverseLightMatrix;
27:uniform mat4 bb_ShadowMatrix;
28:uniform mat4 bb_ViewLightMatrix;
29:uniform mat4 bb_ViewShadowMatrix;
30:uniform vec3 bb_ViewSpaceLightVector;
31:uniform vec3 bb_ViewSpaceLightPosition;
32:uniform vec3 bb_ViewSpaceLightDirection;
33:uniform float bb_LightAngle;
34:uniform float bb_LightRange;
35:uniform vec3 bb_LightColor;
36:uniform sampler2D bb_LightTexture;
37:uniform float bb_ShadowMapScale;
38:uniform float bb_ShadowNearClip;
39:uniform float bb_ShadowFarClip;
40:uniform mat4 bb_ModelMatrices[48];
41:uniform mat4 bb_ModelMatrix;
42:uniform mat4 bb_ModelViewMatrix;
43:uniform mat4 bb_ModelViewProjectionMatrix;
44:uniform mat4 bb_ModelLightMatrix;
45:uniform mat4 bb_ModelShadowMatrix;
46:
47:varying vec2 TexCoords;
48:
49:
50:void main(){
51: gl_FragColor=texture2DRect( bb_QuadTexture,TexCoords );
52:}
53:
Fragment shader failed to compile with the following errors:
ERROR: 0:51: 'bb_QuadTexture' : undeclared identifier
ERROR: 0:51: 'texture2DRect' : no matching overloaded function found
ERROR: 0:51: 'assign' : cannot convert from 'const float' to 'FragColor 4-component vector of float'
ERROR: compilation errors. No code generated.
ERROR: (file:C:/Code/Max3D/max3d/max3d/openglgraphics.cpp, line:131)
in
http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.30.08.pdf version from 7-Aug-2008
there is no definition of
texture2DRect.
Sampler2DRect is reserved for future use.
Bmax+Max3d rev. 57
Here there's another error with mirror+ shadows: I should see the shadow of the castle in the mirror...

Image scaled down
Nice features the new 'Shadow functions' SetLightShadowSplits & SetLightShadowSplitTable!
(ps: a shorter name function? ShadowSplits / ShadowSplitTable ?)
shadows are temporaly disabled in mirrors (they work, but are a bit buggy)
the ShadowSplits etc. is still a thing to discuss and maybe just temporary, because the splits doesn't belong to the light (in my opinion) so they belong to the camera, and if the split or the camera range changes, then new splittables should be generated automatically. Have to discuss this a bit with mark ;)
the sampler2drect approach is a try to support the 1024*768, etc windowsizes on non cards with the square 'bug'. Unfortunatly the TextureRectangle is also not well supported, maybe I will find a workaround later.
Ok - not problem!
I've tested this morning with Max3d and I got a little speed up with the new split-function.
I just discovered that a better split values (for me on castle demo) is like this
Local splits#[]=[1.0,4.0,<b>28.0</b>,64.0,256.0]
SetLightShadowSplitsTable light,3,splits
* I dont'know if value must be 2power number
And just discovered LightTexture (or projector!)

I haven't understood how dont' repeat the texture, but I think its' a beautiful addition!
The speedup comes to the fact that the previous revision uses 5 splits as a standard. The splitnumber means how many depthmaps are taken to build the shadow (1 split would be the same as standard shadowmapping).
the values can lie everywhere between the camera nearplane and the farplane. Shadowmapping is a imagebased shadowing approach so you have aliasing effects when you get the depth of a region bigger than the depthtexture. The splitting lowers this aliasing because each split gets its indivudal depthtexture. eg with your values the rendering is split into 4 passes: the firstone renders the depthtexture for the range 1.0 to 4.0, the 2nd will capture 4.0 to 28.0 and so on. you see, the further away the fragments, the lower the amount of space is given per pixel. so accuracy is lower for those further away but higher for the nearer ones.
Got everything to compile, but max3d bugs when compiling shaders...
It complains about missing
#extension GL_ARB_texture_rectangle : enable
for using
sample2DRect in shaders.
Solved it by adding the line to
opengraphics.cpp at line 751 (in GLShader.Create()).
Dunno if that is correct or not though ;)
Oh, and im on WindowsXP-SP3 + Nvidia 8800GT
edit: And thanks very much Mr. Sibly for releasing this :D
I have started (even if its in early stage) to try to build an oop layer about max3d. I would like to know what do you think about this:
TMax3D.Init() 'optionally give path to dll
TMax3D.Graphics3D(800 , 600 , 0 , - 1)
Local Camera:TCamera = TCamera.CreateCamera()
While Not KeyHit(KEY_ESCAPE)
TMax3D.UpdateWorld()
TMax3D.RenderWorld()
Flip
Wend
It will more or less wrap the max3d functions but will give also helper functions to provide things like TCamera.CameraRange and more.
namespace ideas (should i try to fit b3d/minib3d commands)?
other suggestings?
^^That is exactly how it should be.
namespace ideas (should i try to fit b3d/minib3d commands)?
Do you mean adding namespace to Bmax or a pseudo-namespace system? If the latter then I don't think it's a good idea. I would like to be able to hit F1 with several 3d engines installed. That would need a change to the IDE. The easiest way would be to check for Import modname in the current file.
Well, I think namespaces was a bad choosen word by me. I more mean naming conventions.
Bmax already has some kinde of namespace system. You could always do this:
bmx3d.max3d.RotateEntity(..)
or
klepto.minib3d.RotateEntity(..)
just in case you didn't know. I don't know if the helping system handles this may worth looking into.
Klepto,
Will you still continue developing MiniB3D or will you instead use that time to develop Max3D?
I'm still working on minib3d, no fear. But currently i don't have much time, so in my free time i try to analyse Max3D for maybe adding some things to minib3d.
I thought klepto2's MiniB3Dext2 has been always what Max3D is now, since it uses also shaders, and needs modern hardware. I think when klepto2 adds his own improvements to Max3D, it will be like his new MiniB3Dext2 was planned to be.
I only looked at the command list of Max3D. I take it there is more to Max3D than that, then, because it was nowhere close to MiniB3D in functionality? I got the impression that at current state Max3D was more like Ogre, meaning that it only displays graphics and nothing beyond that.
It has physics too, but its incredibly slow at the moment. 1 - 4 fps on slower 7 series cards (Geforce go7400) in the castle scene and I'm not even sure if it does transparency.
I got the impression that at current state Max3D was more like Ogre, meaning that it only displays graphics and nothing beyond that.
The current state of Max3D is **in development**.
I think alot of you are missing that very important point.
I think people are missing that point mainly because it's been a very long time in the works and everyone has anticipated that when it does show up it's going to be in its finished, full purchasable product form, and that expectation is hard to shake off now that we're faced with an incomplete API that still needs developing, and which has changed status from an official module to a third party one.
r61 includes 'spherical' sprites:

Also r61 uploaded to here:
http://therevills.syntaxbomb.com/max3d/I have also uploaded the bmx samples too...
@Klepto, the OOP of Max3D looks ace!
Update: Looks like the latest edition does work in 1024,768 on my ATI card.
The current state of Max3D is **in development**.
Yes, in development, as in 'write it yourself'. I'm sorry to say it, but I can't help but agree with those that think Mark has got bored and dumped Max3D.
Yes quite, and he keeps dumping
updates on early adopters daily... it's a complete cop out!
@Mark: Silly question, but in your past worklogs you wrote about some 'editors' you are playing around to create some '3d-game-creator' sort of. Not to distract your attention and motivation from Max3d (it seems you are quite productive in these days from the update history on code.google...) & BlitzMax - but all the test/code or whatelse are somewhere? Do you ever want to 'show' them one days? (I don't ask the source - only a simply screenshot/video just to give the idea).
Simple and pure curiosity...
Look. I've bitten my tongue for so long now its about to drop off.
People whined that Max3D was late. When its released, they whine about it still being in development. Why don't you people just bugger off away? Nothing will ever please you so what's the point in trying? Its as if you thrive on being miserable.
You've got Max3D for free for Christ's sake. It might have teething troubles but it will only get better. Why are you complaining? What is there to complain about?! Blitz3D wasn't perfect when it was first released. What product is??!
Honestly. Stop it. For the love of God. :/
I agree with GFK. a line in the first post: "Please visit if you are interested in helping out with development of the open source max3d egine."
That says it all. It's not ready yet. Expect bugs and anomalies. It's a beta 'in development' release, not an 1.0 release. Accept it.
I think the complaining will be over with soon-ish. People are still shocked by this since they're all expecting the second coming of Christ, and that's not what this is obviously. I personally think this is an awesome way to progress the development of Max3D so that the community, or at least any involved part of the community, can have a hand in shaping it.
This is probably one of the best things that could have happened, as far as I'm concerned.
@therevills: Has there been a shader update in r61? I get a shader error when I use the module & dll (Release build) that you provided.
I think ImaginaryHuman rounded it up quite nicely what some are feeling. max3d is in no way close to what BlitzMax was like when it was released and that's what quite some understandably were expecting. I also wouldn't dare to give max3d a beta status yet, there is a long road (more than a few months) to walk.
I have to admit was a little impatient waiting for the release of max3d..
To be honest - it being released in such an early state is a godsend - it
means you can voice your opinion about what should or shouldnt be done..
not that you will always be heard...but you may well influence the design..
failing that - you have the entire engine source code... awesome!..
oh.. by the way - might be worth starting a new topic for this..its getting
quite long... ;)
Mark is working his fingers off on Max3d at the moment. I don't think he has time to even read the whining in this thread.
People whined that Max3D was late. When its released, they whine about it still being in development. Why don't you people just bugger off away? Nothing will ever please you so what's the point in trying? Its as if you thrive on being miserable.
You've got Max3D for free for Christ's sake. It might have teething troubles but it will only get better. Why are you complaining? What is there to complain about?! Blitz3D wasn't perfect when it was first released. What product is??!
Honestly. Stop it. For the love of God. :/
WOW.
@GFK, On this occasion i find myself agreeing 110% with you. :)
2cents:
As for all those moaning about openGL, personally i couldnt give a stuff about DirectX.
-BUT-
I suspect someone will eventually slap a DX interface to it (it is open source after all). OpenGL is the best choice IMO as it makes it crossplatform (ie. can run on all those incresingly popular UNSATURATED markets and is in many peoples opinion a better universal prototyping & dev sdk).
Also by the time this is ready and people are actually releasing (1-3 years?), 2.1 will be much more widely supported by the cheap/crap stuff (or more appropriately the drivers).
Many intel cards can support 2.x now, if people would bother to update their drivers (says so on intels webpage).
Yeah I agree 100%. Shut up whiners, you have no clue what's going on :)
@plash: I dont think so, but check the code updates in the different releases:
http://code.google.com/p/bmx3d/updates/listIm just updating the source files I have, rebuilding the project and then running the BlitzMax samples...
Hold on. Before the thought-police begin strapping on their jack-boots...
People whined that Max3D was late.
Max3d *was* late and a number of people expressed an interest in how it was progressing.
When its released
It hasn't been released
, they whine about it still being in development.
Not that I can see. There have been a few comments that it's not what 'they' expected. TBH it's not what many people expected even those who have the monkey ready to be spanked at the thought of getting involved.
Why don't you people just bugger off away?
They may well do if Max3D is not for them.
Nothing will ever please you so what's the point in trying?
I think you're getting lots of different people mixed up in your 'you'. The people expressing an opinion in this thread are not necessarily the same who have been 'complaining' about other things.
Its as if you thrive on being miserable.
Hmmm.. think that's Mr Black the Kettle at the door and he wants a quick word.
You've got Max3D for free for Christ's sake.
... but not the Max3D people were expecting and would have gladly paid for. If somebody gives me a half-cooked sausage in a cafe and says ' cook it yourself' when I ordered Sausage, egg and chips 2 hours ago I'd be shocked.
It might have teething troubles but it will only get better.
I honestly think it'll be... interesting. I can't think of too many 'community projects' (which is what this seems to be) that have worked well but I hope this is different.
Why are you complaining?
Not complaining. Just making a point.
What is there to complain about?!
Max3D not matching peoples expectations? I'm still not complaining though.
Blitz3D wasn't perfect when it was first released. What product is??!
Not sure who has suggested Max3D should be perfect. From the last 4 years worklogs I think something more 'complete' was expected.
Honestly. Stop it. For the love of God. :/
I'm actually getting just as frustrated with all the people complaining about the people 'complaining'. Let them get on with it and express an opinion.
So... Please will all you whiners stop complaining about people stating their opinion just because you don't agree with it or how it is delivered.
Be aware that a lot of this is tongue-in-cheek and I have used GFK's post (whose views I often agree with) as it captured lots of points in one easily quotable snippet.
I can understand that this is not what some were expecting and respect their opinion - they have the right to air it after such a long wait.
I certainly don't think that this has been "dumped" , as pointed out, there have already been a lot of updates in the last few days.
If anything Max3D will now be "ready" a LOT sooner than if Mark had continued working alone.
The benefit of having access to the source code is enormous. If you have always wanted to learn c++ now is a good oportunity. It's not too difficult to add your own commands to the api.
Im just updating the source files I have, rebuilding the project and then running the BlitzMax samples...
SVN should update every file..
This release shows a change to sprite.glsl:
http://code.google.com/p/bmx3d/source/detail?r=60Also, r57 shows a load of other changes to the shaders.
SVN should update every file..
It only updates the files which have been changed...
Im no C++ OpenGL programmer, so I don't look closely to the C++ code, just the BlitzMax examples...
I check the updates page, and if there is an update, I run the update.bat file, then rebuild and test the samples...
Also, r57 shows a load of other changes to the shaders.
Sorry, but why didn't you check before... I'm just uploading the dll for people who are having trouble compiling it....
Yes quite, and he keeps dumping updates on early adopters daily... it's a complete cop out!
TBH, I wasn't aware Mark was still beavering away on it. My bad. Maybe there is a future for it.
People whined that Max3D was late.
I wasn't one of these people.
..while I do admire fact that max3D is out in any shape and that quite few folks working on it, apart from Mark, what is all very nice, i also see that Max3D is not something you can develop game with at given stage..no matter are you complaining about it or enjoying enthusiasm because it is out..reality is..you cant make game with it at the moment..and thats all what does matter to me..
It only updates the files which have been changed...
Yes... Update every file on your machine that has a change on the server.. Whatever.
Sorry, but why didn't you check before... I'm just uploading the dll for people who are having trouble compiling it....
Because the issue hadn't immediately come to mind.
Look. I've bitten my tongue for so long now its about to drop off.
People whined that Max3D was late. When its released, they whine about it still being in development. Why don't you people just bugger off away? Nothing will ever please you so what's the point in trying? Its as if you thrive on being miserable.
You've got Max3D for free for Christ's sake. It might have teething troubles but it will only get better. Why are you complaining? What is there to complain about?! Blitz3D wasn't perfect when it was first released. What product is??!
Honestly. Stop it. For the love of God. :/
I agree and wish the whiners would get banned. They are the dregs of the community and are dragging the community and the products down. No matter what Mark does these self-proclaimed experts say he is wrong. That sswift character was a perfect example of the mentality (or lack thereof) that Mark has had to deal with lately.
It starts at post #261.
http://www.blitzbasic.com/Community/posts.php?topic=82426#930650I fail to see where I whine about anything.
If I would whine about something, I would whine about Klepto not releasing his new version of MiniB3D already. :)
On the other hand I see lots of noise by people who for some reason apparently see a need to defend Max3D.
I disagree and wish the whiners whining about 'whiners' get banned. They are the dregs and are ruining the diversity of the community. Most people are here because Mark has consistently delivered. These people have supported Mark when they believed he is right so are entitled to voice an opinion when they believe he is wrong. Remember that BRL don't often fail (and even some people can argue that B+ was OK) so it's likely the naysayers will either leave or have to eat their words (I had a very large word-eating session when Bmax got to about 1.16 and I began to realise the benefits of OO approach).
Can't argue with the SSWift's mentality although he HAS put a lot of code into the community over many years (inc 34 code archive entries and 4-5 decent products which expanded BRL product capabilities).
Well, I for one don't think Mark is wrong in any way. I have no complaints about Max3D. I think the decision to go open with it is very cool.
LoL
Well, to take it to the next level, im now whining about the people whining about the fact that they got whined at for whining.
:D
Come on then, who is going to make the first pong game with shadows and particles?
entitled to voice an opinion when they believe he is wrong.
I realize there are youngsters on the forum, but there is a time in your life when you have to grow up and learn to accept the answer that somebody in authority (Mark) gives you.
I realize there are youngsters on the forum, but there is a time in your life when you have to grow up and learn to accept the answer that somebody in authority (Mark) gives you.
I disagree. Voice your opinion as constructively as your personality allows before deciding to accept something.
P.S. Not sure what it has to do with age or maturity either. IMO, accepting other peoples views is also a sign of maturity.
Paraphrasing FlameDuck "You're entitled to your opinion, but you're wrong"
P.P.S Bet nobody has the maturity to leave it at that and allow the thread to be brought back on-topic....
This argument about whining is offtopic anyway. Oh, and we need a bigger boat.
I love a good whinge! :)
P.P.S Bet nobody has the maturity to leave it at that and allow the thread to be brought back on-topic....
Oops! :P
Dabz
If somebody gives me a half-cooked sausage in a cafe and says ' cook it yourself' when I ordered Sausage, egg and chips 2 hours ago I'd be shocked.
:)
And understandably so, however, if he also said - you have full access to my fridge and pantry to cook up whatever meal you fancy AND I'll also be throwing in various tasty morsels myself to add to the pot - then that's not so bad - except if you can't cook !
LOL. True, but most people visit a cafe when they can't be ars ed to cook.
Yeah, but cafes don't have free and opensauce food.
And hasn't the appeal and strength of Blitz traditionally been its ease of use for those of us who "can't cook"?
Pong anyone?
A "bigger boat" would be a good idea. Im on 100Mbit BB and it takes at least 3-4 seconds to get to the bottom of this thread!