Adventure Game Studio

AGS Support => Advanced Technical Forum => Topic started by: DGMacphee on Sat 10/04/2004 07:20:38

Title: Realsoft 3D -- need plug-in advice.
Post by: DGMacphee on Sat 10/04/2004 07:20:38
I got this full program free with a magazine. It's a very powerful 3D renderer.

I checked the website and it had a Software Development Kit.

You can use the SDK to write plug-ins for the program (similar to AGS), but the website also says you can "use the SDK to link Realsoft 3D functionality, such as the Photo Realistic rendering engine to any 3rd party application."

Does this means it's possible to incorperate the rendering engine into AGS?

Here's the web address:

http://www.realsoft.com/

Press the SDK button on the left for more info.
Title: Re:Realsoft 3D -- need plug-in advice.
Post by: Kweepa on Sat 10/04/2004 09:50:40
My reading of it is that yes, you could write an AGS plugin that would allow AGS scripts to access the rendering engine. You'd need to describe a scene, materials, camera etc to the rendering engine through C code and then tell it to go away and render it.

I guess if the scene was simple enough the rendering could be done in real time. It would probably be much the same as linking to an OpenGL renderer. It would be much slower though because it's using ray tracing, not hardware acceleration.

What would you want to achieve?
Title: Re:Realsoft 3D -- need plug-in advice.
Post by: Paper Carnival on Sat 10/04/2004 11:59:17
I guess it is possible to do that. I remember there was another plugin for a different 2d game making program which allowed it to use 3d.
Title: Re:Realsoft 3D -- need plug-in advice.
Post by: Ben on Sat 10/04/2004 16:17:29
I think the rendering engine is for creating high-quality raytraced images-- it would take much too long to render anything in real-time. It seems to be for prudicing still images or pre-rendered animations, not for games..

Not to mention the liscence costs $700.
Title: Re:Realsoft 3D -- need plug-in advice.
Post by: Rui 'Trovatore' Pires on Sat 10/04/2004 17:14:48
The idea seems interesting enough, but I tend to focus more on Steve's question - what would you like to achieve? I don't see any practival uses for it.
Title: Re:Realsoft 3D -- need plug-in advice.
Post by: DGMacphee on Sun 11/04/2004 01:54:17
I'd like to know if you could utilise the engine for OpenGL support (because it's faster than rendering) to develop an adventure game using real-time 3D graphics, like Gabriel Knight 3.

What I'd like to achieve is this: have a master shot of a scene where you can point and click (ala Blade Runner) and then when you do an interaction, say pick-up an object, the camera changes to a close-up of the character picking up the object.

I guess you'd need functions to define each file as backgrounds, characters and objects, similar to AGS.

What do you guys think?

EDIT: If it's not possible, do you think it's possible to write an OpenGL plug-in to incorperate Realsoft 3D objects in a way like I've described above?
Title: Re:Realsoft 3D -- need plug-in advice.
Post by: modgeulator on Sun 11/04/2004 09:35:40
It's possible, but it would probably be easier (and turn out less buggy) to write a whole new adventure game system using the realsoft engine from the ground up.
Title: Re:Realsoft 3D -- need plug-in advice.
Post by: Paper Carnival on Sun 11/04/2004 20:27:35
Because, as I said, I've seen another 3d plugin made for a 2d game, I think I can give some advice/ideas.

AGS will be able to run the game the exact same way it runs it now. The only difference is that above the 2d game there is actually another layer, which is controlled by the 3d plugin. Grr.. I can't explain it properly.

Let's say the plugin has functions like InitEngine(resolutionx, resolutiony), HaltEngine(), Render(), CreateCube(), LoadTexture(path), LoadModel(path) etc. In the game start function you must put InitEngine, in the repeatedly execute function you can put Render() and so on. Now, you can control 3d objects with these functions and combining them with existing AGS functions you can make a 3d game with AGS.

Suppose SetEntityPosition(model, x, y, z) is for placing entities. This is an example code which places the 3d model of roger to the appropriate position: SetEntityPosition("EGO3d" , character[EGO].x
, 0, character[EGO].y ). That would move the model the same way it would move in 2d (you'll have to do some (Maths) tricks if the character has not an equal horizontal and vertical speed, but I'm too lazy to explain).

Oh well, I hope you understand what I said, because I barely do myself :P