When I was at University, I started writing a game called Commando. I used the SDL graphics library with C++ and developed on Windows.
I followed a tutorial that taught the basics of movement and input. I drew some horrendous graphics of some flat buildings and a stick man holding a gun.
I got the basic stuff working so that the protagonist could move, jump, shoot and lob grenades. I added a shooting star that periodically appeared in the night sky, stars that came out, distant backgrounds that scrolled by more slowly than the buildings in the foreground. I added fountains, grenade explosions and ricochets, all based on particle effects. I added gravity.
However, the protagonist was alone. He had no one to share these beautiful things with, or kill. My development stalled, but I’m not sure why.
I’m better at finishing things these days: playmary.com, theperceptron.com and my band’s records are all complete and consumable.
However, writing games is different to making websites and writing songs. With the things I finish, the dependencies are minimal and the units self-contained. Web pages may call on central functionality, but they can be written in relative isolation. My songs have different, minimally related sections and often change key and time-signature.
Games have a few central areas of activity - the input manager, the renderer, the object update loop - that are fed by hundreds of integrated parts. They are more like people.