PDA

View Full Version : My Window Manager (VFA) , Game Engine and stuff



phibermon
07-02-2010, 02:56 PM
Hi Guys,

I've not posted here very often but I thought I'd show you something I've been working on :
http://img685.imageshack.us/img685/1815/crafti.jpg


It's a cross platform Window Manager/GUI and widget set that renders via OpenGL. You'll see in the screenshot that there is a lot of game engine code, Heirarcial Scene Graph, Geometry editor, physics etc

but...

I've discontinued development on the 2D Engine as I'm now developing a 3D engine.

However the GUI lives on, There's still work to do before I'm happy with it but it's got all the usuals : windows, windows in windows (aka MDI) buttons, treeviews, listviews, drop downs, sliders, radio groups, messaging, clipboard etc etc

If anyone is interested in obtaining the 2D engine code (similar in feature set to Jarrod Davis's Quantum Engine, but openGL) or would like to know when I'm releasing the GUI for you all to use, then please drop me an email : phibermon@hotmail.com


I develop in Free Pascal (using Lazarus) and there's probably a little work to do to make the WM compile in delphi plus I've got to pad out the API a little and then write tons of documentation. It's currently called the VFA Window Manager.

phibermon
07-02-2010, 04:12 PM
http://img38.imageshack.us/img38/391/craft2y.jpg

chronozphere
07-02-2010, 05:26 PM
Awesome! :)

Vinzvega
07-02-2010, 07:22 PM
How...
That's look amazing !

paul_nicholls
07-02-2010, 10:13 PM
Wow! I would certainly be interested in the GUI then it is ready! :)

paulfnicholls AT gmail DOT com

cheers,
Paul

phibermon
08-02-2010, 10:30 AM
Certainly :) I've been very careful to keep dependancies to a minimum, the only major features it does not currently have are skinning (thou you can define colour schemes for any window) and vector fonts. It Currently uses bitmap fonts for the speed however, all the usual metrics are used so it would be simple to drop in a freetype library.

I use SDL for my host window creation and input events but all the WM really needs is an OpenGL context and mouse/key events triggering.

I'm currently finishing off the messaging sub system, I initially wrote the WM as a quick viewport mananger to display and control multiple cameras and I didn't stop, however there was never any seperate thread or message handling, WM events were triggered directly from the thread that handled input.

The messaging sub-system will queue up messages which will then be pumped by the WM, this is mainly to allow each window in the WM to run in a seperate thread.

One idea I had (and greatly expanded by my good friend Paul) is to have the WM environment load 'applications' as compiled libaries, then the Framework (with sound and networking added) could be distributed stand alone and people could write apps/games to run inside the framework.

Some manner of cross platform byte code, JIT(PaxCompiler?) or perhaps scripting (RemObjects slooow) would allow for a near java functionality, distributing a single compiled/scripted package that will run on the trinity (Windows, OSX, posix derivitives (Linux, BSD))

Or I may not do that ;) any thoughts?

if you were to use my WM for some of your own projects (even just for displaying debug info during development) what kind of features would you want? what things would you concider too bloated?

JSoftware
08-02-2010, 11:16 AM
Is remobjects pascalscript really that slow? I used it in the last game I made, and it was never a bottleneck. Even doing the rendering from there didn't affect framerate

Nice GUI btw :)

phibermon
08-02-2010, 11:31 AM
If you're sure, I just assumed that it would be a bottleneck.

With all the usual callbacks I have (onclick, onclose, onmousemove etc) exposed to the scripts and a method for defining windows, buttons etc it would certainly work well..

But where do I stop? I could end up creating an entire RAD aka Lazarus ;)

If I had to guess, I should imagine that debugging a complex array of scripts within my environment using the functionality that RemObjects provide, would not allow for anywhere near what a compiler level debugger can offer...

Compiled apps.. scripted apps... JIT apps... too many choices!!


I'm very interested in JPasKernel btw, there was a project I found ages ago (I think it was called OSDK) that was a template for creating an OS, contains the interupt setup, real-mode stuff etc

That had a FreePascal Template, I played with it, managed to get it compiled and running but just didn't bother after that :) I had all these ambitious plans of implementing enough of DOS and Go32 to get something like VenomGFX (fast Vesa graphics library) running.

If you carry on with the project and ever get to the stage where you need a GUI? please get in touch, i'd *love* to see a pascal OS :)