Can anyone point the way for a beginner?
Members - Reputation: 103
Posted 07 March 2012 - 06:03 PM
First of all, let me tell you - it's an honour to be among such a large community of game developers. I came here to ask some questions, but I was blown away by what an immense wealth of (seemingly insurmountable) knowledge you have here.
So, basically I have a little experience in ActionScript 3, though not very much. I have also dabbled in Java, but yet again not very much. I know enough to realise that the task I want to accomplish is a very difficult one, and Java may or may not cut it.
Well, I'll jump straight to the point now, and try not to waste your time; I appreciate time's worth, and I'm grateful for what anyone can spare on me.
One day, I'm determined that I will create an isometric, multiplayer real-time strategy game of sorts. I know I must appear naive, wanting to do such a thing without much experience, but I promise you - I'm dead set on making this game.
It won't be the first project I try, and if I have to make a hundred pong games, mario clones, and whatever else for experience, I'll do it. But I need someone to point me the way.
So, could anyone tell me what programming language would come in most useful for such a feat? Where should I go to learn it? What would I need to specialize in, or prioritize in my learning, to give it multiplayer functionality and an isometric engine? How long would learning all that stuff take? I have the time, and even if it takes a few years I'll carry on. I just need a push in the right direction.
Thank you very much for your time.
Members - Reputation: 130
Posted 07 March 2012 - 10:37 PM
c++ is a very powerful programming language. It will take some time to understand it properly and a very long time to master it (if possible).
I suggest to learn c++. Since its a base for game development in my opinion. if you can code C++, other languages will be fairly easy to grasp.
If you want to have a faster learning curve, try C# (XNA). But i still recommend C++ over it, but its partially because im a C++ junky.
Crossbones+ - Reputation: 2486
Posted 07 March 2012 - 11:52 PM
Worry about performance LAST. Your primary job is making your program do things *correctly*. After things are working correctly, if you feel like performance sucks, use a profiling tool on the program to find where the slow parts are, and rewrite each small portion of your program to make it fast enough. Only if you are unable to do this should you consider switching languages for performance's sake.
If you do it right, the majority of your time will be spent adding small features, testing them, and rewriting things when you feel like it would improve your program. You shouldn't have to fight with your programming language.
I want to slightly amend my second paragraph: Worry about performance *when it actually impacts what you're doing*. For example, if you can't quickly test what you're working on because something is taking too long, it might make you drastically more productive if you remove that bottleneck right away.
Senior Staff - Reputation: 12117
Posted 08 March 2012 - 12:12 AM
Given I've just outright disagreed with another user, I feel it's only polite to back up what I'm saying:
Check out the video on the jMonkeyEngine homepage as well as their Showcase page to see a few things Java is capable of. Bearing in mind that a few of those projects have intentionally chosen simpler art styles (i.e. the graphic quality has little to do with the capabilities or limitations of Java) and that a couple of the reasonably impressive ones run in the browser (which does impart some additional performance concerns) you can see there's no reason to consider Java incapable of carrying out an impressive larger scale project. Minecraft is also written in Java, as was RuneScape, so you would be in good company were you to choose it.
All that being said, you may or may not actually want to choose Java for your project -- realistically, most languages would be suitable for a project like the one you're describing, and your choice of language is not likely to be a major influence in whether or not you're able to achieve your goals. Be wary of people who talk about the "power" of programming languages, as it's a pretty ill-defined term in that context, and tends to downplay the fact that the majority of modern programming languages are equally or very similarly capable; more important distinctions are expressiveness, the quality of the available tools, the help available to you, and any relevant performance implications resulting from the environment (I mentioned running in the browser above for example) in which the code will be executed, and most importantly of all, your own preferences!
That suggestion being made, I know not everyone likes the idea of using an engine like Unity -- there's no shame in doing so though, and AAA studios licence existing technology ALL the time (just look at the list of Unreal Engine games) -- so if you're one of those people I would suggest you try out some C#; learn enough to set up and start using XNA to make a small game or two, and then choose between C# or Java based on your own preferences. Either language would be more than capable of meeting your needs, you can work at a lower level than using a tool-set like Unity, but you'll still save the increased time and difficulty that can sometimes be associated with learning C++.
I hope that's helpful, and good luck with your dream project -- it sounds like you're starting out with the right mind-set!
- Jason Astle-Adams.
Senior Staff - Reputation: 12117
Posted 08 March 2012 - 12:26 AM
To begin with, your "speciality" should just be learning and becoming comfortable with whatever language and/or tool-set you choose. Write smaller programs, try things out, and make lots of wonderful mistakes to learn from! Once you've got more comfortable with the basics and made one or two smaller, simpler games it will be much more clear how to focus your efforts and exactly what will be required.
What would I need to specialize in, or prioritize in my learning, to give it multiplayer functionality and an isometric engine?
As for specific learning resources -- that really depends on what you end up deciding with regards to programming language -- for my own suggestion of Unity there's a fantastic support section on their website with links to further resources including great documentation and tutorials as well as a friendly and active community. If you choose another language there will obviously be different resources available we can point you towards, and obviously no matter what the choice help and advice is always available from our community right here, as well as in the developer journals section.
- Jason Astle-Adams.
Crossbones+ - Reputation: 4199
Posted 08 March 2012 - 12:03 PM
My more Popular Tutorial Series: