Since almost all I've coded recently has been quite small in scope and generally unfinished, I'm a bit uncertain on my ability to actually finish a project. Thus, I've decided to begin near the bottom of the holy game development ladder with Pong.
I set up a Subversion repository yesterday and started writing reusable libraries for threading, sound and video. So far the threads are good enough to use, the sound is still pending some design and the video lib is still empty.
All my development so far on this has been in FreeBSD, so learning how to write portable code is one of the goals I've set up for my self. In the end, I plan on having all my code compile transparently on at least GCC in Linux and FreeBSD and on Visual Studio 2005 in Windows.
I've recently started reading Code Complete and the quality of my code has gone up in my opinion. I tend to write the comments before I code, I check return codes and handle errors where they should be handled. This is a great improvement to my earlier coding style where comments were something you added while documenting after the project was finished, and errors were something that happened to other people.
Right now the big design decisions are what libraries I should pick for video and audio. At first, I was thinking of using the raw /dev/dsp device under UNIX and using the waveOut family of routines in Windows. After reflecting a bit over this, I believe that I should probably give SDL a fair chance. My past experiences with the audio part of SDL aren't that good, but it might work out better this time. As for graphics, the API obviously has to be OpenGL due to portability concerns.
It's probably time to code again now instead of babbling incoherently on the journal.