Java or learn c++

Started by
27 comments, last by minibutmany 11 years ago

I have been learning java for the past 4 or 5 months. I started dabbling in making games about a month ago in java following some tutorials on YouTube and have found that I enjoy it quite a bit. I have been reading some of what people say around the internet and they say that c++ is much better for making games than java. I was wondering if I should switch to c++ and start learning it instead of continuing java. I haven't been able to decide and I hoped that you guys here would have more incite on this than anyone else on the internet. Thanks

Advertisement

I don't use either, but I have heard that it really doesn't matter. There are great games made in java and great games made in c++. When you think about it, they are both incredibly popular languages and are for a reason, both are very powerful tools. If I were you I would simply stick to java, but if you think you will prefer c++ more, use that. I think it is more of a personal preference than a definite answer.

I'd say learn to make a game in Java first so you get the hang of programming, and then consider switching. C++ is not a beginner friendly language to learn. It's like someone tried to make an octopus by nailing 4 legs onto a greyhound ;)

"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley

c++ is much better for making games than java

People argue that java is a little slower than C++, which may be true in numbers, but honestly it doesn't hinder its ability to make great games.

C++ is more difficult and complex than java and since you have already been learning java, you will prevent many headaches by sticking with java.

I won't tell you to not learn C++, it will certainly prove to be an excellent tool, but don't leave java behind just because someone said c++ was better.

Edit: I take back what I said about slapping in the face, but honestly people that think this are stuck in the days when java wasn't what it is today.

Stay gold, Pony Boy.

If you aren't sure if you should use language X or language Y, chances are you aren't experienced enough to be doing anything that would make a significant difference either way. So just pick one. Using language X now doesn't stop you from learning/using language Y later. I've learned several languages, and I use them all (for different projects). Chances are, you will too.

[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

Thanks for all the answers everyone. Also I see what you mean Cornstalks. I am not doing anything complex enough right now for the language to affect it. My main thought was why learn java if it is obsolete to something else I could learn. Almost like why waste my time with it but like you said I will use java for other things in life so I might as well stay with it. Thanks again for everyone's input. Oh and one last thing. It seems like c++ is more widely used in game development than java. If this is true wouldn't there be more a lot more information online about creating games with it.

I started dabbling in making games about a month ago in java following some tutorials on YouTube and have found that I enjoy it quite a bit.

Other than the Youtube bit, you answered your own question. You've been using Java for a few months, are making progress with it and are enjoying it.

Stick with it.

What other people tell you, tell them to blow it out their arse. Opinions are like... oh wait, already covered that orifice.

Simply said, you've got a hell of a lot to learn still from the Java side of things, you are making progress and it's going well, so stick with it. When you run into an actual barrier that you can't surmount, not a contrived one "other people" tell you that you are going to hit, then switch languages.

C++ if you enjoy low level optimization, complete control over your code, and/or knowing that your language is designed to run as fast as possible even if that means leaving open the possibility of making big mistakes. Most game engines are wrote in c++ for these reasons.

Java is also a pretty good language. It does a lot of extra work for you in attempt to prevent mistakes, it does this extra work even when you don't make mistakes. Therefore it is not as fast as c++, nor does it offer you the same kind of control over your machine. However the trade off means less mistakes, and therefor increased productivity.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

complete control over your code,

Just curious, but what exactly in real world terms, do you mean by this.

At the tier of skill we are talking about at the beginner level, this expression comes up so often, but I cant imagine beginners really find they don't have the level of control over Java/C#/JavaScript/Lua/VB/etc... that they do over C++. In 99% of my coding experiences, even though I've been at this professionally for almost 15 years, I rarely run into situations where I don't have complete control over my code. I have on a few occasions thought I ran into such a situation, but generally it was my ignorance of how the language I was working in actually worked. The few examples I can think of are time of the time of garbage collection, byte ordering, implicit memory allocation and direct hardware access... and again, none of those things are something a beginner ( or often intermediate ) programmer ever runs into.

complete control over your code,

Just curious, but what exactly in real world terms, do you mean by this.

At the tier of skill we are talking about at the beginner level, this expression comes up so often, but I cant imagine beginners really find they don't have the level of control over Java/C#/JavaScript/Lua/VB/etc... that they do over C++. In 99% of my coding experiences, even though I've been at this professionally for almost 15 years, I rarely run into situations where I don't have complete control over my code. I have on a few occasions thought I ran into such a situation, but generally it was my ignorance of how the language I was working in actually worked. The few examples I can think of are time of the time of garbage collection, byte ordering, implicit memory allocation and direct hardware access... and again, none of those things are something a beginner ( or often intermediate ) programmer ever runs into.

I know I'm not the original poster, but you would have more control over the hardware with things like inline assembly, right? I'm fairly new to java, and correct me if I'm wrong, but you certainly wouldn't write an OS in Java, would you? But this thread is on Java or C++ for games so I won't pull the conversation that way.

I think both are great languages. I think since you're new and have already started with Java, stick with Java. I started with C++ and it took a few years for it to completely click (granted I was 10 when I started), Java has a kinder learning curve.

Current Project

World Storm

out our Android app! (My roommate and I)

https://play.google.com/store/apps/details?id=com.drsupersocks.ninja

This topic is closed to new replies.

Advertisement