by probably next weekend i will have the majority of the 3D specific B3D commands converted to a B3D-like framework in BMAX using the gg Irrlicht mods as the rendering engine. my goal is to get most of the 3D and 2D B3D function set into the framework and working as close as possible to B3D. im seeking healthy individuals with patience and understanding to donate some time and preview/try out what i have in order to guage how im doing in the conversion. you will need to have the current Irrlicht mods and good knowledge of B3D. im looking for folks to attempt simple 3D programs using the commands and note descrepancies (other than what i already note as being different) from regular B3D. also, i will be asking a few Q's due to my lack of knowledge of B3D and the lack of samples/documentation for some of the commands. i will provide some simple documentation on the converted commands and the gg.IrrB3D mod.
to answer a few questions off the bat:
- im not sure when it will be done. i would estimate at least a month out if my time goes well.
- yes it will be free.
- no it wont be exact. there are definately things it wont be able to do, but there will also be a lot of things it can do that you werent able to do in B3D.
- yes you will still have full access to the Irrlicht engine.
- it will not be mac compatible yet. Irrlicht has announced that they are incorporating the first version of the mac port in v0.13 so look for that in the coming months.
here is some sample code:
to answer a few questions off the bat:
- im not sure when it will be done. i would estimate at least a month out if my time goes well.
- yes it will be free.
- no it wont be exact. there are definately things it wont be able to do, but there will also be a lot of things it can do that you werent able to do in B3D.
- yes you will still have full access to the Irrlicht engine.
- it will not be mac compatible yet. Irrlicht has announced that they are incorporating the first version of the mac port in v0.13 so look for that in the coming months.
here is some sample code:
Strict Framework gg.IrrB3D ib3d_Graphics3D(640,480) Local cam:CAMERA=ib3d_CreateCamera(Null,CT_FPS) ib3d_PositionEntity(cam,0,30,-200) ib3d_CameraProject(cam,0,5,0) ib3d_CameraViewport(cam,0,0,640,240) Local cam2:CAMERA=ib3d_CreateCamera() ib3d_PositionEntity(cam2,0,30,-40) ib3d_CameraViewport(cam2,0,240,640,480) Local syd:MESH=ib3d_LoadAnimMesh("sydney.md2") ib3d_EntityTexture(syd,ib3d_LoadTexture("sydney.bmp")) ib3d_EntityColor(syd,255,0,0) Local light:LIGHT=ib3d_CreateLight() ib3d_LightColor(light,255,255,0) ib3d_LightRange(light,1000) ib3d_LightCastShadows(light,True) ib3d_CameraClsColor(200,200,200) ib3d_ShadowColor(150,0,0,0) ib3d_EntityDebugDataVisible(syd,True) ib3d_AddZipFileArchive("map-20kdm2.pk3") Local quake:MESH=ib3d_LoadOctTreeMesh("20kdm2.bsp") ib3d_PositionEntity(quake,-1300,-144,-1249) Local zoom:Float=1.0 While Not ib3d_KeyDown(EKEY_ESCAPE) If ib3d_KeyDown(EKEY_KEY_Z) Then zoom:+0.005 If ib3d_KeyDown(EKEY_KEY_X) Then zoom:-0.005 If ib3d_KeyDown(EKEY_NUMPAD9) Then ib3d_MoveEntity(cam2,0,1,0) If ib3d_KeyDown(EKEY_NUMPAD3) Then ib3d_MoveEntity(cam2,0,-1,0) If ib3d_KeyDown(EKEY_NUMPAD6) Then ib3d_MoveEntity(cam2,1,0,0) If ib3d_KeyDown(EKEY_NUMPAD4) Then ib3d_MoveEntity(cam2,-1,0,0) If ib3d_KeyDown(EKEY_NUMPAD8) Then ib3d_MoveEntity(cam2,0,0,-1) If ib3d_KeyDown(EKEY_NUMPAD2) Then ib3d_MoveEntity(cam2,0,0,-1) If ib3d_KeyDown(EKEY_LEFT) Then ib3d_TurnEntity(cam2,0,-1,0) If ib3d_KeyDown(EKEY_RIGHT) Then ib3d_TurnEntity(cam2,0,1,0) If ib3d_KeyDown(EKEY_UP) Then ib3d_TurnEntity(cam2,1,0,0) If ib3d_KeyDown(EKEY_DOWN) Then ib3d_TurnEntity(cam2,-1,0,0) If ib3d_KeyDown(EKEY_SPACE) Then ib3d_TurnEntity(cam2,0,0,1) If ib3d_KeyDown(EKEY_KEY_Y) Then ib3d_TrackEntity(cam2) ib3d_CameraZoom(cam,zoom) ib3d_RenderWorld() Wend ib3d_FreeEntity(syd) ib3d_EndGraphics()