Interestingly, I was talking to a pal of mine who's putting together a book. It seems like the book-publishing business is rather similar to the software publishing business (only a hundred times larger), but a lot more stuff is done through agents. His agent had just announced that he was out of business, so the friend was wondering where to go next. I suggested that he start photocopying and sending stuff to publishers directly. Hey, if it works for software publishers, why not for books?
Of course, a big book publisher probably gets a hundred submissions a day, and it takes more time to read a book than it does to evaluate a piece of software. I imagine an agent, if publishers trusted his judgement, would be more necessary for books than software.
Which brings me to my point. If you've got a cool game or demo, send it to everyone! The little publisher-pack I put together (a cover-letter, four color pages of screenshots, CD-R with CD-Stomped label, brown padded mailer) costs less than five bucks including postage. To send out ten copies to the companies most likely to want your stuff costs $50. To send out ten more copies to folks who might want your stuff costs another $50. To send out ten more copies to guys who probably won't want your stuff but might make an exception when they see it is another $50. At this point, you've covered a big chunk of your possibilities, and you've spent around $150. It'll pay itself back many times over if you get a bite.
Which brings me to an Important publisher-finding tidbit that's just come into being with the recent company buying-frenzy. . .
Don't think that just because you sent your product to the parent company that the sub-companies will see it!
For example, if you want Origin to look at your game, don't just send it to Electronic Arts and hope it'll filter down to 'em. Many of these companies are merged in name only, and they might operate under completely separate management. For example, one of the companies we were looking at was a discount-rack publisher owned by a giant meta-company. After sending our stuff out and finding out that nobody had even looked at it, my wife got on the phone to find out who had our stuff. It turned out that the discount publisher has a different buyer, and their offices are on a different coast from the parent company!
Don't be afraid to send out multiple copies to multiple people within a company, and don't be afraid to call 'em for follow-ups. Buyers are there to evaluate your product and to work with the prospective publish-ee. They won't be turned off if you're eager to find out if they're interested. The game market isn't as wide-open as you might think, and you've gotta be aggressive.
On an entirely different note, I've got something from the things I had thought of doing but somebody beat me to it file:
It's a gizmo called Zillions of Games, and it's a very cool idea --a toolkit and 4GL for making board games. Basically you define a board-game using a Lisp-ish language called ZRF. In this language, you define the move logic and merit functions for a game. You also provide the locations of the piece bitmaps and sounds. You can then play the game you defined, and the engine does all of the AI using the functions you defined. It comes with 292 games built-in (actually about 50 separate games, but each one has several variations) that you can play right out of the box.
I had an idea very similar to this when I was writing my board games. If you look at any book on game AI, you'll see the code to do a minimax game-tree search. This search will find good moves for 2-player perfect-information games, with a few limitations. For most of my board games, I use a class called MoveEngine that abstracts a minimax search (actually an negamax with alpha-beta pruning, which is an improved version). I define functions that make the lists of possible moves and a merit function that tells how much a board position is worth. The MoveEngine object does the rest, providing the best move available. I thought it'd be cool to make a standalone game engine that abstracted the AI and piece-animation. You could then attach DLL's to it that would define a board game. Looks like these folks did the same thing, but with the game stuff defined in Lisp. Probably a better idea, as it'd be more portable that way.
Maybe I'll still write my standalone board-game engine someday. While Zillions of Games is cool, there is still plenty of room for improvement. The games don't have as much individuality as my games do. Apart from the look of the board, pieces, and rules, they all look and feel pretty much the same. Hmmm. . .
In any case, check this critter out. It'd be great toolkit for a game-inventor. Even if you don't plan to invent your own games, it's worth it just to play the games that are built-in (chess, checkers, Chinese checkers, nine-men's-morris, etc). It plays 'em fairly well --I was able to match it at reversi and clobber it at halma, but it destroyed me at Fox-n-Geese and chess :)