Early beta of my gameengine

Community Forums/Showcase/Early beta of my gameengine

Sweenie(Posted 2006) [#1]
Hi.

I've decided to release a very early beta of my gameengine.
I haven't named it yet so for now it's just called OgreRAD(will be changed).

[UPDATE 2006-03-20]
Switched to gcc so Blitz3D is now supported.

I haven't written any tutorials yet but I've included some very basic example apps which you can pick apart and play with. Check the OgreRAD_Imports.bmx/OgreRAD.decls file for more functions.
Most functions don't need explanation while others do, especially those functions that requires some special preparations, (basically all AddxxxComponent functions)

But just ask me and I will try to explain.

I've pretty much named the functions as I did with the Tokamakwrapper, but I know some people found that bothersome, so please come with suggestions on how I could improve this.

I haven't wrapped the functions into any nice Type "packages" so it isn't directly ObjectOriented even though the internals of the engine are.

Well, just try it out and tell me what you think.
And I say it again, this is far from a complete gameengine so alot of "basic" features are still missing.

I'm having a strange issue with Blitz3D which causes the engine to stop responding if starting from within the Blitz3D IDE.
So until that is solved you'll have to create executables and launch them instead.

Here is the library...
http://www.svenberra.net/ogrerad.zip

//Sweenie


Damien Sturdy(Posted 2006) [#2]
Good timing sweenie.

Just a question- What would we need to do to get this onto Mac/Linux? Iknow you said you had tried, just wondering if perhaps we could do it ourselves?


Exclent work :)


AntonyWells(Posted 2006) [#3]
yeah perfect timing. thanks for this :)


AdrianT(Posted 2006) [#4]
wow great stuff, had fun playing with this. Looks pretty easy :) Thanks for sharing


Sweenie(Posted 2006) [#5]
Just a question- What would we need to do to get this onto Mac/Linux? Iknow you said you had tried, just wondering if perhaps we could do it ourselves?



Well, in theory it would only be a matter of compiling the engine on Linux and Mac.

I wonder if I could put all required packages required to run Bmax, Ogre and Newton on a cd and make Ubuntu fetch them from there instead of the online archive.

Another option is to hand over the source to someone else and let that person compile it, but I would like to give it a try myself first, figuring it would be a good opportunity to learn Linux.


Damien Sturdy(Posted 2006) [#6]
Excelent :) Give it a go Sweenie :D


AntonyWells(Posted 2006) [#7]
Will you be adding functions similar to Mark's Tform entity functions?


I can provide you with some ogre code that does this if you need it.


Sweenie(Posted 2006) [#8]
Will you be adding functions similar to Mark's Tform entity functions?


Good idea, I've added it to the todo list.


Braincell(Posted 2006) [#9]
Keep it up sweenie. Great stuff.


Sweenie(Posted 2006) [#10]
The engine is now available for Blitz3D, see top post for download and info.


Falelorn(Posted 2006) [#11]
How about providing a read me with what people need to get it working.

Ran it, and keeps asking for d3dx9_29.dll

I have ogre installed as well.


wmaass(Posted 2006) [#12]
Falelorn try installing the d3d update package from the link below, worked for me.

http://www.threelights.de/index.php?page=projects/d3dx9_xx_dll_files.php


Falelorn(Posted 2006) [#13]
thanks ill give that a shot


Sweenie(Posted 2006) [#14]
How about providing a read me with what people need to get it working.

Will do :)


Ran it, and keeps asking for d3dx9_29.dll

Ouch! I thought the engine could run without it but obviously not. It's the DirectX plugin that is compiled against the DirectX February 2006 SDK.
The plugin is using some of the functions of the DirectX Utility library for texturecreation and therefore requires that dll.
Either download the dll separately as wmaass suggested or download and install the latest DirectX 9 runtimes.
Or if you prefer OpenGL only you can disable the DirectX plugin completely in the plugins.cfg file.


wmaass(Posted 2006) [#15]
Ok sweenie, pretty cool. Dumb question: Suppose I wanted to apply a different Shader to the monkey head. I tried replacing PPL_Shader with Rock for example and the monkey head just turns white. Same thing happens if I just edit the PPL_Shader. How does this work?


Sweenie(Posted 2006) [#16]
Well, the material for the rock is actually name "RockMaterial" (bad name actually since it's just a pale green material)
The file containing it's definition is named Rock.material but that is only the name of the materialscript file.
You could call the file BillyBob.material, ogre doesn't care, it's what's inside that matters as Ogre will parse every .material file it finds and build a library of materials.
If you want to keep the filecount down you could put all materials in one big .material file instead.

The reason the head turns white is because Ogre couldn't find a material called Rock and in that case Ogre reverts to the default inbuilt material which is plain white.
Check the file Ogre.log, it will in most cases supply you with enough information to solve any kind of material problem.


wmaass(Posted 2006) [#17]
Makes sense now, thanks.


Sweenie(Posted 2006) [#18]
If you want to know more about how material scripts work I suggest you read the online Ogre manual.
http://www.ogre3d.org/docs/manual/
or simply download one of the precompiled Ogre SDK's which contains the manual as well.


wmaass(Posted 2006) [#19]
Yep, looking now. This is great thanks for your help and keep up the good work!


AntonyWells(Posted 2006) [#20]
Hi Sweenie, d'you plan on releasing any more betas? Sorry if I'm being impatient :)


jfk EO-11110(Posted 2006) [#21]
can't test it right now, are there any screenshots?


Alienforce(Posted 2006) [#22]
This is so great!! Any more examples ????


John J.(Posted 2006) [#23]
Very nice - Ogre is a great addition to BlitzMax!

P.S. Is there any chance that Ogre's object-oriented structure could be retained? (Like this:)
object.SetPosition(10,10,10)
instead of this:
GameObject_SetPosition(object,10,10,10)



Sweenie(Posted 2006) [#24]
You could put all GameObject specific functions inside a type containing an instance of the gameobject.
Like this...


Type GameObject
 Field GOPtr:Byte Ptr

 Method SetPosition(x#,y#,z#)
  GameObject_SetPosition(GOPtr,x,y,z)
 End Method

 Function Create:GameObject(Name$)
  Local newGO:GameObject = New GameObject
  newGO.GOPtr = GOFactory_CreateGameObject(Name)
  return newGO
 End Function

End Type



Then simply use it like this...


 Local MyObject:GameObject = GameObject.Create("MyObjectName")
 MyObject.SetPosition(10,10,10)



Maybe I'll add it later, but for now I'm just focusing on adding more functions.


mongia2(Posted 2006) [#25]
good work!!

thanks!!


Filax(Posted 2006) [#26]
Excellent ! sweenie :) like alway :)


Sweenie(Posted 2006) [#27]
@Filax
I've hoped you would spot this, because considering what you have achieved with Blitz3D and Dx7 I'm very curious too see would you could achieve with Ogre and Dx9(or OpenGL for that matter) :)


AdrianT(Posted 2006) [#28]
heh, ogre has the best art path from 3dsmax I have seen anywhere. Can't wait to get a project underway proper, so I can put the time in to some proper artwork :)


VIP3R(Posted 2006) [#29]
Great work so far Sweenie :)

I'll be keeping an eye on this one, good luck with it!


Progi1984(Posted 2006) [#30]
Good job Sweenie !


Dreamora(Posted 2006) [#31]
Started an OO port of it.
Hope to get it finished today :)


Duckstab[o](Posted 2006) [#32]
Excellent engine mate could be a great half way house until other not going to mention it gets released..
Have always been interested in ogre and this looks the dog$ an OO port would round the engine of nicely looking forward to updates :)


Dreamora(Posted 2006) [#33]
OO port finished and sent together with a converted T5 back to sweenie.


Alienforce(Posted 2006) [#34]
Any news Sweenie ? :)


lo-tekk(Posted 2006) [#35]
This is really great. Don't stop halfway.

I'm having a strange issue with Blitz3D which causes the engine to stop responding if starting from within the Blitz3D IDE.
So until that is solved you'll have to create executables and launch them instead.

It runs fine from within BlitzEdit.

-------------------------
www.moonworx.de


Hambone(Posted 2006) [#36]
Will this work under Blitz+ ?

Allan


Sweenie(Posted 2006) [#37]
I will soon post an update.
I've been doing some documentation which will
hopefully explain some of my enginedesign decisions.

@Hambone:
I'm sure it does, unfortunately I don't have Blitz+ so I don't know how to declare external dll's with it.
Feel free to try though, start with Engine_Init and see if you could get it initialized.


VIP3R(Posted 2006) [#38]
Sweenie, do you mean the BlitzPlus decls?

If so, it's identical to the Blitz3D DLL declarations, you can use the same decls for both.


Sweenie(Posted 2006) [#39]
@VIP3R
That's great, thanks for telling us. :)

@All
I've managed to put together some kind of a designdocument.
It doesn't show all parts of the engine, but you'll hopefully get the general picture.

www.svenberra.net/ddoc.htm


Duckstab[o](Posted 2006) [#40]
Cool good to know you aint given up. any chance of a key/mouse driven sample of moving in a room and basic collision. :)

just to compare rendering and logic times for the engine


Sweenie(Posted 2006) [#41]
I'ts on the way.
If all goes well, it could be this weekend.


Pax(Posted 2006) [#42]
Sweenie, thank you very much for this, it's coming really nice.


Filax(Posted 2006) [#43]
Sweenie : If don't really understand what is the engine ?
It's Ogre ? or a 3D module made from Orgre ?

I'll try to make a look ! promise :) If elderscroll Iv let me
time :) :) :)


Duckstab[o](Posted 2006) [#44]
Ogre wrapped or Oblivion Mmmmm let me think :0

I know which I would prefer 1000h+ programming compared to several hundred hours and no potential gain...

Sweenie rocks da boat :)


Filax(Posted 2006) [#45]
I have try to modify an example to add shadows it work in
stencil mode but not in texture mode ? anybody know why ?

So :) Why my fu.. camera don't move ?




Filax(Posted 2006) [#46]
Hum ok ! you seem use Blitz3D key definition !


Filax(Posted 2006) [#47]
Ok i have find :) But there is a problem with MouseSpeedX ?




Sweenie(Posted 2006) [#48]
Set the second parameter of Engine_Init to true.
That parameter determines if mouseinput is to be captured or not.
Not though that it will capture the mouse in exlusive mode which will disable the mouse cursor.

Try this cameracode instead...



Sweenie(Posted 2006) [#49]
Sweenie : If don't really understand what is the engine ?
It's Ogre ? or a 3D module made from Orgre ?


My intention is actually to create a complete gameengine, not just a wrap of Ogre.


Filax(Posted 2006) [#50]
Hum ok :)

It's really cool !

But do you read my topic for camera moving ?

And : Is there a possibility to draw a text to dump var on screen .


Filax(Posted 2006) [#51]
It's cool :) Here is the full sample code :

You have made a great job sweenie ! I hope a release soon as
possible ! Any idea for the release date ?




Sweenie(Posted 2006) [#52]
Is there a possibility to draw a text to dump var on screen


In the next release, probably this weekend, you will be able to use Overlays which is Ogre's way of handling 2D graphics.
It's basically a kind of "noninteractive" gui which you define by scripts just as the materials.
They are very easy to use and I will provide some samples on how to use them.

Regarding the problem you had with textureshadows.
Try adding
GameObject_MeshCastShadows(Room,false)

When using Textureshadows, objects recieving shadows may not cast shadows.
TEXTURE_ADDITIVE also requires that the room material has lighting enabled which is doesn't by default.
You can change that by setting 'lighting on' in the room.material script.


Filax(Posted 2006) [#53]
Many thanks !

I'll try to understand how material is working, it's a little bit confusing for me at this moment. But i hope to have your
release soon ! :)


AdrianT(Posted 2006) [#54]
Filax, if you still use 3dsmax try the ofusion plugins at:

http://ofusion.inocentric.com/

You don't have to use the OSM scene loader files. and it creates all the scripts for you. There's also a Giles export plugin too.


Filax(Posted 2006) [#55]
Ok cool ! Thanks for informations :) And question ?

Rendermonkey can export Ogre Material if i'm remember ?


AdrianT(Posted 2006) [#56]
there is a rendermonkey to ogre plugin for rendermonkey yeah. Only problem is that is that the rendermonkey exporter doesn't support multipass shaders.

BTW there's a pro version of Ofusion coming out soon that supposedly lets you use the standard max material editor and shader export, has some other must have features for physics, splines, and helper objects.

Waiting to see how much that costs, and how well things progress on the ogre3D Bmax front.


Filax(Posted 2006) [#57]
Hi :)

I have try to make simple material with render monkey but it's

THE HELL :) !!!

Nothing work ! I have try to edit with notepad to see
references with external bitmap etc.

Download this file :

http://www.blitz3dfr.com/tempo/Shader.rar

Extract shader in media folder and try this code :



Sweenie ? Any idea ? why program bug with shadow and physic
when i use this material ?

Ogre say me alway :
Can't assign material GreyMonkey to SubEntity of Monkey10_Entity because this Material does not exist. Have you forgotten to define it in a .material script?


Sweenie(Posted 2006) [#58]
in the glitter.material script, change the this line...
param_indexed_auto 0 viewproj_matrix
to
param_indexed_auto 0 worldviewproj_matrix

It's a matrix thingy.

However, I can not get the actual glittering to appear, so some more adjustments are necessary in the shadersource.
Unfortunately I suck at this kind of math so I can't help you there. Perhaps someone on the Ogre forums know what to do.

Ogre say me alway :
Can't assign material GreyMonkey to SubEntity of Monkey10_Entity because this Material does not exist. Have you forgotten to define it in a .material script?

The monkey.mesh has a default material set which is named GreyMonkey, but I haven't defined that material in any of the materialscripts. If you wan't to get rid of that message, just create a material called GreyMonkey.


Filax(Posted 2006) [#59]
Hum ok ;)

It's a little bit rock n roll to understand :)


Robb(Posted 2006) [#60]
This is very very nice! :D
Is there a way to disable the Ogre setup window when you run compiled code? Its getting annoying to have to click through it each time I run a debug app.

Does the Quake3 BSP loader currently work in Blitzmax? If so how would I need to use it?


Sweenie(Posted 2006) [#61]
I will soon rewrite the init part of the engine and instead let you change the settings by code instead.
In the meantime I can fix so that it uses the previous settings if the ogre.cfg is found. Will be added in the next release which is slightly delayed.

It should work, but I have to implement a function for letting users choose scenemanager first, in this case the BspScenemanager. Will try to add it in the next release as well.


Filax(Posted 2006) [#62]
Do you have an idea about release date sweenie ? :)


Sweenie(Posted 2006) [#63]
Give me a couple of days. :)


Filax(Posted 2006) [#64]
ok :) !


Sweenie(Posted 2006) [#65]
Ok, got some bad news(not that bad really)...

Since OgreRAD is 99% developed in c++ and my goal is to make it usable from almost any language(c,c++,b3d, bmax, lua, python, pb, vb6, vb.net etc) I've decided to not put any more focus on wrapping it for bmax and b3d.

This doesn't mean it won't be usable in bmax or b3d, it just means someone else will have to wrap the functions if they want to use the engine during it's beta phase.

I will from now on focus on completing the engine instead.

I'm about to create a website for the engine and you are more than welcome to visit it when it's online.

You are welcome to email me about this if you have any questions or if you simply just want to yell at me ;)
That way we don't need to fill this thread anymore since this thread is meant for showing off Blitz creations anyway.


//Sweenie


Filax(Posted 2006) [#66]
You want develop a 'real langage + ogre' ? a blitzbasic like ?

I'm a little bit desapointed by your decision ;( snif ;)


Dripht(Posted 2006) [#67]
Yeah, since Cobra and BMax's 3d Module are likely to never be released, I was really hoping this would turn into something. Very disappointing.


Sweenie(Posted 2006) [#68]
ou want develop a 'real langage + ogre' ? a blitzbasic like ?


Nope, read the message again.

I'm definitely not writing a new "language".
It's still the same engine. I'm just saying that wrapping the functions and doing documented sample for bmax and b3d takes precious time that I should spend on extending the engine.

It will be usable from Blitz3D & Bmax but I rather do the wrapping when the engine is more complete.


Filax(Posted 2006) [#69]
Ah ! ok ! sorry but sometime my translator chipset forget
some stuff sometimes :)


Filax(Posted 2006) [#70]
Any news sweenie ? :)


Sweenie(Posted 2006) [#71]
It's coming along nicely.
I've been spending some time on automated lightmap-generation.
Since I suck at modelling I felt I needed something to spice up my ugly models. :)
I might have something to show next week.
I've also been working on something to generate wrappers automatically


Filax(Posted 2006) [#72]
Good ! :) I can't wait :)


Filax(Posted 2006) [#73]
Hi Sweenie :) do you have news about wrapper ?