*EDIT Sorry, this is not relevant for the actual topic (Java vs C#), but for the discussion that started about MMOXYZ development.
Here’s my personal opinion and experience (I’m a passionate programmer as wellso that’s only about the coding part - no game design, no art… ):
When I started out more than 6 years ago, my initial goal was to create a MMORPG as well (since I love these type of games and I used to play one for several years - actually a total waste of tens of thousands of hours).
It’s still a goal, but I accepted the fact long time ago, that it is indeed a task you shouldn’t really approach without any solid code base, without proper project management and probably not alone if you want to make something decent.
You may think you got everything right there, and even if you’re a genius, you’ll get stuck sooner or later in detail and software architecture. These huge projects always need a solid code base, otherwise you’ll get lost. The standard libraries are not enough for that IMO.
So how did I personally start off?
When I realized the old Unity networking wouldn’t satisfy my needs, I started to write my own. It’s taken months of effort for research about protocols and advanced, low-bandwidth custom protocols, lower layer access, state synchronization, time synchronization, and much more… and the requirements for difference game genres made it even more complicated… and it’s currently still alot to do in order to run even more reliably and more performant (I’ve successfully run tests with thousands of clients tho).
If you use the “newer” UNET, perhaps this isn’t necessary - I’ve never tried. But it could probably save alot of time and the source is publicy available on a repository to dive in and tweak it for your personal needs.
Anyway, having that task (partially) accomplished, at that point, I realized alot of the other stuff that I “just threw” into my projects was rendundant, not very well structured and not re-usable at all. I even lost the overall overview in regards to my code… This became even more obvious when I kept re-writing code for non-Unity projects at work + for university.
Since that, I’ve no longer worked on any concrete projects (except during my students job + studies) and instead I’ve been focussing on a very large framework that is determined to serve as my personal solid code base. Leave alone the software engineering part and how everything could play together nicely, the extensive Unit Testing takes alot of additional time and sometimes reveals what kind of weird architecture and dependicies I recently introduced with new components.
Of course, everyone is different and perhaps you’re way better than many of us and perhaps you can adapt to Unity faster than other developers, but it usually sounds alot easier than it is in reality.
Like already stated by someone else, MMOs usually do have a multi-million budget and the teams do often consist of very experienced developers (10-20 years game industry and such).They’ve got experts for security, networking, algorithms, complex math… everything.
If you’re just aiming for a simple login + the ability to let multiple players move around: That can be done in a week if you work on it with some knowledge and passion. There are also SDKs that offer this “out of the box”.
But once you start to implement actual “game logic”, this explodes…
I’m not gonna tell you to stop going for an MMO. It’s important to follow your visions and ideas, but be prepared for any of these options:
- you might fail
- you might get tired of it very soon
- you might get tired of it very late (which is usually very disappointing)
- you might never get tired, but never finish it as well (also disappointing)
- you might invest alot of time [and perhaps money] to finally achieve a first basic prototype
And some other options I just left out. But 5 if obviously the one with lowest probability - that’s just a “fact” taken from all the reports posted by very passionate and very gifted game developers.