Thursday, January 29, 2009

My experiments with CrystalSpace

In an attempt to understand a 3d engine's internal layout, I decided to work with some free engine. Professional side is keeping me active on the Unreal3 engine, while I started my own experiments with CrystalSpace.
I downloaded the source code for the engine for mac and built it some weeks ago. I have now come to have read the documentation (partially)... and built the tutorials successfully. I would like to mention the interesting problem that i came across while working with the tutorial.

CrystalSpace is using the Appkit framework (NSApp) for the windowing interface with MacOS. The window comes up all right, and rendering is also proper, but I my app was not receiving the keyboard and mouse events. I found out after some struggling that MacOS treats the CS exec as a background process, hence does not deliver the events other than the rendering ones.
Only Cocoa processes are considered as foreground processes and receive all the events and a place in the dock.
As far as I understand, cocoa applications are simple folders with the name "XXX.app". MacOS shows these folders as single clickable (executable) files. To see the contents of these folders just RClk them and select "Show Package Contents".

As a solution I copied one of the Cocoa wrappers and changed it to include my app. I am now copying the generated executable into the wrapper as from the makefile itself.
I also modified the tutorial to generate a square out of the coordinates I provided... in my future works i will be loading meshes and providing the coordinates myself. I am now looking into the materials and wireframe rendering modes.
Unfortunately, I haven't found a screen capture utility with MacOS, hence cannot post the picture of my first humble experiment.

Thursday, January 22, 2009

Pulse3D stalled !!!

A lot of new stuff has been going on lately. This post is basically compressing the last 5 months into a few words. I had to stall pulse3d for an indefinate period owing to the excess work pressure building up at Nvidia. Also during that time, I was contacted by a Singapore based gaming studio, working of a MMOG. I took the opportunity as a break into the gaming industry, and decided to move here.
I'm working on the Unreal 3 engine, and it was now that I realized the large handicapp my design of Pulse3D was suffering with. I decided to get more info on the design of an engine by getting my hands wet using some of them first hand. As for now, I have stalled working on Pulse3D, but hope to come back someday to complete what I have started.
My loyal laptop stopped charging a few months ago, and I had to get a new one with a better graphics card... went in for a macbook. MacOS feels much like my first hands on Linux. Have downloaded and setup CrystalSpace, hoping that it will help me understand a typical 3D engine better.