Page 1 of 2

3D OpenGL in RunRev. Save iGame3D.

Posted: Mon Nov 20, 2006 6:36 pm
by Bill
iGame3D Pro External is an 3D OpenGL
extension to Runtime Revolution that supports
Newton physics engine and Lua scripting , quicktime image in/out,
3DS, OBJ, and Mesh files, bone node animation,
particles, OpenAL sound, and whatever you program it to mix all that into.

The external application has been in development with Revolution IDE since about July 2002.
You can download multiplatform games created with it here.
These however do not feature Lua and Newton, a fourth game for that was in the works.
Windows version of flying shooter (alt-F4 to quit), and a Mac Version

It has gone through many iterations and general ground up reworkings
each fall since July 2002. It gets better, it really does.

*** External discussion moved to this thread ***

--Bill

Whatcha need?

Posted: Tue Nov 21, 2006 3:41 am
by chris bohnert
Hi Bill,

I saw Scott demo your external a few years ago and think it would be a shame to let all your work simply vanish.

You've made the call to the community, but you haven't really described what you think it will take. Do you need someone to provide some bandwidth and a website for downloads? Do you just need someone to put up a wiki and let the community have at?

Is the code finished? Or is there more left to do?

Let us know how we can contribute ( HTML guy/ Documentation Guy / C programmer ) and I'm sure we can find a way to make it work.

--
cb

Posted: Tue Nov 21, 2006 5:01 am
by Bill
Thanks Chris.

The C code for the engine is "complete" but always in development
because Tobi insists on making it better as he
becomes a more adept programmer.

Documentation certainly needs to be done.
It seems to me the documentation should be built
in rev because thats where the external gets used.

We absolutely need someone with some programming sense and
application development experience to create a course of action for
bringing the external into the community from a runrev perspective.

A plan is a good second step, first step is becoming familiar with the project material in depth.

Here is a visual history of iGame3D, taken from my portfolio.

Here is a more complete visual history of iGame3D user interfaces, derived from screenshots since May 2002.

Basic iGame3D features to develop,explain, and exploit:

Posted: Tue Nov 21, 2006 6:50 pm
by Bill
Basic iGame3D features to develop,explain, and exploit:
  • 3D Camera
    3D Vertex modeling with import/export to 3DS,OBJ,and WTF
    U/V Materials editing
    Newton physics simulations
    Physics, Bones and scriptable animation
    3D spot and directional lighting
    3D particles with collisions
    Quicktime movie/image in/out
    3D Sound
    Atmospheric diffusion
    Path editing
    2D text rendering
    Mesh, Material, and Bone tags
    Scene Object Grouping
    Lua and Transcript scripting.
    Windows and Mac Compatibility
Where to begin?

Posted: Wed Nov 22, 2006 9:01 pm
by henk@iglow-media.nl
Perhaps I could help with documenting iGame3D.
I'm quite experienced with Axel, with VRML and X3D.
Let me know if I can do anything for you.

Posted: Wed Nov 22, 2006 10:01 pm
by Bill
Sure what operating systems are you all running?

Its a Windows and Mac OS X external.

Its good to see people come at it with wholly different
skill sets and backgrounds.

I'll contemplate "how you can help" further and come
up with something.

Its not easy to say "Grab the hydra by
head number five and hold on for dear life"

We could begin with 20 questions, 10, 5, whatever.
Tobi and I will answer the questions and you great people can consider
how best to document the information provided and resources that can accompany that.

I will try for five minimum myself and be back to post the loopy
developer asks himself questions essay to move things along.

Posted: Thu Nov 23, 2006 8:41 am
by henk@iglow-media.nl
OK, these are the platforms I'm on.

Posted: Thu Nov 23, 2006 5:56 pm
by Bill
Ok as promised, Q&A time.
1. what are the system requirements?
Windows PC 500Mhz or greater & OpenGL support
Mac OS X 10.3 500Mhz or greater

2. How does revolution access the external?
On Mac OS X
A. The File "iGame3D Pro external.bundle" is placed within the Revolution Application folder,
B. The File "iGame3D Pro external.bundle" is also placed within the same directory as the stack that will access it.
On Windows
A. The File "iGame3D Pro external.dll" is placed within the Revolution Application folder,
B. The File "iGame3D Pro external.dll" is also placed within the same directory as the stack that will access it.

I believe there are number of other DLL's that accompany the windows version of iGame3D External,
I've put in a request to Tobi to send me an updated Windows version.

C. Inside the cardScript of the first card of the mainStack, the following

Code: Select all

on idle handler code is placed.
on idle
  if the tool is "browse tool" then 
    try
      ig3d_Idle  ## iGame3D updates the 3D display at every revolution engine idle loop
   end try
end if
end idle
D. Inside the script of the mainStack this code is used.

Code: Select all

global gStackDirectory ## the path to the external and stack
global gIdling ## allow iGame3D to idle or not
global gIdleRate ## the speed  the idle repeats
global gExtOut  ## catches and stores external feedback from Lua
global gplayState  ## is the engine in edit  or game mode?

on preOpenStack whatStack
## gstackDirectory is required to find the path to the external and its associated data files   
set the itemdelimiter to "/"
  put char 2 to -1 of word 2 of the long name of stack (the mainStack of this stack) into tPath
  put itemoffset(".app",tPath) into tOS
  if tOS = 0 then put item 1 to - 2 of tPath & "/" into gStackDirectory
  else put item 1 to tOS - 1 of tPath & "/" into gStackDirectory 
  
put 1 into gIdleRate
  set the idleRate to gIdleRate
  choose browse tool ## comment out to open in stack edit mode.
    put true into gIdling   ## see card script ig3d_Idle
 ig3d_Init_s4i gStackDirectory, (topX),(topY),(rightX),(bottomY)  -- create GL window 
end preOpenStack

3. What auxillary files are necessary?
In the same path as the external there should be "/Data/Scripts/"
Within that is "core.lua", this is loaded automatically by the
external when found, and extends iGame3D with the Lua scripting language.

Further files will be added as a project progress, these will go into that
"Data" folder as well, these files will be images, models, levels, scripts, particles, etc.

4. What engine commands and functions are available to the developer?
There are 120 commands and 48 functions currently in the external, too many to list here.

5. With the simplest set up (as shown above), what can a user do with the engine?
With the most basic code (above), the user is able to use the mouse and keyboard
to move around in a 3D environment that consists of a single grid plane.


I've uploaded a "simplest stack", for Mac OS X.
use externalCommands and externalFunctions in message box to get a list of functions and commands.
Hit me back with the first question that comes to mind.

Building a stack with the external becomes complicated quickly and this version is about the barest bones one I've come up with to date.

I'll have a Windows version as soon as I hear from the Mr. Opfermann.

Posted: Sat Nov 25, 2006 11:29 pm
by Bill
The iGame3D Windows External DLL's are here.

There are a number of them and they are simply placed in the same directory as Revolution.

Posted: Fri Dec 08, 2006 4:11 am
by Timshark
How is the progress of this? This is an extremely interesting development.

I tried those windows externals, put them in the same directory, and started the stack. no reaction.

Posted: Sun Dec 10, 2006 11:07 am
by Bill
Well I've been swamped, over 2,000 scans in seven days, so no progress.

I believe for the windows stack you will have to go to the stack inspector and set the external reference to the .dll version of the external.

I've never run the stack in Windows myself, but I'm pretty sure
the stacks I uploaded are looking for the Mac OS X bundle and not the .dll.

Posted: Sat Jan 06, 2007 10:03 pm
by Bill
Just an update, there has been progress over the holidays.
The external commands and functions have been documented
in the source code and a number of broken items, including
the GL window drawing issue on Windows have been fixed.

There's much work to do, having tested it on Parellels
I recalled a number of stacks that we knew would not
operate on Windows. Coming up with an efficient drag
and drop file system has been repeated challenge.

I'll be back with a link to the updates soon.

Posted: Sun Jan 21, 2007 11:53 pm
by Bill
Adding to the suspense this week is the update to Universal Binary.
Apparently emulating PowerPC code on Intel Macs results in one third the speed for vertex operations.

The initial attempt at the update resulted in 135 Xcode errors.
An hour later an intel version is working, but PPC died.
Hooray for progress.

Posted: Sat Feb 03, 2007 4:59 am
by stevenp
Hi, Bill. I'm a brand new Revolution owner and this is my first post on the forum. I just had to say that I am impressed with this plug-in. I primarily program in languages like C\C++\C#\VB, etc. so Revolution will be the highest level language I've worked with.

I will definitely try out this 3D engine once I learn Rev (it shouldn't take too long.) When I get to that point I'll probably have questions to ask and could probably eventually contribute with examples, tutorials, etc. I wouldn't want to see this project die.

Also, a Linux version would be awesome (I know you're swamped, though.)

Posted: Sat Feb 03, 2007 5:30 pm
by Bill
Hey Steve, thanks for the response.

The external could certainly use fresh eyes and hands working with it.
Just holler when you are ready to go where few devs have gone before.