Advice regarding language choice - 2D Top Down Strategy

Started by
17 comments, last by _paf 11 years, 3 months ago

Hey guys, looking for some advice here regarding picking up a programming language to run with and start my *amazing* dev career... *cough cough*.

Seriously though, ive been looking at Python and Java, and a couple of other smaller programming languages, but cannot decide what to dedicate studying time to learning enough to begin seriously writing code.

A brief overview of the plan, and my current skills:

2D Top Down Singleplayer (For the beginning) Strategy game, player controls a single character. Long term campaign over a large, single map. RPG elements ie levelling up, equipment upgrades etc.

My skills: Basic knowledge of C++, Good Sprite artistry, Quick Learner.

Games that I am attempting to emulate the style/feel of:

Starfarer - http://fractalsoftworks.com/

Gratuitous Tank Battles - http://www.gratuitoustankbattles.com/

Essentially, once ive decided which language to go with, I will study up and learn it as quick as possible through web guides and e-books, and figure out how to create the world and the player calling up Sprites that I have been building.

Any help / advice would be much appreciated!!

Thanks,

Toshi

Advertisement

Well, i can't tell you which is the best language, but if you're serious about learning one, and make a serious project, then i'd advise C++.

It's probably the most used language in game development, although i suppose not the easiest to learn.

You could then learn OpenGL or Direct3D, or even use SDL or Allegro (i think these two can be/are used in conjunction with OpenGL).

Also, if you don't know (and don't mind your game being WIndows only), there's DirectX (which Direct3D is part of) which is a complete game development SDK.

Not that this isn't something you can't do with other languages (i don't really know if there's DirectX support in Java or Python), but i think you will get the most support (in terms of code samples, etc) if you use C++.

Of course if you want your game to be cross-platform, then perhaps Java would be another option, not that you can't do it with C++, but it is easier with Java.

There is also C#, altough i can't tell you anything about it as i've never use it (the same goes for Python).

In the end, in my opinion, on the long road of development, you'd benefit more by choosing C++, but again, it is probably not as easy to learn (and by learning i mean really learning, including advanced things like pointers, OOP, inheritance, etc), and obviously does not natively include sprite drawing routines, sound playback, etc like some other languages do (for example Java and ActionScript).

I suggest java! It is absolutly amazing!

add me on skype, i need some new associates for coding.

skype: daniel.lamonds

c++, Visual basic, fortran, html/5, css, php,java script, sql, others......

I suggest java! It is absolutly amazing!

That there is the worst way to give someone advice. Where is the reasoning and why is it so amazing.

I my self would suggest C++ I am not an acumpilshed programmer but I am working my work through a Game Developer course by Train to Game and it is focused on C++ and their reasoning behind that is that it is one of if not the most widely used language in games development.

C++ wouldn't be a bad language to start with. As long as you understand that, you won't understand most of the different functions and sides of C++ overnight. It takes a while to fully understand what C++ has to offer. (Same with any other language) You could try to learn some C++ and see how it feels and if you understand what you're doing. If so, then continue on learning different sections of C++, and slowly move into a graphics library of some kind. (/game engine)

As many have said before, "Don't expect to make the greatest game ever at first. Start small with games like pong, matching games, and other small games."

I'll add to that with "and make sure you comment your code and UNDERSTAND what each keyword means / does."

I'm sure the community here will be of great help in the future to you if you ever need it. :)

Also, this thread will just turn into a "this language is better than this language" very soon I feel.

FYI, I've created a simple top-down game and included the steps I took to make it in my Old Blog (linked in my Signature). You can check it out to get an idea of what using C++ with a 2d physics library would contain.

Good luck.

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)

I'm not a professional game programmer, so take that into consideration. But I've been a hobbiest for years. I tend to agree with the folks who say C++ given its widespread use if your goal is really to use this exercise as a jump into the professional world. Given you claim some basic knowledge of C++ might be the best place to start anyway.

Now for me, I spent a ton of time reading/learning/coding in all the various versions of DirectX over the years (again I'm just a hobbiest and only cared about playing on "my" machine). Recently though I switched to Allegro since it has the option of being multi-platform and what not. I'm not sure any "real" commerical game uses it, but it suits my purposes just fine. I bring this up because __SKYe mentioned Allegro above. Its easy to use, wraps around both DirectX and OpenGL. Just one thing to take off the list if you will while you are learning game programming itself and getting better with C++.

If you do want to go the C++ with Allegro route....I recommend http://fixbyproximity.com/2d-game-development-course/ as a great kick-off. These videos take you through how to use Allegro for a 2D game pretty well (and there is a follow up course that makes it more OO).

Anyway thats my 2 cents

If it was me doing a top down 2D game today as a beginner, it would be Lua in a heartbeat. Hell, im thinking about doing such a game as someone with tons of experience and Lua + MOAI is almost certainly what I would use. You get full C++ source if you need to drop into it, but generally you wont have to. The biggest flaw is the lack of documentation, although I've done a tutorial series that will get you exactly where you need to be to get started. If MOAI isn't your thing, there is always Gideros, LOVE and Corona to start with.

Thanks for the excellent replies guys, im at work at the moment and stuck using IE so for some reason I cant "rep" your posts, but I really appreciate the feedback.

Im going to check out the links that you have provided, and I will definitely return to post my feedback and further thoughts.

Again, HUGELY appreciate the help!!

I was gonna write something here about learning languages:

However you're not interested in learning a language.

Don't think language, think end product.

The problem is that you can't decide on a language to write for something as banal and commonplace as a game without having an idea what sort of coder you are.

So my advice to you I guess is to stop writing your terrible game, and just go learn how to program something simple like an rpg. Pick a couple languages, see which you like better, what annoys you and what sticks. Programming can be something of an art and style, a way of thinking. When I first started the so called "easy" languages annoyed the hell out of me. Bad programs, written by lazy people, with terrible documentation, and even poorer rules making me just want to puch whatever idiot thought that having no strict type system was a good thing. Clean, structured languages are actually great for a beginner, because it allows you (or at least me) to 'connect the dots' between parts more easily. I think a lot of 'artsy' people get annoyed by structure though, and then sing the praises of languages that are more freeform because they think better that way.

After you've programmed for a while, the language design choices basically don't matter anymore, you just learn to program in your own way and force whatever stupidity the local language is trying to shove down your throat to go away.

This topic is closed to new replies.

Advertisement