Home, Presentations, Concept Drawings, Screenshots, Renders, Photos
A game by Johanna Nellen, Christopher Kurtz and Max Odenbrett
Firefly is a game where you must navigate a bug called Firefly through the world he lives in. Firefly will always follow the light and avoid shadily places. His aim is to build a nest and it is your task to help him: Gather all the different materials that are needed in order to create a shelter for the young Fireflies.
But keep in mind: Firefly does not survive without food. So plan betimes to move Firefly to where he can find something to eat and drink that will restore his powers. If Firefly has recovered his strength he can go on collecting useful materials. But be aware: There are dangers awaiting you in Firefly's world that you will have to face.
Final Modifications to original project proposal and alpha
The Light Pad
Light Pad has been designed to be a simple, yet high quality input device. The light is meassured by a webcam shooting a paper surface on which the user performes gestures by casing shadows onto that surface.
Our Prototype is constructed using a solid paper box with a Logitech QuickCam for Notebooks inside. Construction of the Light Pad therefore was as cheep as 40 bucks.
Sadly the WDM-Driver of the Logitech Webcam is pretty bad and only delivers 2 to 3 frames per second. Sadly we can only access the cam via WDM.
The area covered by the camera is roughly 16cm x 21cm in size. This makes for a fine input area that can easily be operated with one or two hands.
Other Photos of the Light Pad:
In order to recognize the user gestures we went in for a very simple aproach. We calculate the center of all "light" pixels and the center of all "dark" pixels.
To deal with the auto-correction functions of the webcam, we determine the average color intensity of the image. Then we take a pass about all pixels that are brighter than the average color and determine an average brightness. The same applies to the dark pixels.
Afterwards, the center of pixels brighter than the average brightness is beeing calculated (cf. image: red square). Similarly the center of the dark pixels is calculated.
Finally, we can determine the vector which the Firefly uses to escape the shadows and find a brighter spot. This vector (orange and violet squares) is scaled by the amount of shadow that is cast onto the surface (red vs. blue areas).
Interact with lights in a 3d-environment
We strife for a plattform independent way to interact with a virtual environment using input from a webcam.
To that end we have looked into the capabilities of PortVideo, ARToolkit, OpenCV and Qt. Due to compilation difficulties we finally decided on using OpenCV for Webcam input. Sadly this toolkit does not access Webcams under Windows via DirectShow and therefore is pretty slow. Multithreading the game has not lead to any success. It seems that the call blocks the entire system process. As a result we can not acheive stable framerate.
Our 3d-engine is 100% home-brewed and uses SDL to create plattform independence. OpenGL was the natural choice for rendering a cross-plattform game and for image loading we use DevIL. Meshes are loaded using our own file format.
In our game we use the following features of the engine: