Summer

May 11, 2008 07:29

So it's summer.  Couple things happening:

*Looking for a job.  Need to support my laziness habit.  I should've looked for GTRI work earlier but ah well.
*Personal project stuffs.

The rest of my post will be about that one.

So I've decided to make it my policy to apply to Bungie Studios until they accept me.  I recently tried to apply but i found out that they have a policy that applications without work samples will be discarded immediately.  Enter my greatest weakness: my portfolio.  I have almost nothing polished and done enough to show people I want to impress.  I don't really see the point in polishing existing projects that I have.  Most of them are pretty infantile as  far as being displays of my technical prowess.  I need a new project.

Whenever I take on a project for myself, I try and make it a policy to always include elements  that I don't know how to implement.  This forces me to learn those elements and thus I grow as a programmer, and a human being.  So this time I decided to go a little bit further.  You see, I don't know how 3D graphics work.  I understand VERY generally how you take points in 3D and turn them into points in 2D.  I understand even less the typical 3D graphics pipeline.  3D graphics is a puzzle to me (10,000 picarats).  So I decided to build it.

I'm going to build a 3D Graphics engine.  In software.  Yes, I know, that's not very useful.  Why bother with that when I can just make some DirectX or OpenGL calls and let the good folks at nVidia or ATI worry about the rest?  Cuz that's not hardcore.  My engine will be slow, it will be awkward but it will function and I will be able to say with no uncertainty that I know how 3D graphics work.

SIGEL (Self-Instructional Graphics Engine/Library) Project Goal:
Build a 3D rasterization engine that displays changing 3D scenes in real time.  SIGEL should include support for texture mapping and dynamic lighting.

I'm pretty excited about it.  I bought a textbook that's been super helpful and already I understand a good deal more than I ever did before about how the 3D rendering process works.  And I'm just at the tip of the iceberg!  How cool is that?  Wish me luck people.

Oh yeah and I'm doing it on the GameBoy Advance.  Why, you ask?  Well, mainly it gives me direct access to its frame buffer.  I have no idea how to simply write a pixel to the screen in Windows, and I've no interest to learn.  Sure the GBA is slow and sucks at floating point ops but I'm not trying to write a commerical engine or anything here.  This is a toy.  A bigger toy than I've ever built, but its a toy.  An exercise.  The GBA lets me get low level enough to just write pixels to the screen and besides, how cool would it be?  Super cool.

Anyway, I'm super pumped about learning this shit. 
Previous post Next post
Up