Irrlicht 3D Engine for PureBasic! *Official Thread*

Developed or developing a new product in PureBasic? Tell the world about it.
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

Movement: This is not going to be handled by the engine, as it is a graphics engine not a "game engine", and it allows for more freedom with the code design for the game programmer.
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

Btw I've just moved back into school and will work on PB_Irrlicht more next week after I've settled in here. (And gone partying a few times :wink:)
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

FloHimself wrote:
dracflamloc wrote:I've created a 3d programming scripting language thats simple, and very fast.
maybe i am wrong, but as far as i can see, this is Lua with exported functions from irrlicht.
if so, please don't say you have "created a 3d programming scripting language".

if you have used the pblua lib, be carefull with copyright notices please.
I'm not using your stuff. Its written fully in C/C++ and the lua license is included in the zip so you can stop playing cop. I've also changed the lua code to suit my own preferences, and since lua is under the MIT license it states I can use it for whatever purposes I want.
FloHimself
Enthusiast
Enthusiast
Posts: 229
Joined: Wed May 14, 2003 3:38 pm
Location: Lüneburg - Germany

Post by FloHimself »

maybe i am wrong..
so calm down dude..
User avatar
blueznl
PureBasic Expert
PureBasic Expert
Posts: 6166
Joined: Sat May 17, 2003 11:31 am
Contact:

Post by blueznl »

keep on going dracflamloc, irrlicht is indeed able to make some great graphics!
( PB6.00 LTS Win11 x64 Asrock AB350 Pro4 Ryzen 5 3600 32GB GTX1060 6GB)
( The path to enlightenment and the PureBasic Survival Guide right here... )
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

Ok, don't worry I'll keep working on it, just been a little stressed. My girlfriend moved to Georgia and I'm in Connecticut and it's been real hard on us. I didn't mean to offend.
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

HOLY CRAP!!!!! I RECENTLY HAD A HD CRASH AND GUESS WHAT'S GONE :shock:
Sorry guys, you shouldn't use this lib anymore, we'll just have to wait for OGRE3D 1.0 support. I *may* have a backup somewhere but I'll have to look through a TON of DVD-Rs, so if I find it again I'll be sure to resume work on it. Until then, all I can say is sorry. :oops:
User avatar
blueznl
PureBasic Expert
PureBasic Expert
Posts: 6166
Joined: Sat May 17, 2003 11:31 am
Contact:

Post by blueznl »

ooooooh :( :( :(

that's why people have to share sources...

:( :( :(
( PB6.00 LTS Win11 x64 Asrock AB350 Pro4 Ryzen 5 3600 32GB GTX1060 6GB)
( The path to enlightenment and the PureBasic Survival Guide right here... )
Blade
Enthusiast
Enthusiast
Posts: 362
Joined: Wed Aug 06, 2003 2:49 pm
Location: Venice - Italy, Japan when possible.
Contact:

Post by Blade »

Very sad news.... :( :cry:

I suggest to pick a GMail account, and regularly send your backups to that account. I do so.
Google HDDs will never fail 8)
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

OMG YES!!!

I just did a browse through my computer here at work and I found the 0.3 PB_Irrlicht sources. The i3d scripter sources are gone but screw those I just made that so I could learn lua in C.

So I'll recompile the lib and reupload it later this weekend, I'll need you to test it and make sure theres nothing I am missing in this version here at work. The source is dated 1/6/2005 so hopefully it's up to date with my latest release.
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

Darn... Looks like I'm one version behind. The shadows will be easy to add back in, (and i'll add that removenode function while i'm at it), but the event handler is the old way (0.3), so I'll need to rewrite that, it could take a while since I'm busy with school.

Good news is though that I found this stuff.
aaron
Enthusiast
Enthusiast
Posts: 267
Joined: Mon Apr 19, 2004 3:04 am
Location: Canada
Contact:

Post by aaron »

Definitely good news. :D Now, how about an off-site backup? :mrgreen:

Seriously though, I've got about 11 months of hosting left on a site that I don't intend to use for anything. 250Meg of storage, supposedly unlimited bandwidth, ftp, pop3 email, etc.... If you are interested, it's all yours. Use it for a website, use it just for offsite file storage, whatever. Its just wasting away, so I don't mind handing it over for free to someone that can use it.
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

I've got plenty of bandwidth, i actually just need to start burning cd-rw backups of all my code. i've been pretty lazy lately. Thanks for the offer though.
dagcrack
Addict
Addict
Posts: 1868
Joined: Sun Mar 07, 2004 8:47 am
Location: Argentina
Contact:

Post by dagcrack »

looks like he forgot to comment down the keyboard checking part..
and also he might of published the zip with an old dll as


Code: Select all

;**************************
; Test PB_Irrlicht Program
; fixed by dagcarck.......
;**************************

;GUI EVENT HANDLER
ProcedureCDLL EventHandler(*EventData.I3D_GUI_EVENT)
  If *EventData\EventType=#I3D_EVENT_GUI
    If *EventData\flag2=#I3D_GUIEVENT_BUTTON_CLICKED
      If *EventData\flag1=102 
        i3D_Node_SetMaterialFlag(1,#I3D_MATERIALFLAG_WIREFRAME,1)
      EndIf
    EndIf
  EndIf 
EndProcedure

;MAIN PROGRAM
ShipData.I3D_NODEDATA
PlanetData.I3D_NODEDATA

If i3D_Initialize3D(#I3D_DRIVER_OPENGL, 640,480,32,0,1,@EventHandler()) 

  ;set startup values

  
  i3D_SetShadowColor(255,0,0,0)
   i3D_SetBackgroundColor(155,90,90,90)
   i3D_SetWindowCaption("Test PB_Irrlicht - Version: " + i3D_GetEngineVersion())
   i3D_GUI_SetFont("./fontcourier.bmp")
   i3D_LoadMesh("./ship1.ms3d")
   i3D_LoadTexture("./ship1.bmp")
   i3D_AddAnimatedNode("./ship1.ms3d",1,1,1,1,1)
   i3D_AddAnimatedNode("./planet.ms3d",3,1,1,1,1)
   i3D_Node_SetMaterialType(1,#I3D_MATERIALTYPE_SPHERE_MAP)
   i3D_Node_SetTexture("./ship1.bmp",1,0) 
   i3D_AddDynamicLight(1,5,5,5,100,255,255,255,100)
   i3D_Camera_SetPosition(20,50,20)
   i3D_Node_AddDynamicShadow(2)
  
  ;create GUI
  EditBox1.l = i3D_GUI_CreateEditBox("Edit box sample",101,100,100,250,150,1)
  Button1.l = i3D_GUI_CreateButton("Wireframe",102,400,100,500,150)
  Static1.l = i3D_GUI_CreateStaticText("Static text is fun!",103,250,250,400,300,0,0)
  MsgBox.l = i3D_GUI_CreateMessageBox("Test MsgBox","Testing 1 2 3",104,1,#I3D_GUI_MSGBOX_OK + #I3D_GUI_MSGBOX_CANCEL)
  
  While i3D_IsRunning()
    i3D_Camera_PointAtNode(1)
    
    ;Start the rendering sequence - ORDER MATTERS
    i3D_BeginRender(1,1)
    
    ;Render to the screen 
    i3D_RenderScene()
    i3D_RenderGUI()
    
    ;Draw2DText must be done between beginrender and endrender, no other time
    i3D_Draw2DText("./fontcourier.bmp",10,10,"Hello and welcome to PB_Irrlicht by dracflamloc!",255,255,255,255,0)
    i3D_Draw2DText("./fontcourier.bmp",10,30,"http://www.dracsoft.com/",255,255,255,255,0)
    i3D_Draw2DText("./fontcourier.bmp",10,50,"X: " + Str(ShipData\xPos),255,255,255,255,0)
    i3D_Draw2DText("./fontcourier.bmp",10,70,"Z: " + Str(ShipData\zPos),255,255,255,255,0)
    i3D_Draw2DText("./fontcourier.bmp",10,90,"FPS: " + Str(i3D_GetFPS()),255,255,255,255,0)
    
    ;End the rendering sequence
    i3D_EndRender()
    
    ;update data and rotate object
    i3D_Node_GetData(1,@ShipData)
    i3D_Node_SetRotation(1,ShipData\xRot+0.05,ShipData\yRot+0.05,ShipData\zRot-0.05)
    i3D_Node_GetData(3,@PlanetData)
    i3D_Node_SetRotation(3,PlanetData\xRot,PlanetData\yRot+0.15,PlanetData\zRot)
    
    ;check keypress
    ; ExamineKeyboard()
    ; If KeyboardPushed(#PB_Key_Left)
      ; i3D_Node_SetPosition(1,ShipData\xPos - 0.05,ShipData\yPos,ShipData\zPos)
    ; ElseIf KeyboardPushed(#PB_Key_Right)
      ; i3D_Node_SetPosition(1,ShipData\xPos + 0.05,ShipData\yPos,ShipData\zPos)
    ; ElseIf KeyboardPushed(#PB_Key_Down)
      ; i3D_Node_SetPosition(1,ShipData\xPos,ShipData\yPos,ShipData\zPos + 0.05)
    ; ElseIf KeyboardPushed(#PB_Key_Up)
      ; i3D_Node_SetPosition(1,ShipData\xPos,ShipData\yPos,ShipData\zPos - 0.05)
    ; ElseIf KeyboardPushed(#PB_Key_Escape)
      ; i3D_Close3D()
    ; EndIf

  Wend 
Else
  MessageRequester("Error","Could not initialize the 3D device. Make sure you have PB_Irrlicht.dll")
EndIf

i3D_DoCleanUp()
End
So this guy.. dracflamloc, should rework it ;)
Dude, the idea is nice, having irrlicht on purebasic has great potential! and if you're going to release all upcoming versions for free, thats going to be the best decision you've ever made on your life :lol: :twisted:

Now: I would like to see a working demo (i fixed the code with what I could do, the mesh is not displayed tho).

I dont see why irrlicht works like that... load a mesh into memory and later add a "node" ... weird I would say... one would think that loadmesh will let you set a handle for the mesh and it will be loaded.. and thats about all.

What about the other functions of irrlicht? if i were you i'd start adding them once I got nailed down the big bugs and issues. once you got a stable all working demo, you should go on wrapp the other functions.
Blade
Enthusiast
Enthusiast
Posts: 362
Joined: Wed Aug 06, 2003 2:49 pm
Location: Venice - Italy, Japan when possible.
Contact:

Post by Blade »

dagcrack wrote: I dont see why irrlicht works like that... load a mesh into memory and later add a "node" ... weird I would say... one would think that loadmesh will let you set a handle for the mesh and it will be loaded.. and thats about all.
I had the same feeling, but supposed that it's how the Irrlicht engine works...
dracflamloc was just wrapping it, isn't he?
Post Reply