Okay folks, this is called "Exposing my dirty laundry, with the hopes that I will be shamed into making progress".
I have about a metric ton open software projects right now. These are in no particular order, other than "As I see them while browsing through my project folder".
- Fishtank: a simulation of a fishtank, meant to be a game in the vein of all those Sim-X games. However, it was also a learning experience in strict MVC architecture, as the code base has three different front-ends: a command line interface meant to eventually be a telnet interface, a GDI+ GUI interface, and an XNA GUI interface. I had also planned on making a Silverlight interface, but then something shiny distracted me.
- Genetic Paint: this one isn't really important, but I never got it to work, so it bugs at me. It's a Genetic Programming implementation that is meant to reproduce simple bitmap images by evolving lists of drawing operations. It doesn't work, because I don't have a Neural Network image recognition system to guide the selection process. Like I said, it's not breaking me up to much that this one isn't done.
- Syntax Hilighting Textbox Control: yeah, Yet Another Textbox Control. However, there currently does not exist a good, free, syntax-hilighting textbox control for .NET, so I thought I would make one. I've made decent progress, I have all of the individual questions answered, I just need to put them all together, make a solid, bug free implementation, include some documentation, and then release it. Yeah, that's all, honest.
- P2P Instant Messenger: This was meant to be the starts for creating a game lobby system that did not require a game lobby server. The idea was to use the fail-safe features of P2P networks to ensure the game lobbies were always available, and use regular client-server connections to run the games. Not too torn up about this one either, as network code really isn't my thing, not what I get up out of bed in the morning looking forward to doing.
- Simple Finance Application: I have always felt that the main reason I don't keep up with tracking my finances is that Quicken and MS Money are too freaking bloated and complex. They have tons of features that I don't need, or similar functioning features that could be consolidated down to a single feature if they were treated more abstractly. I ran into a snag with my graph drawing not covering subsets of my data properly, so this project kind of fizzled.
- 2D Rigid Physics Engine: I might as well just throw this away and use something Off The Shelf. I am dissapointed with myself that I couldn't figure the math out on my own. I have everything except conservation of energy. That's kind of the most important part.
- Toxic Gas Cloud Simulation: this I started more to cheese off one of my bosses. I claimed I could write a better simulation of gas clouds than the several thousand dollar tool we were licensing. In about 2 hours I had a reasonable mock-up. She got really pissed at me, but I got more interested in the project itself.
- PocketPC Development: I have a bunch of little, one-off projects that run on Windows Mobile. They little things like a Notepad clone (because the Windows Mobile text editor doesn't make raw text files), a Dice Roller, a database for tracking progress over time while training for cross-country running, other stuff.
- PriorityQueue: just what it sounds like, a priority queue container for .NET, because .NET does not have one. It's actually complete, I just need to document and release it somewhere.
- Puzzle Games: I wanted to write a durth of simple puzzle games that I could just skin and sell for $5 a pop. I even wrote an entire framework for manipulating puzzles, with a Tetris clone as an example of using the framework. I just never got around to finishing an original puzzle, with a proper UI. That's where a lot of my projects end up dieing on the vine, whenever I get around to writing the UI.
- My Website: I have a bunch of things that I still want to do to my website to get it to the point where everything else is just content. Actually, most of it can be consolidated into a single CMS, but once again, I'd rather write my own CMS than use something off-the-shelf.
- Sheep Song: the game of song writing with colorful sheep. I really can't go into much about this one, other than once again getting bored with UI work.
- Spatial Server: a database for geographically oriented data. Traditionally, spatial databases are implemented on top of regular relational databases. This provides for the ability to reuse the SQL engine as a simple spatial querying system, i.e. "SELECT * FROM POLYGONS WHERE POINTS.LEFT > @BouningBoxLeft AND POINTS.RIGHT < @BoundingBoxRight..." you get the point. Unfortunately, the RDBMS is not optimized for handling such queries, and performance is abysmall in all but the most trivial applications. With an intelligent implementation of OctTree structures and a querying system that resembles SQL, I predict it would be possible to create a spatial querying system fast enough to use in real-time games without significant data caching.
- Issue Tracker Program: this I actually released! Internally, that is. Some of my coworkers are using a desktop-based issue tracking program I wrote. It runs off of a central database and uses a tagging-based system to track issues. The issues can be anything since its all based around the tagging system, but it's flexible enough to be used for defects, requirements, administrative notes, etc. I need to work out some bugs, improve the deployment model, and maybe add a few more features, and then it will be ready for prime-time.
- Optical Illusion V2: a follow-up to my now 3 year old optical illusion project.
- Word Search Game: auto generating word search boards based off of dictionary files. This is pretty close to being done.
- XML Editor Tools: a library of tools for editing XML files. The System.Xml namespace in .NET is pretty much inadequate for any heavy work. It's okay if you're just consuming XML files, but generating them is a completely different deal.
- Asteroids-like Online Game: I have a large portion of this done, but it's in Java, and I want to do it in XNA now. Once again, something shiny distracted me.
The sad thing is that I have ideas for other projects, I just haven't created project files for them yet.
WHAT WILL I EVER DO?!?!?