Best language to code my game

Started by
10 comments, last by Alpha_ProgDes 11 years, 5 months ago
Hi friends..! Need little help here to choose a language to code my 2nd year project assignment. We are given to develop a 'Tank game' which will ultimately play over a network. maximum four players can join the game, there is a server application runnig on a server machine and each player need to connect to that server. Our assignment is to develop the player application. So each of our batch mates have to develop a player applicatioin which is intelligent and should be able to take decisions(e.g- turn, shoot , move) in order to win over other players. So my requirements for the language are
should support AI algorithms
GUI creation
network communication
I have quite a knowladge of Java and C. But I thought it could be easier if I can use a language which design to work with AI programming, but I don't know whether they will meet my other requirements. I'm kind of a quick learner so I can manage to learn a new language and work with it. So if you can suggest me some ideas it will be very helpful. And any ideas on this assignment, or how I should start it etc. are welcome. thank you very much...!!!
P.S - If my description doesn't make sense. please ask me I'll explain ot again, because I really want to win this game. :D
Advertisement
None of your needs are particularly complex, and almost any language would meet them.

Given the short time-frame and the fact that your grades depend on submitting a suitable application I'd suggest that unless you're really driven by the idea of learning something new you should stick with a language you already know -- and given the choice between Java or C I would probably suggest Java, although obviously if you have a preference for C you should stick with it.

It's not clear from the description whether you actually need to make a playable game or if you simply need to create an application which connects to the server and sends commands to control an AI tank. I assume you'll probably also want to display what is happening?


Your first move should probably be to put together a basic application that is able to connect to the server and display the information it is given. You can then build from there to send commands back to the server -- start by just naively sending them with no decision-making to confirm correct functionality -- and then work up to actually making intelligent decisions based upon the situation at hand.

You should also focus on whichever part of the application is most important for the assessment: if it's mostly about testing your ability to implement networking capabilities you should focus your efforts on creating a robust networking solution and just have a simple AI player to demonstrate those capabilities. If the AI is the focus you should just get some basic sufficient networking functionality implemented and then focus on creating the best AI possible. If you have time left over once the most important feature is satisfactory you can then proceed to improve other areas, but don't waste your effort on things that aren't important to the assignment.


You've said you're experienced with Java and C, but have you created games with either of those languages?


If you really want a different language my recommendation would probably be Python, but just to reiterate I would really suggest sticking with what you already know unless you really want to learn something new.


Hope that's helpful! smile.png

- Jason Astle-Adams

Yeah It's helpful. I haven't create any games with Java. google says I should use jmonkey engine but yet I have no idea what is it or how to do it. So currently gathering information about them if you could help or suggect good tutorials it'll be a great help.

Java is ok. But I thought it is not speciffically designed for AI programming, one of my friend said if I could use a language which provide better facilities for AI that would be a great help. what do you think?

They are asking for AI tank not a playable game. GUI is only for display what is happening
I think you don't need a language that's specifically designed for AI programming. The overwhelming majority of games get by just fine without using a language that's specially suited to AI, and it's likely you won't even need any particularly complex AI.

Again, unless you particularly want to use this exercise to learn a new language you're probably best off with whatever language you're most comfortable with.


Do you want 2d or 3d? jMonkeyEngine is good, but it's a 3d engine that isn't particularly beginner-friendly. They do provide some documentation and have a helpful community though. If 2d will be sufficient you might try Slick instead. See the sidebar on the right hand side for links to documentation, downloads, etc.

- Jason Astle-Adams

yeah it's 2D. you're being really helpful here. thanks. So then I'm gonna proceed with this Slick and Java.. Is there any other things I should be worried about?
Well, there are no hidden "got ya"s to know about with Java and Slick or obvious problems you might run into. I'd say your next step is to probably go about learning the basics of using Slick -- get the library downloaded and set up properly, and learn how to create a window and display an image -- and then ask any additional questions you have.

You'll might run into trouble with something, but until you get to that point and have specific questions random advice about things you might get stuck with probably aren't going to be a huge help.

- Jason Astle-Adams

yeah I get it.. thanks for the help so far.. :-)
Standard answer: the best language is the one you know best and are most comfortable using.

Your objective is to be productive and get something finished; the best language is therefore the one that's going to stand you the best chance of achieving that. If you need to learn a new language, or learn all the funny little edge cases where things can go bad in one you already have semi-knowledge of, then time spent doing that is time not available for your project's main goal.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Whenever I see a title like this I know I'm stepping into a minefield. But here it goes.

If you know Java and C then C++ will be pretty trivial to learn. Add a library like SDL and you're good to go. SDL does sound, input, graphics, networking and much more.

If you know Java and C then C++ will be pretty trivial to learn.


I disagree but I'm not going to -1 you. ;)

If you come from a C background then C++ is going to completely wreck your head. In particular modern C++ will look like something an alien coughed up by comparison.

If you come from a Java background then you WILL be bitten (and bitten badly) by memory management. Even if you use STL/etc containers, the underlying nastiness does have a tendency to bubble up in the most unexpected of places.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

This topic is closed to new replies.

Advertisement