Need help with right tools to use in a project

Started by
12 comments, last by Felipe M 10 years, 2 months ago

Hey good people, I need your help.

Me and a bunch of people are starting a project, which is an MMO game, consisting of little mini-games inside of the game itself, and it HAS to run in any computer, android phones, ios tablets, and so on.

Problem is, we are very confused about what technologies to use, and I expect a little bit of help here. We are very inclined to use html5, because its very cross-platform and not player-based, like Unity. We think Unity is a bad idea because we know many users stop in the install player step.

Right, so to create an MMO cross-platform game, what would you recommend about Engines, IDEs, Networking Tools, and all sort of technologies. I appreciate any direct help or links to useful information about this stuff.

Advertisement

First, I would like to ask, what experience do you and your team have? For a MMO, whatever the tools you use, you will need experienced designers, network programmers etc. Furthermore, a MMO is a really big task which could take years to develope. Aside from that, you will need hosting and such.

Having the goal to create a massive multiplayer online game that runs on all devices while you aren't sure what platform you choose, may not be the best idea... HTML5 may be an option, but I haven't (maybe somebody else has) seen any MMO using it. The standard Unity networking is in my opinion not really great for MMO's. So you would have to rewrite that in case you want to use Unity.

I just don't think there's an easy way you could make a MMO that runs natively on all platforms, but you could certainly try.

I agree with ProtectedMode, making an MMO that runs on every platform is not a simple task. Making an MMO for one platform is hard enough. To make it simpler to manage, I guess a web(browser) based game would be the simplest for getting it running on every platform out there. Even though as ProtectedMode said, there hasn't been a lot of MMO games with html5.

This project seems like it needs a bunch of different technologies from different places to get working.

“Life isn't about finding yourself. Life is about creating yourself.” ? George Bernard Shaw

First, I would like to ask, what experience do you and your team have?

Right. We have little experience for now. Personally I am still on game developement college, and I will be like an intern in the company. We are still hiring, and we consider hiring people fitting any area we think we will need.

I just don't think there's an easy way you could make a MMO that runs natively on all platforms, but you could certainly try.

That means that making a game that runs on all platforms is difficult BECAUSE it's an MMO (or is the opposite)? Why exactly is that? What does an MMO have that makes it difficult to run in all platforms?

Another question. If we were to use html5, how would we code the networking part? Would we use pure javaScript? Would we try to find a game engine that offers network management? Or would we use a specific API/Framework/Library for that?

Are all of these options possible?

This is going to sound like I have a stick up my ass but honestly if you have to ask all of these questions, then you are not equipped to develop an MMO. MMO's are amazing but they cost a ton to develop and maintain, not counting the army of developers it inherently requires.

Your best bet is Unity3D (as a number of MMO's have been made using it and it has networking engines on its store) or HTML5. Using HTML5 you will likely need a network engineer at minimum if not a team of them.

Since this is in "Game Programming" rather than "For Beginners"

MMO has a meaning. To reach the level of massively multiplayer you are going to need a budget of at least a tenth of a billion dollars, but more likely reaching a quarter billion dollars. Monthly expenses for running the servers are going to be a high six-figure or possibly a seven-figure dollar amount. If you are asking this type of question, MMO does not apply.

If you want to make an online game, that is easy. The networking forum FAQ has links to a project where they built a simple online game server and client in just a matter of hours.

You mention using HTML5 for your game client. That means the client will be relatively simple, and most of the effort will be in the server. For the client you need to learn HTML and JavaScript. You need to decide what languages and tools your server will be written in, I'm guessing a mix of C++ or C#, SQL, and probably something additional if you plan on automating your build chain. You could use PHP or anything else if you want, that is up to you. Since the game will likely be graphical you will also need assorted art tools for 2D art and some audio tools.

You mention using Unity for your game client. That means the client will be relatively complex. Although Unity does have some support for networking many of the components (such as physics) are not easily combined for synchronized network play. You will need C# skills (or one of the other languages Unity supports, but I recommend C#). You will also need modelers, artists, and animators for 3D, or you will need 2D art. You will need a matchmaker server if you intend to keep the processing on the client side, and since you are already using C# for the engine you could leverage that for your server. If you intend to do much more processing on your server you will probably want to pick up a few more things, SQL or some other data system for accounts and leaderboards, plus much more for whatever processing you have in mind.

I *STRONGLY* recommend that before you start making online games you build a few offline games. They are much easier and you will learn many valuable lessons that you can apply to your future projects.

Thanks frob.

From your answer I could understand that the networking part is something apart form the technologies that I'll be using to build the actual game mechanics. Whichever the engine I choose to develop my game is, It won't have a high influence in the network part. Am I wrong?

I'm saying this because I care more about the game mechanics part. I won't have to deal with networking.

I was taking a look at html5 engines in this website: http://html5gameengine.com/

Taking a look at the most popular and best rated engines, I was thinking about going with EaslJS. Some other engines have bad comments about mobile support. ImpactJS they say it's not good for non-tile based games.

Our game will not be tile based, and will be 2d. Any suggestions on engines?

Thanks for your answer too emcconnell. But the topic is focusing a lot on whether we are able or not to develop the game. That was not my intention. I just want to take some tips and suggestions about tools to use. So I can take this to a discussion with my team.

EDIT: Oh, another question I forgot: There a lot of WebGL based engines. Does WebGL run natively on any device?

Networking is just one of many components you will need to figure out for an online game.

You can make text-based online games. They have been around for ages and they still have a following. The client can be as simple as a terminal server.

You described a HTML-based online game. That means you need to master the programming languages and tools for the client side and for the server side. Networking is just a way to communicate all the necessary information between the two sides.

Every decision you make can affect networking. Small decisions up front in your design can change a game from having minimal communications requirements to requiring enormous network requirements. Small decisions in your implementation details can make networking extremely difficult, or make real-world difficulties turn from frustrating issues into problems that require massive rewrites of code. Just because an engine supports network communication does not mean it will be a good fit for your design and your implementation.

WebGL is available on the desktop computer pretty easily, but availability is hit-and-miss on mobile devices. HTML5 is also hit and miss, some devices perform reasonably well (getting 10+ frames per second) and others perform at the seconds-per-frame rate, or they just crash. Mobile devices are different from desktop computers, most notably JavaScript performance is typically 20 to 30 times worse than the desktop environment, and memory is tight; once you get into 20 MB or 30 MB of data (such as many graphics) the web page is likely to die.



Building a game on a local computer is hard; you have a single program running on a machine, and this can take dozens of work-years to complete.

Building a networked game is much, much, much harder. Instead of one program on one machine, you end up with one or more clients running on multiple machines, talking with each other, and one or more programs running on one or more server machine, also talking to each other. All of the machines must be kept in sync, even when networks are unreliable, even when machines vanish off the internet for a time (such as getting shut off mid-play) and handle cases of mean-spirited players who will attempt to actively frustrate and attack other players.


If your group has never built any locally-played games before, I repeat that I strongly suggest you build one of those before jumping out into online development.

If the game is 2d, you might be better off using GameMaker Studio. It has some networking built in, but like Unity, I don't think it will be enough for a hardcore MMO. GMStudio does support all the bigger platforms, and it does support HTML5. Now, if you want HTML5, I don't recommend you try to have mobile users use HTML5. The sound is still not functionally sound(forget the pun) on most mobile platforms using HTML5, so you are better off using native builds. The advantage of using tools like GMStudio or Unity is that it isn't as difficult to create native builds for all these different devices using the same code base(and a few if statements :) ).

Now....as stated above, an MMO is a very large undertaking. I don't know how much of the work you personally are doing, or how much experience the team that is getting put together has, but I agree the above people that if this is a first, or even 10th project, maybe you slow down a little. Just get local multiplayer working, then multiplayer via network/internet, before you start worrying about having a master server(or group of servers depending on how massive that 'M' is in MMO).



Every decision you make can affect networking. Small decisions up front in your design can change a game from having minimal communications requirements to requiring enormous network requirements. Small decisions in your implementation details can make networking extremely difficult, or make real-world difficulties turn from frustrating issues into problems that require massive rewrites of code. Just because an engine supports network communication does not mean it will be a good fit for your design and your implementation.

Shit! networking is the end of the world! Run for your lives!!!

Sorry... I couldn't hold myself. Anyway, that's sad, bud good to know, thanks.

WebGL is available on the desktop computer pretty easily, but availability is hit-and-miss on mobile devices. HTML5 is also hit and miss, some devices perform reasonably well (getting 10+ frames per second) and others perform at the seconds-per-frame rate, or they just crash. Mobile devices are different from desktop computers, most notably JavaScript performance is typically 20 to 30 times worse than the desktop environment, and memory is tight; once you get into 20 MB or 30 MB of data (such as many graphics) the web page is likely to die.

Wow, that's really bad about the fps. If this is true there is no way making and HTML5 game at all...You mean the realy old mobile devices? Or that includes the medium value ones released in the past 3 years? I need to search for more info about that...

If the game is 2d, you might be better off using GameMaker Studio. It has some networking built in, but like Unity, I don't think it will be enough for a hardcore MMO. GMStudio does support all the bigger platforms, and it does support HTML5. Now, if you want HTML5, I don't recommend you try to have mobile users use HTML5. The sound is still not functionally sound(forget the pun) on most mobile platforms using HTML5, so you are better off using native builds. The advantage of using tools like GMStudio or Unity is that it isn't as difficult to create native builds for all these different devices using the same code base(and a few if statements smile.png ).

Yeah, I've seen some comments about game maker mobile sound issue. But I'll take a look in GMStudio little more in depth.

Now....as stated above, an MMO is a very large undertaking. I don't know how much of the work you personally are doing, or how much experience the team that is getting put together has, but I agree the above people that if this is a first, or even 10th project, maybe you slow down a little. Just get local multiplayer working, then multiplayer via network/internet, before you start worrying about having a master server(or group of servers depending on how massive that 'M' is in MMO).

Maybe I misunderstand the concept of an MMO. For me It was an online game that support players playing in the same ambient simultaneously. Didn't know it had so much to do with the "massive" part. (but makes sense to have something to do... right? ._.) How many players playing at the same time there has to be to be considered an MMO?

This topic is closed to new replies.

Advertisement