Which coding language?

Started by
11 comments, last by superpig 13 years, 3 months ago
I want to start a new game, probably 2D, but can't decide the scope of my game. I'm well versed in Flash but I'm frustrated with it's lack of hardware acceleration and how it really limits the features I can implement. I'm learning C++ and Java at uni so I'm ok at those languages.

So I want to move away from Flash and do more visually intensive stuff. Which language would you recommend I learn/develop?

On a side note, we learn allegro at uni for our 2D work, is this out dated at all?
Advertisement
Both C++ and Java have libraries available for doing accelerated 2D and 3D. You might as well use one of them since you're learning it already. :)

I used allegro around 10 years ago, bit I haven't looked at it since. I don't know if they've been updating it or not.
Any recommendations on a library? Preferably 2D.

Edit: My main goal is to start making some money from my own projects within the next two years (which is when I graduate uni). The advice I've been given is to stay away from iPhone as the competition is huge and the other mobile markets are growing faster. I've experimented with adverts in Flash games and this hasn't been great personally. What do you guys think of XNA or something?
Quote:Original post by Bishop88
Any recommendations on a library? Preferably 2D.

Edit: My main goal is to start making some money from my own projects within the next two years (which is when I graduate uni). The advice I've been given is to stay away from iPhone as the competition is huge and the other mobile markets are growing faster. I've experimented with adverts in Flash games and this hasn't been great personally. What do you guys think of XNA or something?


If that's your goal I would go with C# / XNA for sure. C# should be easy for you to pick up, given your prior experience in C++ and Java. It's a much more forgiving language for beginners anyway, and using XNA will allow you to focus on the creation of your game. XNA will suit your 2D needs, and be expandable to 3D.

As far as the market goes, you will have the Xbox Live Indie and Windows Phone 7(WP7) markets available to you. They probably aren't the best markets for making money as a starting indie dev, but it's great for experience and making a little extra cash on the side. There are always breakthrough stories, though!
If I were in you, I'd give Java a try. I think you're not going to feel good with C++ any time soon, the libraries are fairly low level.
I use a subset of C++ because I have a lot of code in C++, but if I had to start from scratch right now, I wouldn't go C++ any time soon.

Previously "Krohm"

if your going with C++, i would definitely recommend SFML, I've used Allegro for sometime before and although it is nice, SFML was quite a bit better.
-Jawshttp://uploading.com/files/eff2c24d/TGEpre.zip/
I agree with the C# suggestion. Java's good too, but C# is pretty much Java++, and it brings you XNA, plus you get to compile it for PC, 360, Zune and WP7. If that's not a winning deal I dunno what it is. I sorta wish XNA existed when I began my project...

C++ is, I dare say it, an outdated programming language and has you do stuff that should be already done for you, such as garbage collection and event programming. You still get tons of power out of it, but unless you're working on a triple-A project, I doubt you need it. There are efforts like Boost to give C++ the features of a modern programming language like C#, but it cannot do miracles, and it's quite heavyweight.
"which language?" isn't where I would start. Decide what your game requirements are. You've said 2d with hardware acceleration (good start). From there I'd think about which platfrom(s) you want to run your game on.

You mentioned that you heard the iphone market was overcrowded. forget about whether or not a market is overcrowded or if you can make money from it. EXPERIENCE is what you're after right now. Money can come later and experience in anything is what will pay off later. So ask yourself if the iphone platform is something that interests you.

I find the mobile market very appealing right now for a few reasons:
1. These days there are plenty of resources and documentation on creating apps/games for them
2. the barrier for entry is pretty low (you don't need to be a computer science genius)
3. No one expects a giant application or game from a developer. you could spend years making a good game for pc, but you can develop a great mobile game/app in a few months.

reason #3 is what I find very enticing right now.

If the pc is what you want to develop for, decide which operating systems you want to support. I don't want to go over a whole tree of possibilities right now.

C# and XNA an excellent combination, I have personal experience as well as a friend who makes games with it. It does make development a fun and rewarding experience. There is a game just about to come out called Bloodline Champions. It is an indie game that the developers started on a few years ago while they were in college. Quite impressive.

However, XNA is made by microsoft, so it is obviously windows only (and xbox live arcade, windows phone7). So no Mac or Linux. not a problem if you are just concerned with money (stings to say since I'm a Linux fan).

I spent a lot longer writing this than I planned but what I really want to say:

****MAIN POINT****
Decide what YOU are interested in. Mainly what platforms you want to develop on. Don't worry about money (right now) or what everyone else is saying/doing. getting something done = experience, which is what pays off later.

I've been programming for a few* years now and I know (or am familiar with) many languages. I realize now that knowledge of a particular language is irrelevant. when I start a project i figure out the tools needed, such as api and that determines the language, which I'm either familiar with or am able to pick up in a few days because of my EXPERIENCE.

I wish you the best of luck.

P.S. I'm currently learning android development (#3) I like the thought of being able to keep my projects small (thus making it more fun). plus I have a Droid X :)
Quote:Original post by PATrainwreck
knowledge of a particular language is irrelevant. when I start a project i figure out the tools needed, such as api and that determines the language, which I'm either familiar with or am able to pick up in a few days because of my EXPERIENCE.

This.

But in order to make the choice you need to know the strenghts and weaknesses of the languages. That is something you wont learn from language war threads, where most stubborn people defend their language to no end.

I'm most familiar (15 years) of C++, but I suggest C# or Java. You want to do stuff at high-level. If you want to know low level stuff and how the computer actually works, I suggest to get familiar to assembler. But for short while until you get it. Theres no point to use assembler to create programs. And IMO forget C. C++ is difficult language becouse the unfortunate requirement of backward compatibility to C.

Best way might be to use all the languages, plus a scripting language :)
*not trying to hijack this thread so I'll keep this one short

I avoided talking about various languages only because Bishop88 said he was already learning c++ and java at his university (I assumed some rudimentary knowledge on the subject). I do agree with the common suggestion of a high level language (C#, Java, Python). In fact I suggest that for any situation where it is possible (regardless of the programmers skill).

As for your comment on C, I have a few words of my own but now is not the time or the place :)

This topic is closed to new replies.

Advertisement