Help needed in selecting language.

Started by
16 comments, last by Veeman 14 years, 1 month ago
Hey guys. A little new here. Came across your site and told myself that this is the place to start lol. I want to get into the game creation field and I have two ideas for games that I want to create. I have searched the net for starting points but I am getting overwhelmed. Most sites (assume) that you know how to program already. I am a complete noob here (mostly). I messed around with the Qbasic back in the dos days and got ok at best with it. But that was 15 years ago lol. I was going to go with Dark Basic but I have changed my mind after reading a post on here about how limited DB is in the networking area as my goal is to create client/server multiplayer games. From what you have said here, I think C++ is the way to go. What is the diff between C++ and Visual C++? How limited is the free Visual C++ express? Do you have any or know of where I could get a detailed beginners tutorial? I'm sure I will have a lot more questions as I learn more and more so I hope you don't mind if I ask them here. It seems you have a lot of people here that know what their talking about. I'm going to try to spend this weekend soaking up the information that you guys have here. Thanks in advance.
Advertisement
C++ is industry standard, however many game programming positions also use a scripting language, such as python for creating games. That's often to work with a developed engine. Python would be easier for you to pick up programming wise, and a bit faster to get games off the ground. C++ though has stronger performance.

I suggest you start learning C++ online and maybe even grab a book. Just dabble into some really really simple games and programs that run in dos. "Guess the number" is a good starter.

Visual C++ is basically the way to go for compiling C++ on windows. You will get all you need from the express edition. I have a copy of the 2008 pro, and it's not that much different. For learning C++ from the get go, this is a decent site: http://cplusplus.com/doc/tutorial/
Quote:What is the diff between C++ and Visual C++?
C++ is a language. Visual C++ is Microsoft's compiler for the C++ language.

Quote:How limited is the free Visual C++ express?
Not to a point that you have to worry. The limitations fall mostly upon the IDE and provided libraries (no MFC for example).

Quote:Do you have any or know of where I could get a detailed beginners tutorial?
Google. Or search this forum for book recommendations.

Quote:From what you have said here, I think C++ is the way to go.
Interesting conclusion. Most posts in this forum warn strongly against beginners starting with C++.
Quote:
From what you have said here, I think C++ is the way to go.

I disagree with this assessment; I think C++ is a pretty sub-optimal choice for a first language because it is based heavily in the culture of "the programmer is always right," which is almost never true in the case of the beginner. I would recommend Python, or maybe C#. The Python website has everything you'd need to get started.

That said:
Quote:
What is the diff between C++ and Visual C++?

C++ is the language, Visual C++ is a name used for a particular product published by Microsoft that allows you to develop with C++.

Quote:
How limited is the free Visual C++ express?

It isn't missing anything you'll need, as a beginner.

Quote:
Do you have any or know of where I could get a detailed beginners tutorial?

Google. "Thinking in C++" and "C++ A Dialog" are good places to start.
Java will teach you the ins and outs of c style syntax and expose you to objects, it is a great language to start with. With that out of the way it is easier to absorb stuff like pointers.
"It's like naming him Asskicker Monstertrucktits O'Ninja" -Khaiy

I assumed C++ was the way to go for creating client/server multiplayer games vs Dark Basic based on the answers you guys gave on a discussion about the two. Not that it was for beginners.

So Python seems to be where to start. Thanks for the advise.
Quote:Original post by Talee
From what you have said here, I think C++ is the way to go.


Worst possible choice unless you are specifically looking to break into the game development industry as an engine programmer. Much better choices are Python, Java, or C#. C# has the XNA Game Studio so you can make DirectX-based games that run on Windows and XBox. Moving from Basic to C++ is like shooting yourself in the head. All three can handle networking just fine (and it will be less painful than doing the same in C++).

My experience is with Java so I will tell you that Java is great for making games. On the one hand you have a mobile platform (JavaME) that has wide market penetration (but is a pain in the ass to debug, according to some JavaME developers I spoke with). On the other hand you have the desktop and the web (applets & webstart) with some great middleware such as LWJGL, jMonkeyEngine, Slick Framework, Project Darkstar, etc. Not to mention that Java provides you with a ton of functionality out of the box (mitigated by C++ Standard Library to some degree I guess, no experience there). However, I encourage you to check out Python and PyGame as I only hear great things about Python and people claim that you can be much, much more productive with it.
Quote:Original post by lightbringer
Quote:Original post by Talee
From what you have said here, I think C++ is the way to go.


Worst possible choice unless you are specifically looking to break into the game development industry as an engine programmer. Much better choices are Python, Java, or C#. C# has the XNA Game Studio so you can make DirectX-based games that run on Windows and XBox. Moving from Basic to C++ is like shooting yourself in the head. All three can handle networking just fine (and it will be less painful than doing the same in C++).

My experience is with Java so I will tell you that Java is great for making games. On the one hand you have a mobile platform (JavaME) that has wide market penetration (but is a pain in the ass to debug, according to some JavaME developers I spoke with). On the other hand you have the desktop and the web (applets & webstart) with some great middleware such as LWJGL, jMonkeyEngine, Slick Framework, Project Darkstar, etc. Not to mention that Java provides you with a ton of functionality out of the box (mitigated by C++ Standard Library to some degree I guess, no experience there). However, I encourage you to check out Python and PyGame as I only hear great things about Python and people claim that you can be much, much more productive with it.


Lol, on the Qbasic, I got as far a learning to call and save info to other files. I remember making a check register program with it that worked really well.

I was just reading through a C++ tutorial and the whole calling a function just so you can use a sub function is a bit weird.

Is C the only language that will allow the use of directX besides C++? What kind of graphics will I be limited to using Python, Java or Basic?

You said that all 3, which includes Basic, can handle networking just fine but I have read that Basic's networking is very limited. Would you say that true? I have read alot of you guys say that we need to pick one language and stick with it. I just want to make the right decision as far as the kind of game I want to make in the end.

I have started a Python tutorial and so far it is just as easy as Basic for the most part. How deep is Python's networking capabilities?

Something that I just thought of, I read that a program wrote in Basic will have lower FPS than the same program in C++. How does Python and Java compare? I thought Java was web based and could only be run in a browser. Can it be run as a stand alone in full screen mode? Sorry if the questions are noobish but I am trying to get a deeper understanding of the language differences and their capabilities.

Just a side note, You all agree that Python, Java and Basic are easier than C++. For a beginner, it would probably be wise to go with the easier option but if I can't create the end result that I am looking for then I have no problems learning the harder option. It will probably take me longer (LOL) but I will get there!

I would love to get a software engineering degree but classes are out due to my work and home schedule as well as my wife's. I looked into distance learning facilities and I just don't have 68k. I don't think I can get another loan from the government since I defaulted on the last one due to some circumstances even though the loans have been paid. So I am on my own on this one.

[Edited by - Talee on March 7, 2010 8:37:39 PM]
Quote:Original post by Talee
Is C the only language that will allow the use of directX besides C++?

C# also, like I already said above.

Quote:Original post by Talee
What kind of graphics will I be limited to using Python, Java or Basic?

Basic - better forget about Basic.
Java - same as C++ and C# but you are limited to OpenGL, no access to DirectX. In practice this actually doesn't matter because both OpenGL and Direct3D do the same things, but OpenGL is more low-level so you will have to learn more and write more things yourself (unless you use a 3d engine written by someone else - there are many free ones available). On the other hand your game will also run on Linux and Mac if you care for that.
Python - also OpenGL, can't comment on performance but should be enough for basic stuff at least.

Quote:Original post by Talee
You said that all 3, which includes Basic, can handle networking just fine but I have read that Basic's networking is very limited. Would you say that true?

I got you mixed up with my jumping around and editing my post. By all three I meant Python, C#, and Java.

Quote:Original post by Talee
I have started a Python tutorial and so far it is just as easy as Basic for the most part. How deep is Python's networking capabilities?

I have seen one of the members here write a (very bare-bones) MMO server in Python in five hours, for instance.

Quote:Original post by Talee
Something that I just thought of, I read that a program wrote in Basic will have lower FPS than the same program in C++. How does Python and Java compare?

Java is about the same as C++. Python being more high-level should probably be a bit slower. The OpenGL code both call is of course in the OpenGL driver so it's the same, but you will have many data structures to manipulate in your renderer and here Java should perform faster than Python.

Quote:Original post by Talee
I thought Java was web based and could only be run in a browser.

No. Java runs inside a Java Virtual Machine (JVM). The JVM can run inside a browser plugin (for applets) which is how many people get introduced to Java but it typically runs as a standalone program (you can also ship your game with a private instance of the JVM and your game compiled as an EXE file, so that the end user will not notice that he's running a Java game). It's also often used as a web server technology for dynamic web applications (Tomcat).

Quote:Original post by Talee
For a beginner, it would probably be wise to go with the easier option but if I can't create the end result that I am looking for then I have no problems learning the harder option. It will probably take me longer (LOL) but I will get there!

Basically, Python will be easier to pick up and faster to develop in but Java will run faster (potentially as fast as a native C++ application, although it will not start as fast because the JVM needs to load and it will have a slightly larger memory footprint than a native C++ application, again due to the overhead of the JVM). If you don't need bleeding-edge performance then it's probably more interesting to go with Python today. You do not necessarily need to throw away all your application logic if one day Python happens to be too slow for you - Java supports the execution of Python scripts via either the Bean Scripting Framework or the newer javax.script API (or by calling Jython directly), so you could rewrite only the performance-critical parts in Java for instance.

Quote:Original post by Talee
I would love to get a software engineering degree but classes are out due to my work and home schedule as well as my wife's. I looked into distance learning facilities and I just don't have 68k.

You don't need a degree for this stuff (unless you are looking to get hired, but then you would be better off in another field - game developers work more and get paid less). You do need patience, however. These things are not learned overnight.
Quote:Original post by Talee
I just want to make the right decision as far as the kind of game I want to make in the end.

And what kind of game would that be?

This topic is closed to new replies.

Advertisement