Sign in to follow this  
Talee

Help needed in selecting language.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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/

Share this post


Link to post
Share on other sites
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++.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
I may be wrong but isn't OpenGL software based? How does an OpenGL based game stack against a DirectX or Direct3D game as far as speed, graphics rendering and graphics detail?



[Edited by - Talee on March 7, 2010 9:27:13 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by DevFred
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?


One would be a space combat/first person shooter client/server mmo and another would be a World of Warcraft client/server type of an mmo.

Share this post


Link to post
Share on other sites
Quote:
I may be wrong but isn't OpenGL software based?
No. It's just like Direct3D. I think all the arguments have already been laid out about choosing a language (not in this thread, but just from being able to search the forums).

You either worry about notions of performance and power by which you don't have ways to measure to spec or benchmark, or you accept that you should discard those notions and focus on actually gaining experience. I don't think there's any point in fighting a battle to convince you of our position and views. Go with what you are motivated to try. I guarantee you will abandon your concerns of power, performance, and whatever else you have, once you actually attempt to create something notable.

But if you think you are going to be plagued with worries if you choose a language other than C++, go with C++. Just do it.

Share this post


Link to post
Share on other sites
Quote:
Original post by oler1s
Quote:
I may be wrong but isn't OpenGL software based?
No. It's just like Direct3D. I think all the arguments have already been laid out about choosing a language (not in this thread, but just from being able to search the forums).

You either worry about notions of performance and power by which you don't have ways to measure to spec or benchmark, or you accept that you should discard those notions and focus on actually gaining experience. I don't think there's any point in fighting a battle to convince you of our position and views. Go with what you are motivated to try. I guarantee you will abandon your concerns of power, performance, and whatever else you have, once you actually attempt to create something notable.

But if you think you are going to be plagued with worries if you choose a language other than C++, go with C++. Just do it.


Ok. Thanks for the information. I did not mean to cause any hostile feelings here. I just wanted a good understanding of the differences in the languages before I commit myself to one. I was not looking to be convinced of anything. I have learned a great deal of information not just from this thread but from others as well. Thank you all for your help.

Share this post


Link to post
Share on other sites
Quote:
Ok. Thanks for the information. I did not mean to cause any hostile feelings here.
No hostile feelings. Those of us with experience have a very good sense of what is going through your head and what you are feeling.

And from experience, we also know what advice to give. In the end, it's just a question of what you accept, what you worry about, what you feel. Ultimately, just get started. In the long run, your choices now will not matter. Technologies change, but programming doesn't.

Share this post


Link to post
Share on other sites
Quote:
Original post by Talee
One would be a space combat/first person shooter client/server mmo and another would be a World of Warcraft client/server type of an mmo.

Unless you invent immortality, it is extremely unlikely that you will ever create a full-blown, finished WoW clone on your own. Most people simply don't live long enough.

Quote:
Original post by Talee
I just wanted a good understanding of the differences in the languages before I commit myself to one.

You don't marry a programming language. Start with a relatively simple language like C# or Python. Do Tic Tac Toe and Tetris clones. You will be surprised how hard these seemingly simple games already are without any prior experience in programming.

You can always move to C++ at a later point in time if you wish so, and 90% of the stuff you will have learned up to this point can be transferred to any language. Then you will only have to spent about 2 years to learn all of C++'s gotchas/undefined behavior, but by then you will already have a solid understanding of what a variable is, what an if/else statement does or why OO might be a good idea.

Don't worry about "committing" to a specific language or technology. For example, if you start with OpenGL and later move to DirectX, you will already know what culling and lighting and vertices and matrix multiplications are. All you have to learn are some new concepts and a different API, but there is a huge overlap in the core ideas.

Share this post


Link to post
Share on other sites
I think Java is a great language for hobby game development. I never really got interested in python, but did plenty of Java in school. I worked on a tetris clone for abit with Java, and found I was able to get somewhere somewhat quickly. JMonkeyEngine is pretty powerful too, but can be a little bit of a pain to get it setup initially. Find the right tutorial for your version of Eclipse/Netbeans and you're good to go.

I've been sticking with C++ for game dev lately, which I'm not really sure why. I guess I like the idea that I'd have the knowledge if I ever pursue the game industry, but I am really more of a web development guy. Really it all depends on what you want out of game development. There's a mix of needs for both C/C++ knowledge, and scripting knowledge. Blizzard uses both C++ and Lua for example.

Share this post


Link to post
Share on other sites
just to put me oar in =P

dark basic dose have limeted network capability but is extreemly easy to use (it got a built in help which is easy to use) and it can use dll written in c++ and i think can be written in c# so u could use DB as a core programme that call dll's (written in c++ for example) for networking. There have bin dll's written for dark basic that clame to handle 9,999 players, i'm not shure though cos i havent used it yet.

the problem with DB is its a bit slow and it gonna cost ya

c++ is free, fast but difficult to learn (as i'm finding out =S)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this