What languages are required for an mmo browser game?

Gabe
  • What languages are required for an mmo browser game? Gabe

    What 'Things' are required for this sort of game? I understand java, c++, javascript, and objective c (iphone programming) fairly well, however I know nothing about networking programming, but I do know about networking in general (packets, mac addresses all that good stuff)

    So this is my main question: for a game like Tribal wars, Evony, Shadowland online, travian, what programming languages do I need to know to take this on and finish it by myself? I'd imagine that most of it will be done in java, but for the whole connecting other players, combat, leader boards and (most importantly) making online payments for things, what languages should I learn for developing something like this?

  • PHP+MYSQL+HTML is enough for a start. JavaScript if you want to do AJAX stuff (you want to).

    Java is completely unrelated, as is networking, since HTTP will handle this sort of things.

  • You can do it all in JavaScript. For server side, use node.js. That's basically a JS interpreter outside of the browser, so you can run it just like you run Python or other great scripting languages. Not just that, it gives you support for many networking features, mainly you'll be serving the actual content with it. For communication you'll want to use socket.io. These two have great communities that are always being helpful and basically are the future of web-development. It also helps to code both the client and the server side in the same language.

    I'm building a browser MMO as well. Here's my dev blog, I describe various problem that you might encounter.

  • I've been considering the same thing but for a Scorched Earth/Gunbound style game.

    To make the kind of game you are talking about there are going to be two parts:

    1. The client side (player's browser)
    2. The server side (your game's server). This encompasses:
      1. The language used on the server
      2. The database used to store data

    Short Answer

    For the client side your two options are pretty much (in no particular order):

    1. Javascript + HTML
    2. Actionscript (Flash)

    For server side languages (again, no specific order):

    1. Javascript via node.js (see Bane's answer)
    2. PHP (see Lohoris's answer)
    3. Java (sorry don't really have a link, but you mentioned you are familiar with it)
    4. Ruby
    5. Python

    For databases (no specific order):

    1. MySQL
    2. Postgresql
    3. MongoDB (this is a NoSQL database)

    Long Answer

    The server side can be pretty much whatever the heck you want it to be. You'll likely want support for sockets which PHP and node.js support, making them viable options. Your question mentioned you are familiar with Java and that's a viable option as well. If you're comfortable with Java (and not doing this to learn new languages/technologies) that's may be your best bet.

    As far as databases go MySQL and Postgresql are widely supported and established databases. Something like MongoDB is a bit more exotic and may not be supported by your server side language of choice. Me, I'd probably use Postgresql unless I was interested in mucking around with NoSQL or thought it gave some clear, tangible benefit.

    On the client side, game interactivity is going to require either Javascript or Actionscript (i.e., Flash). None of the games you called out look like Flash games to me or, if they are, they appear like they could be made without Flash so I'd recommend you stick with Javascript here.

    As for integrating with payment gateways and other third party solutions you'll want to checkout things like PayPal and see what they support. Typically they support a few different languages (PHP and some flavor of Microsoft are usually safe bets) and have code samples in all supported languages. The Facebook API is friendly with PHP and Javascript.


    Other Considerations

    Does Your Game Need To Use Sockets?

    Both Flash and Javascript** support socket connections. Flash does this via the Socket class and supports sending and receiving binary data. As mentioned by Bane there is a node.js Javascript implementation of sockets via socket.io. However, binary sockets are not supported and browser support can be iffy (though socket.io compensates for this).

    To me this then becomes one of two questions:

    1. Which technology do I want/need to use server side? Or,
    2. Which technology do I want/need to use client side?

    In my case I wanted to use Javascript on the client and node.js + socket.io seems to be the best (possibly only, certainly easiest) technology that would enable socket connections to the server. So I'm using Javascript + HTML in the browser and node.js on the server. Another benefit is that I'm using the same language on both the client and the server which is nice.

    If I needed binary sockets or wanted to use Java on the server I'd probably choose Flash on the client side. There are a lot of socket servers written in Java for the express purpose of supporting multiplayer Flash games (SmartFox is one example).

    ** Via WebSockets in most modern browsers.

    Can You Get By With Remote Procedure Calls Instead of Sockets?

    If you can use RPC (think AJAX) then you're really free to do things however you see fit. Just about any browser (even the shambling corpse that is IE6) supports AJAX calls, as does Flash. Likewise any server technology is going to be able to respond this these requests. If your design allows for this it really becomes a matter of which technologies you prefer.

    What Languages Are Supported By Third Party Solutions

    If you'll be integrating with third parties you should check out what technologies they support. While there is no reason you cannot run the game server in Java and integrate with your payment gateway in PHP but it would probably be easier to just have it all be in one or the other.

Tags
mmo browser-based-games
Related questions and answers
  • I am a 2D Game Programmer.Some programming languages which I am good at are C,Java ,C#. I also know Actionscript 2.0,3.0 and some javascript. I'm interested in learning 3D Game programming. So far from the research I have accumulated by googling and reading different game development forums and articles. I've noticed that most programmers tend to prefer C++.Also in an online game programming teaching course I noticed they prefer to teach C++ and Visual C++ as the starting course. The reason I am asking this question since I would like to know the "strength" difference of C++, C# and Java

  • Lately I have been working on a game that i plan to make online. I have used different libraries to make this game as far as i could, but I feel that I should rethink on how Im sertting this game up... with the Physics correctly... So my main question is: What would be a good combination of libraries to make an online game with? Im sure that many people have good combinations of libraries for making a game. The libraries that I would need are ones that fit the criteria of making a simple 3d game(online): 3D Graphics(including a model loader of some sort(if it works with blender that would be even

  • a shader thing which renders useless most of the animation property in the c++ side ) Also files are required to store the minimum data required to rebuild the mesh, so in smaller meshes or meshes without... I was thinking about making smaller structures with the fTime variable each so I can have attribute keyframes, light keyframes and buffer keyframes, then make the node structure look like... them to be attached to the node in most cases, even if I allow setting global lights to the scene. @Nicol: Yes that's what I'm trying to figure out. You can see the code doesn't rely on any hardware

  • this summer and I have a good grounding on the web side of things. I've also done some very basic c++ (what i would consider basic). My c++ skills basically comes down to different tutorials on things... in the world. I'm OK at C++ but its one language I would really like to explore and make my primary language. (assuming there are jobs for grads in this area) This project will most likely define the career... of this then why would I be here asking this question? The reason is as shocked as I am about this. I don't like to lose. I have my own queries on how appealing this project would be to someone looking

  • read that it's a bad idea to create iterators in Java (due to the garbage collector), but that idea seems moot in languages such as C++, where there isn't a garbage collector, and I would imagine...I was recently listen to a talk that Jonathan Blow gave, you can find it here. In the talk, he was talking about what data structures he (and he seemed to imply many others) use, and why. Which... at the source code since I have not a clue to where I should begin). The reason he gave for this was because while it may be slightly slower to do things the naive way, it's not much, and in many cases

  • I'm trying to figure out which language I should begin learning. I've only been programming for about 6 months, with languages like PHP, Java, and C#. I want to learn how to dev games, and while I know in most cases the answer to this would be through C++ (at least, I would think), though I'm still curious about what Objective C can offer in the sense of long term benefit. It seems like... of this, I really don't know anything, and this is all speculation. Both languages seem very interesting, and obviously can pull a lot of out of themselves. What do you think? Note: despite what some might

  • ), most of us would probably enjoy the experience of doing a game, as it would be a big challenge, so why not give it a go? So what is my question? Do you think that we should take on the task...I am a second year, learning C/C++ and Java. In our first year of university we did basic C++, no classes. This year we have been introduced to classes and inheritance. We have not yet done pointers, virtual functions, abstract classes, operator overloading, exception handling, linked lists, stacks, queues, binary trees, graphs, etc. I am very curious, so I like to teach myself some things

  • together. I am not an animator so i assume most of what i just said is not right but i hope that some one can understand what i mean and provide an answer. PS) I am a programmer and I am in the process of building a hitmanesque game, just because i love that style of game and I want to increase my skills on something fun, so if you do know what i'm talking about have some examples...I am just curious as to how in many games (namely games like arkham asylum/city, manhunt, hitman) do they make it so that your character can "grab" a character in front of you and do stuff to them. I

  • I have been developing for win7 mobile (XNA/silverlight and will continue to do so, love everything about it) but I wanted to branch a few of my more polished games to google app store online...: Java would be excellent for android, but could I port it to a web app for chrome? (and its close to C#) Flash would work for a web app as I can just embed it into a html page (have done actionscript before, didn't care much for the IDE though), but would it also work on android? or I guess there is always C/C++ but haven't heard much about that, though I think it works for both (though C++ does

Data information