using irrlicht to export?

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
SirParadox
Posts: 2
Joined: Fri Jan 12, 2007 11:28 pm

using irrlicht to export?

Post by SirParadox »

Hi. I am a volunteer game developer and am in the process of trying to replace the ancient pos current engine with something better. In my reading I decided Irrlicht was for me, compared to ogre and others.

My problem is simple yet complex. For many of the textures, animations, and cinematic we do have the original 3ds/tga type files. However since this game went from developer to developer it seems the last one sabotaged us. There were many things in the code that made it impossible to compile without fixes. Some things were blatantly deleted. Years have gone by and all is well. However now that we want to replace the 3D engine so we went and looked at all the 3d graphics file sources. Sadly many random, and very important, models are just not there.

We do have the final game models, however some are stored in a format created by the original developer. We even have the converters 3ds2theirformat.exe and it's source but writing an inverse converter is beyond my skill level.

I theorize that since we have the source, we regularly compile and release updates. Could it not work in theory that we fire up the game, let it read and visually display said texture / animation / cinematic... Then we tie into Irrlicht and have it export out a file?

Is this possible? In theory it sounds perfect. I'm sure we could use any linked 3d engine to do this, but can Irrlicht?

Are there tools out there to help us do this?

Any pointers? Any suggestions? Anyone want to volunteer to work on a real game converting the engine? :> Trust me this is fun stuff.
pinballwizard
Posts: 67
Joined: Wed Aug 02, 2006 1:47 am

Re: using irrlicht to export?

Post by pinballwizard »

SirParadox wrote: My problem is simple yet complex.

...

However now that we want to replace the 3D engine so we went and looked at all the 3d graphics file sources. Sadly many random, and very important, models are just not there.
We do have the final game models, however some are stored in a format created by the original developer. We even have the converters 3ds2theirformat.exe and it's source but writing an inverse converter is beyond my skill level.

I theorize that since we have the source, we regularly compile and release updates. Could it not work in theory that we fire up the game, let it read and visually display said texture / animation / cinematic... Then we tie into Irrlicht and have it export out a file?
What do you mean "tie into Irrlicht?" And why do you need to tie into Irrlicht? You have a data file in unknown format. You have the source code for an engine to read and display that file on-screen. Why don't you just modify your engine source code to dump the data to disk instead of displaying it? Surely the data gets converted into triangles/polys to be sent to OpenGL/DX. At that point in your code, just dump the triangle data to disk in the desired format. Textures might be trickier but the data has to get passed to the graphics library at some point... just intercept the data at that point.

Of course this requires you to modify your engine source code and write new source code to dump your models out in a format readable by Irrlicht. You have to write that yourself. But since you have the source code to the engine, this should be easy.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Maybe porting the loader to Irrlicht would be as simple. Moreover, you would not have to give up optimized structures available in the proprietary file format.
sio2
Competition winner
Posts: 1003
Joined: Thu Sep 21, 2006 5:33 pm
Location: UK

Post by sio2 »

<sarcasm>What's the problem? Just retrieve the old data from your backups or source control. </sarcasm> :twisted:

Joking aside, if you have source code for loading the format then you can write an Irrlicht loader to read the model data and load it into Irrlicht.

Alternatively, you could write an importer for something like MilkShape3D which will then give you myriad export options and allow you to edit your models again.
SirParadox
Posts: 2
Joined: Fri Jan 12, 2007 11:28 pm

Post by SirParadox »

Thanks all for the replies. I love the sarcasm.. :> I think the original developer was using the flame method of source control tied into sneakernet.

We have source control now Razz

pinballwizard > Any pointers on how to go about this. I'm very good with the game engine, heck even good at getting the existing 3d engine to do some new tricks. I have some limited working knowledge on d3d/dx. However I have 0 real experience with this part. I do believe the current 3d engine which reads the files returns to me directx formatted vars. What you said is what I am hoping can be done. Although you have no suggestions on exactly how you just prove my theory that this should be able to be done. As long as the current graphics are making it to a rendered 3d d3d world, we can get them out :>

hybrid> We have no source code on the file converters, just the output, some of the graphics originals, the 2 converter exe's, and wow two .h files. If we could get Irrlicht to just read these formatted files I would gladly jump off a roof for cash in a bet 'can you bounce'

sio2> Ahh yes. Funny sarcasm. I know I've come to the right place when I read exactly what I would have posted in reply myself. Again we lack the code for the 3d engine and the 3d converters. We have the source for the actual game. The 3d engine is tiny, old, gay, etc, etc. It's built on .. brace yourself... directx 6. We've tried a few 3ds type software on the few graphics originals we have but we either get a 'go away this is way too old and I wont even try and load it' or a great wire mesh with no texture. More learning is required on our part.

So keep up the good feedback. Although no answer is found this is great input. I thank all.

To summarize:
Engine
We have the source code to the game, working, released often.

3dEngine
We have the header files to the 3d engine, linked to the libs.

3dFiles
We have the release 3d files.
We have the 3d graphics converters 3ds2who and tga2wha.
We have the .h files for these converters.
We have approx ??% or so of the original graphics files including jpg's that look 10000 times better then what they outputted Razz

We want? oh baby we want Irrlicht. How do we get it? Easy write wrappers for the 500 calls to the current 3d engine and provide it with todays menagerie of formatted files.
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

If you want to send me the .h files for the converters, maybe there's there might be enough information in the .h to determing the format of the .who and .wha files.

I don't mind taking a crack at it, I deal with this crap at work all the time, albeit not from someone who did it on purpose just from someone who sucks at coding :P
Image
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

If you have the engine sources you have the source for the who/wha loader. That's all you need to write a proper Irrlicht loader or even a converter back to some better format.
sio2
Competition winner
Posts: 1003
Joined: Thu Sep 21, 2006 5:33 pm
Location: UK

Post by sio2 »

If I understand correctly, you have the "Engine" sources but not the "3D Engine" sources? Do you mean something like Quake2 where the game was in quake2.exe but a dll did the rendering? That could be tricky.

A bit more info would be useful. Is there a public release of the game that we can see?
pinballwizard
Posts: 67
Joined: Wed Aug 02, 2006 1:47 am

Post by pinballwizard »

SirParadox wrote:
pinballwizard > Any pointers on how to go about this.
Oh, it's definitely possible, though it might be tricky. I now see that you have your game engine source code, but you do not have the 3D engine source code (only the headers), so you don't have the source code that actually does the drawing. This makes the problem more difficult.

But even if you don't have the source code, you can extract models. For example, see OGLE, http://ogle.eyebeamresearch.org/ which allows you to extract 3D models from OpenGL games even if you don't have the source code. There's probably something similar for DX.
Post Reply