I've been thinking back to when I posted this originally lately, and thought I would weigh in on this subject again. I've told about my experience before in other places here, but will write it again for people who haven't seen it. I took two semesters of C++ and one of Visual Basic, all about 4-5 years ago. This just covered the basics and with the single exception of loops, has really not helped me. In other words, there is no way I could today (or then, for that matter) program a playable game in either language. I looked up my last test in C++, and it was to make a program that would act as a store inventory and track the amount of x item left for 10 different items. The clerk would type something like "sold joystick" and it would have to track that there was one less, and tell the clerk what if any were there upon command. Very basic, and for all intents and purposes I think it is safe to say "I have no previous programming experience".
I have spent the last few months really studying all the code, books, tutorials, and old threads posted here to try and learn Assembly. While my efforts have for the most part paid off (at least in the sense of my 2600 coding abilities

) I really don't think most people have the combination of time, motivation, and maybe in some cases the ability to do this if they have never programmed before.
So the real question is whether or not this is possible. It was interesting to see how different people responded, and I think in some sense almost everyone who did is correct. The short answer is yes, it can be done... to an extent.
The reason a lot of games that exist look similar is because the limitations of the machine forces them to be. So when a new idea came out, other people instantly jumped on that idea and created similar games. You could take a few of these different "genres" (for lack of a better term) and implement them into a code generator. For example, if "multi_sprite_side_scroller" was an option, it could follow games like frogger or freeway. While you couldn't create
Go Fish! with this, you could maybe make a game where you are a baby turtle, and have to make it to the ocean (at top of screen) while animals go across the screen looking to "eat" them. Three lives, and you are done. Each time you make one, the game speeds up. Ok, it's lame, but it's still an idea for a similar game.
Other "style" games it could recreate:
1. Combat (was mentioned earlier) could become say "ninja" and flip ninja stars instead of 50 mms rounds (even though they look exactly the same). Or, change the sprites to cowboys and change your joystick to a different controller setting and play a western shootout.
2. Space Invaders... into something.
3. Multi-Sprite scroller as mentioned above
4. Side scrolling game where player is at edge of screen. It could be in space, in the air, in water, in a cave, etc. Once this option was picked, those could be further options. Think Chopper command or Armegaddon! where you have to dodge incoming asteroids in order to land on the main body to blow it up... only you never get there
5. maze games (pacman)
6. room based games (adventure)
I had came up with a few other generic ideas, but these are the ones that stuck. It would not be possible to really create an "ending" to these games without actually coding one in, so the program would need to keep score and or maybe reset itself if a playfield is "finished" or player is killed. Speaking of Pacman clones, probably forget the dots or the ghosts... probably something two player only.
With such limitations, it would be impossible to create anything cart-worthy. I think this tool would have two main uses:
1. create a very simple 1 player only with no real AI or 1 vs. 1 game that someone couldn't otherwise create by actually coding it. They could play it on their own computer or burn it off on a cart for themselves. Since these games are really basic (and would be easilly known to have developed from the tool) they shouldn't really be sold to anyone. Or take your new game and post it as a game pitch. If it's already visible, then you know it is possible and you won't be wasting the time of other programmers with something like
this.
2. a development tool for programmers. This would be a super quick way to see what a game might look like and if it is worthy of your further efforts.
I think it's possible and wouldn't be terribly difficult to create, especially if several people worked on it together. One person could create something like the player movement subroutines and this could all be brought together using include files from a javascript creator. It can be done, and I think it would be semi-useful. I'm off to Alabama for up to a week, I'm interested to see what comments will await me upon my return home. I think this would reach a bigger audience than batari's program, but would also not be quite as useful in creating games either. Like everything else, it's always a trade off.
-JD