Ignacio Castaño

Old Projects

I've always been a self-taught programmer. I started coding at the age of 13 and since then I have worked on a wide variety of projects. Unfortunately I didn't use to keep copies and screenshots of everything I did. So, most of the things that I did when I was a kid have been lost forever.

Pi Engine

The Pi Engine is my testbed for many different subprojects. That includes: A reflexive object system interfaced with a scripting language, my mesh processing library. Lighting using Spherical Harmonics. An OpenGL renderer that supports dynamic lights, bump mapping, perpixel lighting, stencil shadows, volumetric fog, simple shaders with different materials. And other cool stuff.


Ludicon

I was leading a small group of developers to create desktop games targeted at the casual gamers. We finished a small puzzle game that I didn't find very fun to play so it was never released. We may publish it someday at: www.ludicon.com

GameSWF

GameSWF is Thatcher Ulrich's flash library. I've made some small contributions and I wish I could have more time to spend on it, because it's a really cool project.

Magic Appearance

My interest in the Digital Mesh Processing field started with this tool. This is a normal map generation toolkit, that includes a programable rasterizer, a triangle mesh raytracer and a simple mesh manipulation tool. I wrote two 3dsmax plugins using this tool, one to extract normal maps from high resolution meshes and another to create normal and color maps for walls.

You can download them at the Demos section. See Research Interests for more info about this topics.

Titan 2

Realtime Raytracing

I also wrote a little realtime raytracer. The cool thing about this program was that the scenes and materials were described using a scripting language called Lua.

Software Rendering

This seems to be a thing from the past, but there are still many uses for a software renderer. I wrote a simple software rasterizer with some cool features like dithering and bilinear filtering, per pixel perspective correction and an optimized version, that computed the per pixel divide every 8 or 16 pixels. I currently use this software renderer to bake mesh attributes on texture space.

Engalus

This is the unsuccessful game that we were working on at Crytek. It was a sci-fi RPG/FPS similar to DeusEx, with a great storyline and impresive graphics. At that time I didn't have too much experience, but we did a great work with our limited resources.

Titan Engine

This was my first serious project, a nice quake3 level viewer. It's based on my old q2 level viewer, but with many improvements. The code is much better than what I'd done in the past, but today my coding standards are nothing compared to that. You can still grab the sources here, though. And I also have precompiled binaries that do not depend on quake3.

Q2 Level Viewer

Who has not written a quake2 level viewer?

Top-Down Landscape

This was my first windows program, using MSVC5 and DirectDraw. It was a 16bit software rendered of a landscape viewed from the top. I wanted to use it for a strategy game. At a later stage, when I got my first accelerated video card, I also wrote an OpenGL version.

Demo Effects and Little Games

When I obtained the Watcom compiler I started many other projects. I wrote many small demo effects and many small games, the coolest one was a third person shooter with a perspective view like in death rally, with textured sprites and gouraud 3d objects.

Raycaster

This was my first C program, a wolfenstein clone. I wrote it with a free version of Symantec C, an old dos compiler that I found on a programming magazine. At that time, programming was some kind of black magic, and I had very little math knowledges. I had no internet connection or any other source of information, so I feel very proud of this, since I derived all the equations of the perspective transforms, rotations and movement myself. I even coded some assembly inner loops!