Reputation: 3045
I asked this on gamedev.stackexchange.com, got nothing. Please fix tags if I did any incorrectly
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? So what programming languages do I need to look in to.
Also, I am posting the game on a game-making website so I will not need to design a webpage or anything, I would just sell the straight-up game to them.
Upvotes: 0
Views: 2155
Reputation: 88707
Basically, I'd say you should be fine with Java, HTML, Javascript, SQL, XML and some libraries based on those languages.
IMHO your client would mostly consist of HTML and Javascript (you might use flash but it will be dropped in favor of HTML 5) using AJAX to communicate with the server.
The server itself might be written in Java and would run the game for each player. The communication between the client and the server would then consist of player commands, screen updates etc. but no game logic would actually run in the client.
If performance might become an issue and you have hardware constraints, you might consider writing the server in C++. However, I doubt that would be worth the hassle, since most often performance bottlenecks are caused by bandwidth, algorithmic implementations etc. Thus, I'd recommend implementing the server in Java, possibly using application server technologies to get you started faster.
Edit
As requested by Gabe here's a short summary of what each "language" would do in this context:
That's just a rough list though.
Upvotes: 1
Reputation: 2464
I would say to learn a server side and client side language (maybe PHP and Javascript) to run the game. Also you will need to know how to do database queries (SQL). You will need to know some HTML (not really a language). You can look into PayPal API to accept payments (it's pretty easy to get started).
If it is to be ran on the web and you want people to play it I would use Javascript on the client side. I would look into HTML5 also. You don't validate data on the client side, you do that at the server (you don't want them to change how much gold they have for example). There are many server side languages you could use. If it will be housed on a windows server you could use c# instead of PHP (PHP was just one suggestion, since I'm familiar with it).
Good luck with your adventure, it will be a great learning experience.
Upvotes: 2
Reputation: 709
Networking programming isn't a different language. You will need to learn networking library/API in the language of your choice. However it's more difficult then single session application. Not sure which language is "easier" for networking, but I'm sure java, c++ will support networking library for the backend.
and MMO browser base application is no easy task. When you start learning, try to first make a multiplayer battleship game/tic tack toe/ etc. Start SMALL. Once you make that, build of your skill sets. a MMO could take up to a year to develop. But don't let that shy you away from learning!
I did a quick search on 'java networking two players
http://www.cs.lmu.edu/~ray/notes/javanetexamples/
and this tutorial might be a good start for making that two player tic tack toe. Start small, learn, success!
Upvotes: 2