"Humanity has advanced, when it has advanced,
not because it has been sober, responsible, and cautious,
but because it has been playful, rebellious, and immature."
Tom Robbins

Programming

Here you'll find some of the programming projects I worked on, on my free time. I've always been interested in computer graphics programming, specially real time graphics and games. I've worked mostly with OpenGL and C/C++.

Note: You can clink on any of the thumbnails to see a larger version of the image.

A ROAM Landscaping Engine

roam This is a small 3D landscaping engine that implements the ROAM algorithm. A built-in virtual machine was added to the engine, it is possible to write small scripts to control the camera's behaviour. The engine has a compiler which transforms the text script into byte codes and send them to the virtual machine interpreter.

This project started being my first attempt at programming graphics and OpenGL, and ended up being my final degree dissertation for the Informatics Engineering degree at Universidad de Belgrano in Buenos Aires, Argentina.

You can download the full source code for the engine, including the YaCC code for the compiler (which is integrated into the engine). The dissertation documents is also available in PDF format. Unfortunately I documented the code and wrote the paper in spanish and there's no English version.

Download: zip Visual Studio 6 Project | zip Binary (win32) | pdf PDF document

QuadTree Based Landscape

qtlandscape I implemented an application which generates a landscape based on a heightmap. The heightmap is analyzed at loading time and an extended-quadtree structure is generated, which is used to frustum-cull nodes during rendering.

The application was developed in C++ using the OpenGL API and the SDL library. This makes it source-code portable between all platforms for which SDL and OpenGL are available. It was tested in Windows and Linux platforms.

Full source code is available for download.

Download: zip Visual C++ 6 Project | zip Binary (win32)

QuadTree Based Rendering

qtrendering This is an "3D quadtree"-based rendering program. I started this as a personal project of a full top-view racing game which never saw the light. The map rendering code works, though. I wrote a MAXScript (for 3DS Max 5) which takes a full scene and exports it into my own file format, recursively subdividing the scene to build the quadtree, which is used by the renderer to recursively cull objects outside the view frustum. Shadow mapping is also implemented.

Once again, OpenGL and SDL were used for this project, making it portable among several platforms.

Full source code of both the renderer and the 3ds Max script are available.

Download: zip Visual C++ 6 Project | zip Binary (win32)

Space CTF

spacectf A networked "Capture the Flag" game I started working on together with some collegues back in Buenos Aires. The game was supposed to be a space version of CTF, in which you control a small spaceship instead of a person. A mixture of a very simple space sim and CTF. It is based on OpenGL, SDL and SDLnet (although I was not involved in the networking). The project remains unfinished since I left Argentina to the United Kingdom to take my MSc degree.

Source code for the whole project is available for download, although it is not working...

Download: zip Visual C++ 6 Project (client)

Iconos32

This is not graphics related... it's a small command-line program which saves the position of all icons in you desktop and saves them to an ASCII file. Icons can be restored to their original positions later. I wrote this since some programs have the unpleasent habit of re-arranging all your desktop icons without your permission.

Full source code and executable file (tried and working on Windows 2000 and XP) can be downloaded.

Download: zip Visual C++ 6 Project | exe Executable

Copyright © Edgard Lindner 2005. All Right Reserved.