Flow3D Ogre Wrapper Beta

Community Forums/Showcase/Flow3D Ogre Wrapper Beta

AdrianT(Posted 2008) [#1]
We finally released a beta of our ogre wrapper for blitzmax lastnight :) Below are images of a game demo we are creating with it and the editor.



Currently Beta Win32, release date for the full version should be around Feb with Mac and Linux versions arriving soon after.

Flow 3D is an Ogre wrapper and game dev framework that includes Ogre for rendering, Newton for physics, CEGUI for skinned UI design, works with MaxGUI for OS native GUI creation similar to WXWidgets. Has Ofusion pro sceneloaders plus custom callbacks. Comes with FlowED scene editor, we released a beta of that last week. It allows you to build OSM scenes from scratch using .mesh files with user defined properties and very easy transform and heirarchy linking tools.

Flow Mods and Examples

DOWLOAD RAR version HERE. 7.4mb
DOWLOAD ZIP version HERE. 8.9mb

FlowED Beta Editor

DOWLOAD FlowED BETA. 10.7mb

For those new to Blitzmax and installing mods, The Blitzmax and MaxGui demo come together in a 6.8mb installer.there is a install guide on the Wiki at:

Blitzmax demo and Flow3D install guide!.

Blitz3D to Ogre3D/Flow3D guide!.

Here's the latest Command List

Flow OGRE, CEGUI Docs!

Flow Newton Docs!

Here's a simple commented code example of setting up an ogre app and manipulating a mesh.
Only 20 lines of code to set up Ogre and run a simple app :)


REM----------------------------------------------------
fG_GettingStarted.bmx

This demo will show you how to get started with initialising Flow3D and fG and start buidling your 3d applications as
quickly as possible. Note that with fG init you can use the config window, or specify several options. You don't HAVE 
to use the config window and you should have a look at the fG.init docs to see what you can do with it.
ENDREM-------------------------------------------------

Import flow.main

'Used polled input, fG does not FORCE you to use a given input system.
EnablePolledInput()

'fG Uses the AppTitle variable for its window, but later you may use fG.changeAppTitle()
AppTitle = "fG - Getting Started [Press ESC to Exit]"

'Init fG and let the user pick the options from the ogre config window
fG.init()

'Load some robot walker legs and scale them down
Global RobotWalker:TEntity = fG.LoadMesh("RobotWalker", "walkie.mesh")
fG.scaleEntity(RobotWalker, 0.5, 0.5, 0.5)

'Throw in a plane for them to stand on and give it the standard unit tile material
Global plane:TEntity = fG.createPlane("Plane")
plane.setMaterialName("tile1")

'Add some quick stencil shadows
fG.enableShadows()


'Basic Render Loop
Repeat

	'Put the FPS and triangle count in the apptitle
	fG.changeAppTitle("fG - Getting Started - FPS : " + fG.getFPS() + " Tricount: " + fG.TrisRendered())
	
	'Turn our entity 1 degree along the y-axis every frame ( LOCAL )
	fG.TurnEntity(RobotWalker, 0, 1, 0)
	
	'Render at (very) roughly 60fps
	fG.renderWorld()
	Delay 16.6666667
	
Until KeyDown(KEY_ESCAPE) Or fG.appTerminated()


Few more pics of our current project:




plash(Posted 2008) [#2]
You don't nee to use image tags.

The tag for a link is {a http:\\www.Google.com}Clicky.{/a}

Interesting.. is there any particular reason it always shows an error message box at the close of the program?

EDIT: I just noticed the part in the wiki talking about the 'Compile Error'.


AdrianT(Posted 2008) [#3]
yeah that "1.00 Zorder:0" dialogue only happens with MaxIDE itself caused because the output data from ogre overruns MaxIDEs output window. It doesn't effect the EXE's.

You should use a proper IDE like BLIDE which doesn't have the error. Plus Flow makes complete use of BLIDE's intellisense and code complete features so you don't need to refer to the manual so much.


plash(Posted 2008) [#4]
You really should use a proper IDE like BLIDE which doesn't have the error.
I do use BLIde, I just don't like to open it for small tests/samples (especially when I'm running a game I'd rather not restart).


MGE(Posted 2008) [#5]
> Delay 16.6666667

Why is that in the main loop?


Brucey(Posted 2008) [#6]
60 FPS aproximates to 16.666666 ms


SabataRH(Posted 2008) [#7]
Nice screenshots. You guys have been at this along time.. Nice to see you finishing it up.


Panno(Posted 2008) [#8]
works ok here . good work


AdrianT(Posted 2008) [#9]
We recommend Blide as the IDE of choice to use with flow. Examples of Flow with BLIDE intellisense





autocomplete



Makes things a lot easier to learn, and you don't have to check the docs so much.


Robb(Posted 2009) [#10]
Many thanks for the release of this.
Unfortuntely I'm having issues importing any models (in max or flowEd). Everytime I try to open a .mesh that I have made it gives me a runtime error :(

EDIT: OK I've discovered that is the material file exported from milkshape that was making it crash. hmmm....


AdrianT(Posted 2009) [#11]
you can't have duplicate materials at the moment. So if any of the material files have material scripts with the same name it will crash ogre.

It's the one annoying thing that makes ogre a bit of a pain to get to grips with at first. The way ogre works, on startup it loads all material scripts it finds in its registered paths. It's really easy to have a material name duplicated somewhere. The ogre log which can be found in the root/conf folder called log.txt keeps all the debug data.

Were going to update to ogre 1.6 within the next couple of weeks and hope to improve the duplicate media problem. Ogre 1.6 makes it easier to intercept the material loading at startup and change the behaviour.

I did start a wiki that has a migrating from b3d to ogre page. It covers a lot of this stuff, but a lot of people seem to be missing it.

http://flow3d.org/wiki/index.php5?title=Migrating_from_Blitz3d

I think I'll make it more prominent on the Flow web site, and maybe a sticky in the forum too.


AdrianT(Posted 2009) [#12]
Ok here are all the Ogre commandline tools. You can simply drag and drop over the exe's for default behaviour.

http://www.flow3d.org/tools/OgreCommandLineTools.zip 1.8mb zip

There are instructions provided in the readme if you need access to advanced options.

Pack includes

OgreXMLConverter
----------------
Converts between the binary and XML formats for .mesh and .skeleton. Will also allow you to generate LOD information if you are converting to the binary format. This tool is necessary to convert from the XML to OGRE's native runtime format.

OgreMeshUpgrade
Meshupdater Batcher updates all meshes in the same folder to latest version.
---------------

This tool upgrades a .mesh file from any previous version of OGRE to the latest version. You will be advised in Ogre.log if your meshes are of an old version;
OGRE can still load old versions but performance may not be as good as it would be with the latest version. You are advised to upgrade your meshes whenever youupdate to another major version of OGRE.

MeshMagick
----------

Command-line tool for performing operations on meshes and skeletons.

Usage:

MeshMagick [global_options] toolname [tool_options] infile(s) -- [outfile(s)]

Available Tools:

info - print information about the mesh.
meshmerge - Merge multiple submeshes into a single mesh.
optimise - Optimise meshes and skeletons.
rename - Rename different elements of meshes and skeletons.
transform - Scale, rotate or otherwise transform a mesh.

See MeshMagick -help=toolname for more detailed information.

OgreMaterialUpgrade
-------------------
Upgrades a .material script from any previous version of OGRE to the new
.material format. Note that upgraded scripts do not use any new features of the material, and you may find that some attributes are re-written as their 'complex' variants rather than their simplified versions (e.g. "scene_blend add" will be written as "scene_blend one one" because this is what 'add' maps down to.

You only need to run this tool if you have .material scripts from a version of OGRE older than 0.13.0. Material scripts written for 0.13.0 onwards do not need upgrading.