Hey all. I wanted to throw my hand into the pile and say that I'll be working on code for this project. Buzz asked me to help out yesterday, and I will oblige. So count me in.
Let me address some of your issues, KnightCrawler:
1) Very unbalanced. Almost every character was created by 15-year olds to one-up all other characters.
We can create a limited character creation system to help with balance. I sort of have this picture in my head about having X amount of "points" you can allocate to characters attributes. And you can only use up so many attributes before a character gets labeled as 'broken'.
In fact, you could make a cool tier system this way! We could have a point allocation system, then have different tier classifications depending on how many points you use. IE: 50-70 points = Low tier character 70- 90 points = middle tier character, etc... That way you can have a "low tier" match or whatever.
You could even have a really cool single player experience this way. You would start out with a low tier, and gradually get more points to add to your character as you level up by winning matches. Might be cool.
That is a system that may or may not create a balanced character creation system. In principle it should work (it's essentially just like WoW, Pokemon, or any other game with customizable characters) but the devil's in the details, you know?
2) Illegal. The game itself is perfectly legal, but 99.9% of the art and music are ripped from other games.
Everything we, the developers, create will be 100% Open Source and created by us (or using an Open Source library). None of it will infringe on any existing copyrights.
That said, the game will allow user generated content. But none of this content is ever stored by, approved by, or in any way affiliated with we the developers. So any C&D's or DMCA Takedowns will be promptly thrown away.
3) Art mish-mash. Sure, Smash has characters with differing art styles, but they're created thoughtfully so they at least look like they all belong in Smash. With MUGEN, you have characters of vastly different pixel-to-height ratios, art styles, palettes, etc.. They look out of place next to each other, and not in a good way.
4) Poor production values. Yup. Most of this comes from unprofessional ripping, or stupid stuff like people recording game music for the stages with their cell phones, but the engine also makes it seem as if... the characters and stages and effects are all disjointed somehow.
6) Stupid ideas. Tons of stupid character/stage/music ideas make it to mods. Funny for a few seconds, a waste of time/space/consideration afterward.
All of these are essentially the same. The problem here is with quality of user generated characters. That's not really problem, though! That's the whole point. For people to be able to make their own content. Some will be better than others. Not much we can do, except maybe have a list of "featured content" that we think is particularly cool.
5) Lack of community cohesion. There are a thousand different mods for MUGEN and people mostly play whatever they like best (or what makes them feel coolest, more likely). If you were to make a Smash Bros. clone, I'd say to have options independently adjustable, but there can be a few groups of options together that are commonly used.
This is the same with Smash today, though correct? The problem isn't so much as one with programming, but the community itself. Look at Brawl today. There are still bitter feuds about what settings to use! I think the idea is to make the default settings as good as possible, so that people tend to stick with those with little variation.
Okay, now on to some design issues. Buzz asked me to look at networking for online / LAN play. So let's talk about that. We have some decisions to make:
1) Synchronous vs Asynchronous.
This is a question about how to handle network latency. In general, there are two ways of handling it, synchronous gameplay and asynchronous gameplay. This might be best explained via example....
In Starcraft (or Brawl) every player in the game sees exactly the same thing. Players' world maps are synchronous.
Network latency in this situation manifests itself as input delay. Kind of like playing on a laggy TV.
In games like Halo, however, the game is asynchronous. There is one player who is host. That player has the "true" world, while every other player has their own inaccurate versions of that game world.
Network latency in this situation manifests itself as jumpy character movement, or inconsistent game worlds. (IE: Attacks "going right through" your opponent but missing)
2) Centralized vs Decentralized
I'm pretty sure we're going to go for a Client - Server model. So that counts as centralized. But decentralized is possible in principle. It's worth mentioning.
3) TCP vs UDP
Do we want to use TCP or UDP for action transmissions? The tradeoff is as follows:
UDP is fast, and results in less network latency. But sometimes your packets will get lost... and there's nothing we can do about it. This is how Halo works. Sometimes your bullets just get lost, because they use UDP.
TCP is slower (it retransmits lost packets, and waits for replies and acknowledges) so you'll get an increased network latency. But there will be no lost actions.
Other design assumptions:
I figure we'll use a 1 packet = 1 action architecture. The exact protocol I can design.