Currently Beta Win32, release date for the full version should be around Feb with Mac and Linux versions arriving soon after.
DOWLOAD LINK IN HERE.
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, you can check out our previous post HERE!. Which allows you to build OSM scenes from scratch using .mesh files with user defined properties and very easy transform and heirarchy linking tools.
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!.
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
Code: Select all
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()
Blitzmax is a multiplatform enhanced OO basic language that compiles to C++ and is oriented towards game development.
Function pointers
Fully dynamic arrays
Inheritance and polymorphism
'By reference' function parameters
Byte, Short, Int, Long, Float and Double numeric data types
Array and string slicing
Flexible 'collection' system for dealing with linked lists etc
Low level pointer handling
UTF16 strings
The ability to 'Incbin' binary data and access it as easily as if it were a regular file
External language support for interfacing with C/C++/ObjectiveC or assembly code