Game Development Community

Plan for Alexander Loren

by Alexander Loren · 04/04/2005 (11:20 am) · 0 comments

I've been working on a wrapper for Blitz3D with the Irrlicht Engine, on and off over the last two months. I've just gotten finished with adding the normal mapping features of Irrlicht into the wrapper, and I'm about to move onto shaders and user input. After those two items are added in, I'll be able to release the wrapper for closed testing.

Anyways, here's a movie showing off the newly added normal mapping, along with shadow volumes, per-pixel light and MD2 loading/animation. For those who don't have the time to download the video, or are stuck on 56k. There is a screenshot so you can semi-sorta see what it looks like, though it is far more impressive when running the video as you get more of a sence of what is going on. Also, here is the source to this demo, to show how easy it was to setup this scene and get it running.

VIDEO - 3.46mb
IMAGE - 116kb

Graphics 320,240,0,2
AppTitle "irrBlitz Console","Exit Application?"
eInit = irrInit(640,480,16,False,"irrBlitz",False,False)
If eInit = 0
     RuntimeError("Failed to create the device"):EndIf

irrAddFPSCamera()
defuseTex_001 = irrLoadTexture(".\datas\sto001.jpg")
defuseTex_002 = irrLoadTexture(".\datas\awall_color.jpg")
normalTex_001 = irrLoadTexture(".\datas\sto001n.bmp")
irrConvertNormalMap(normalTex_001,10)
light = irrAddLight(100,100,80,60)
anim = irrAddAnimator(light,0,0,150,0,250)
mesh = irrLoadAnimMesh(".\datas\room.3ds")
mNode = irrAddNode(mesh)
     mNodeTangent = irrSetMeshTangents(mNode)
          irrSetMeshTexture(mNodeTangent,defuseTex_001,0)
          irrSetMeshTexture(mNodeTangent,normalTex_001,1)
          irrSetMeshFlags(mNodeTangent,EMF_LIGHTING,False)
          irrSetMeshType(mNodeTangent,EMT_NORMAL_MAP_SOLID)
mesh2 = irrLoadAnimMesh(".\datas\faerie.md2")
mNode2 = irrAddNode(mesh2)
     irrSetMeshTexture(mNode2,defuseTex_002,0)
     irrSetMeshFlags(mNode2,EMF_LIGHTING,False)
     irrPositionNode(mNode2,-50,48,-120)
     irrScaleNode(mNode2,2,2,2)
     irrSetMD2AnimLoop(mNode2,EMT_STAND)
     irrAddShadowVolume()

While irrDeviceRunning() = 1
     irrBeginUpdate()
          irrRender()
     irrEndUpdate()
Wend

eEnd = irrEnd()
If eEnd = 0
     RuntimeError("Failed to destroy the device"):EndIf

As for my progress with Torque, I'm still overwhelmed with how much source there is to it all and how it is connected togather. But I'm still chugging along learning something new everytime I turn my head, hopefully I'll have learned enough in the near future to actully put something togather and finish it. Finishing something, anything, seems to be a huge problem I have, heh.