I try to always have a side project that I’m working on outside of work. Not only is it fun for me, but it helps me learn in areas I might not otherwise. Besides, the world doesn’t have enough mp3 players.
Mercury Audio Player – This was my first major project. It’s a full fledged media player for all versions of Windows! It supports skinning, video playback, and stream ripping. I’m really proud of it and had a great time working on it. (Note – Certain mp3s may not play due to copy restrictions)
Metroid PC – How do you follow up something like Mercury Audio Player? You rewrite the NES version of Metroid for the PC! This is written entirely in C++, no emulation. The graphics were taken using screenshots from the ROM. I painstakingly copied each sprite, saved it as a bmp, and then ran it through a tool I wrote that paletted them. That way I was able to simulate the color changing tiles just like the NES did. Then I used a room editor I wrote and re-created every. single. room. Yeah this project took a little under two years.
Corona Software Renderer – This little guy is the epitome of ‘tech demo’. It renders and animates Quake 2 models with diffuse and specular lighting, and that’s pretty much it. The notable thing is it’s being done entirely in software. No DirectX or OpenGL. The real challenge was the tesselation, but I learned a lot from doing this project.