I'm only a young programmer, and Java is the first language I have encountered, yet that hasn't stopped me from being ambitious! I am tired of sitting around dealing with toy problems, making silly applications in both the console and in graphics which take me no where. I've decided I want to plunge into the deep end of the pool, seeing as that's the way I find I learn best as an individual. Therefore I've spent a long time rigorously designing an online (browser based) social MMO game.

This project is going to sap a whole lot of my time, and I would love to go ahead with it, yet this worries me, seeing as it will not be much more than a year before I head to university, and I do not want to lead myself down a rabbit hole if Java won't provide me with the tools I require (I will not be able to learn another language over this year). From what I have gathered from my research and experience in the language, Java's diversity, high-level complexity, power, object oriented nature and class libraries will perfectly set me up for a project such as this. However, there is too much questioning these days as to how powerful it is compared to other industrial standard game scripting languages such as C++, many seem to disregard it out of what is almost concern over it's true power, and this seems unlikely to be resolved in the near future seeing as people seem settled in their ways.

Language has nothing to do with whether a game is successful It also has nothing to do with whether it works.

There are MMOs that have had very successful launches and those that have had bad failures.

I am not sure that really helps you however because what likely is a factor requires knowledge with a wide range of topics. And I would suspect that you don't have that knowledge.

However almost the only way to get that knowledge is to build something and find out for yourself what works and what doesn't.

Learning the following topics are likely to help you to get closer to creating this and also can give you at least some of the general knowledge that I referred to above.
- TCP and sockets
- Threading.
- JEE servers
- Graphic display issues especially related to distributed updates.

Knowledge of the first two extends well into other languages. Knowledge of the third can help in understanding the architecture of basically any business related client/server system. The last most extends to games but there are some other niches where the general knowledge is helpful.

In terms of producing something that actually works in a year I would suggest that you write down all of the main features that you want your game to have. And then attempt to cut everything from that list that you can. And of the items remaining minimize them to do as little as possible. That might seem extreme but it is more likely to let you get to the point where everything actually works. (Trying to build everything might be a good learning exercise but is unlikely to lead to anything that is 'complete'). If you succeed in building something smaller then you can add to it (which by itself is a good learning exercise.)

A very difficult knowledge base is dealing with the issue of 'size' in terms of of real MMO. When there are many, many people doing many, many things there are many, many ways that the game system can fail. There are no easy general solutions to all of the problems. The following site is not specific to games but does often provide insight into social sites. It provides articles specifically about large systems and ways people deal with them. The topics are very advanced but it is the best source I have found and there is no way to learn about most of it with practical experience one just has to keep reading and hope some of it sticks (which is what I do.)