Jump to content

  • Log In with Google      Sign In   
  • Create Account


Need help with right tools to use in a project


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
13 replies to this topic

#1 L i n c k   Members   -  Reputation: 148

Like
0Likes
Like

Posted 10 February 2014 - 02:54 PM

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.


Edited by L i n c k, 10 February 2014 - 02:58 PM.


Sponsor:

#2 ProtectedMode   Members   -  Reputation: 1080

Like
0Likes
Like

Posted 10 February 2014 - 03:06 PM

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.



#3 h0wser   Members   -  Reputation: 207

Like
1Likes
Like

Posted 10 February 2014 - 03:54 PM

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

#4 L i n c k   Members   -  Reputation: 148

Like
0Likes
Like

Posted 10 February 2014 - 04:11 PM

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?



#5 emcconnell   Members   -  Reputation: 804

Like
2Likes
Like

Posted 10 February 2014 - 05:56 PM

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.



#6 frob   Moderators   -  Reputation: 18892

Like
1Likes
Like

Posted 10 February 2014 - 06:51 PM

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.


Check out my personal indie blog at bryanwagstaff.com.

#7 L i n c k   Members   -  Reputation: 148

Like
0Likes
Like

Posted 10 February 2014 - 09:02 PM

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?


Edited by L i n c k, 10 February 2014 - 09:05 PM.


#8 frob   Moderators   -  Reputation: 18892

Like
1Likes
Like

Posted 10 February 2014 - 10:24 PM

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.
Check out my personal indie blog at bryanwagstaff.com.

#9 kburkhart84   Members   -  Reputation: 1568

Like
1Likes
Like

Posted 11 February 2014 - 04:52 PM

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).





#10 L i n c k   Members   -  Reputation: 148

Like
0Likes
Like

Posted 11 February 2014 - 05:26 PM

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?



#11 frob   Moderators   -  Reputation: 18892

Like
1Likes
Like

Posted 11 February 2014 - 09:12 PM

 

Every decision you make can affect networking. ...

 
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.

 

Retrofitting network play into an existing game can range from "very easy" to "requires a full rewrite". Don't take it too lightly.
 

 

WebGL 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.[/size][/font][/color][/background]

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...

 

Check out WebGLStats for some numbers. They say for devices they track that 7% of Android smart phones support WebGL, 5% of tablets. Other stats trackers have different but similar numbers.

HTML is designed for documents, not for apps.

Depending on what you are doing, what device you are on, and how your app is coded you might get pretty good numbers. I've seen a Nexus 7 from last summer get into the 30 FPS range for a WebGL game, but a 1.5 GHz quad-core is far above the average device in the wild.

We kept a bunch of "typical" phones around the office for several games, and using the default browser almost all of them immediately crashed when we were doing our first round of simple HTML5 games, which is why we are still sticking to apps. We discovered (somewhat surprisingly) most in our demographic were just using the stock browsers.

Now it is certainly possible that your demographic is different.

It is possible that everyone who browses to your site on mobile might be on Android devices. And that they all have Opera Mobile installed, or you might limit yourself to a portion of WebGL that is implemented on Chrome Mobile or Firefox Mobile. And all of those people might be running on new, high-end devices, all purchased within the last year.

As for Apple, iOS7 doesn't support WebGL yet, and considering Apple's stance on running iApps that didn't pay the app store tax, well, don't count on it any time soon. It took four years of their customers screaming at them before Apple permitted Flash-anything, and even then, well, if you have an iPhone you know it's current state. Don't expect to build your game in full-featured Flash and have Apple mobile customers enjoy it.

 

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?

 

There have been online games for ages. Text-based multiplayer online games date back to the early 1970s.

The term "MMO" came about when people needed to differentiate smaller-scale online games with large scale undertakings. It depends on who you ask, but the cutoff line tends to be around 100,000 active users at the minimum. Below that you can usually use fairly small-scale infrastructure. Simultaneous online users is different than MAU or DAU, and games that require only matchmaking and partial mesh P2P node helpers need far less infrastructure than fully-hosted worlds. A simple world needs less infrastructure than a complex world. One well-written server can easily handle 5,000 simultaneous users for a simple game, which might equate to 30,000 'active' users. You might need two or three dedicated machines for a larger user base. One very popular title I worked on (not an MMO) had weekend peaks around 150K simultaneous players and only needed two racks of (heavy duty and seriously taxed) server machines, one in the US and a second in Europe.

The transition from "large online game" to "MMO" is usually not about the exact number of players.  The process means branching out from a few boxes at a single site or at a colo site, transitioning to a system of hundreds or thousands of machines at multiple sites around the globe. If a handful of people on 24/7 on call support are maintaining your servers, that is not an MMO. 


Check out my personal indie blog at bryanwagstaff.com.

#12 kburkhart84   Members   -  Reputation: 1568

Like
0Likes
Like

Posted 11 February 2014 - 09:17 PM

Well, GMStudio doesn't have any sound problems that I know of on NATIVE mobile builds, which would end up as APK files for Android for example.  It is an issue with trying to use HTML5 on mobile devices.  Desktop browsers work mostly well when running HTML5 games, moreso Firefox and Chrome, but mobile browsers don't work near as well, and that applies to the sound especially.

 

About MMO, I'm not sure what exact number there is to define where it turns from MO to Massive MO.  But I do know that there is a very big difference between coding a game where players simply connect to each other, one being a "server/client" and one where you have a single server running somewhere and you can have 100s of people connect to the same, persistent world.  Generally, MMO, at least to me, refers to a game with a persistent world.  I think that this is much of the difficulty in such a game.  Example, if you have a simple game server(which maybe has a player as a client as well) running "matches" like a typical FPS game, it is much more doable than a game where the world is constantly running and people connect when they can play, which is more of a "typical" MMORPG kind of game.  I'd think that once you get the first model running, it isn't but a matter of efficiency (and network speed) how many players can connect to a given server, but once you add on the persistent world, the whole thing changes.





#13 frob   Moderators   -  Reputation: 18892

Like
2Likes
Like

Posted 12 February 2014 - 12:30 AM

GameMaker could be a viable option, yes. LibGDX is another good cross-platform system that plays well on iOS, Android, Web, and PC.

 

 

 

As for the online servers, the confusion between "persistent worlds" and "MMO" is something new to the last few years of game players. There are three basic tiers:
* A few players connect for a session, play a game, and are done. Worlds can persist or not, matches can be random or not. "Online game."

* Hundreds of people playing together at once, infrastructure is a very small number of servers. Various names: graphical MUD, web games, occasionally "massive online", online games, etc.

* Typically millions of players (although many hundred thousand players can also fit). Infrastructure is generally multiple data centers around the globe. "MMO".

 

 

The small online games are relatively easy to build and nearly free to maintain. Players can often host a server directly on the same machine they play the game. This style often includes the 10-minute game sessions of FPS and some simpler RTS games. They can be persistent worlds; MUDs were the first example of online games in the 1970s and they were persistent. Minecraft servers fit comfortably fit in the first category. You can get away with minimal network planning on some designs, others require significant effort. This is the type that the network forum has examples of a fully-functional online game server in a few hours.

 

 

The medium and large scale online games are harder to build and usually have a larger team set up for server development. Servers usually require multiple programming disciplines to create, and usually the game clients have multiple network-centric developers. Servers are generally plural and are designed to be dedicated machines. Expect to pay tens of thousands per month for servers, staff, and bandwidth. These can include all types of games, from the 10-minute sessions to global lobbies and matchmaking to very large dedicated worlds with small numbers of players. These require significant effort and planning for network infrastructure.

 

Then MMO.  MMOs are huge. EVERYTHING is designed around networking. Gameplay is designed completely around networking. Animations are designed around keeping things mostly in sync on networks. Data management is designed around getting necessary information across the network while limiting information to prevent cheating over the network. Expect to pay several hundred thousand or into the millions for monthly server maintenance and bandwidth. If one day of development goes by and somebody didn't think about networking at all, that person probably should be kicked off the team. Questions about latency and bandwidth should be part of nearly every meeting.

 

 

Within the small class you can turn a small chat system into a simple space shooter or a simple persistent world or a simple social game fairly easily. I've built and shipped games on devices from the DS to the X360 and PS3 that relied on this kind of very simple message passing. If your engine provides central hubs where all events and data are processed it might only take a few weeks for an experienced network programmer to add a networking component. If your engine has scattered processing where everything updates itself, adding networking can mean major changes to everything.

 

If you have a system designed to support several thousand concurrent users you can morph it into a different but similar-scale system with a bit of work. Transitioning from a moderate sized RPG to a different RPG is much easier than transitioning from RPG to RTS. 

 

If you have a MMO and want to make a similar MMO, the client and server rework can be extensive. If you are moving from an RPG to a similar RPG you might end up with anything from a small number of scripting differences to a huge number of component differences, in the ten to fifty work-year range.  If you are switching between styles, say from an MMORPG to an MMOFPS, be prepared to spend several hundred work-years in the transition. It may sound like a lot, but considering the game probably would require thousands of work-years to complete the cost is relatively cheap.

 

 

From what you described, you probably fit in the first category. Again, make a few single-machine games first, but when you have done that it is pretty natural to experiment with the first category of online games. I would start by adding a simple and reliable chat to your single-player game, then add components one feature at a time. It is as simple as adding a side-channel to the chat system where the relevant details are shared.


Check out my personal indie blog at bryanwagstaff.com.

#14 L i n c k   Members   -  Reputation: 148

Like
0Likes
Like

Posted 12 February 2014 - 05:55 PM

Does libGDX run on browsers without plugins?

I saw on their "features" page that it runs on browsers via Google Chrome Frame. Then I went to know what is this Google Chrome Frame and I found out that it has been discontinued. So it won't run anymore on browsers?

 

Other than that looks very interesting.

There is also the option of making java Applets. But then the user will need JVM. This plugin does not come along with most browsers right?






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS