Jump to content
  • Advertisement
Sign in to follow this  
Saltation

Can anyone point the way for a beginner?

This topic is 2475 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi there!
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.

Share this post


Link to post
Share on other sites
Advertisement
"multiplayer real-time strategy game" -> Sounds like allot of raw processing power. Meaning java simply wont cut it. I suggest c++ or C# at least.

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.

Good luck

Share this post


Link to post
Share on other sites
Use whatever language you enjoy the most. The concepts needed to make a game aren't specific to a language. To figure out what language you like the most, you need to actually try them for yourself. I use C# because I enjoy it the most. Alternatively, stick with what you know unless you feel bored and want to try something new. AS3 is relatively well suited to learning how to program, especially if you want to integrate some 2D graphics easily.

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.


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

Share this post


Link to post
Share on other sites
I'm going to have to disagree with the above post from vlad86 -- nothing about the basic description you gave of your dream project sounds like something Java would prevent you from accomplishing; hell, a smaller scale game of that type could be written in ActionScript and perform reasonably well -- while there are certainly some limitation to the capabilities of certain programming languages or tools, these are far less likely to be a limiting factor in what can be accomplished than the skills of the programmer using them.

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!


Given the situation you've described, I would actually recommend taking a look at Unity3d, which you can script with the C# language (or JavaScript, which is very similar to ActionScript) and already provides a solid foundation of existing code to get you jump started as well as an active and helpful community to help with any difficulties. You've said you appreciate the value of time, so my suggestion is to not replicate the efforts of others learning boring things like how to create a window and draw triangles on the screen when you can get almost immediately into the more interesting (but still challenging, make no mistake!) stuff of creating your actual game. You'll have a much easier learning curve and will get results much faster, and you'll still come away with at least basic programming knowledge as well as a good idea of how games are structured, project management, and an impressive completed project under your belt.

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! smile.png

Share this post


Link to post
Share on other sites
Sorry to double-post, but I forgot to address the following, and given the length of my previous response I'll just respond to it separately:

What would I need to specialize in, or prioritize in my learning, to give it multiplayer functionality and an isometric engine?

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.

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.

Share this post


Link to post
Share on other sites
My long winded advice ob the subject. That guide will introduce you to the most common options and the resources needed for each.


With your prior AS experience, jbadams recommendation is a good one, you can script Unity using JavaScript, which will be quite familiar due to your experience. Also, its free for Android and iOS until April 8, so get your license now!

Share this post


Link to post
Share on other sites
Wow! Thanks for the great advice everyone. I really appreciate all the help. I'm going to check out Unity, then take a look at your website, Serapth. Seems pretty great so far.
Thanks again people - this is a great start.

Share this post


Link to post
Share on other sites
I like the combination of this:

Sounds like allot of raw processing power. Meaning java simply wont cut it.

followed by

try C#
[/quote]

biggrin.png

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!