Regarding what library/langauge to use

Started by
4 comments, last by omercan1993 11 years, 9 months ago
There are a lot of threads in this forum, started by beginners such as myself, that ask which language to use, which one is easier, which one is more powerful. Same goes for game developing libraries or programs. I thought it would be constructive to present my experience as a beginner in this topic.

I've had an interest in programming since I took a QBasic course in middle school, although I didn't try to learn to program in earnest until a year ago. I started out with python, which was presented to me as a very simple and powerful language, also welcoming for beginners. I had just gotten my feet wet with python, when I started reading comments on how innefficient it was when it came to game programming. (Important note: Start taking forum comments as opinions, sometimes based on valuable experienced, but nothing more. You have to develop your own criteria through experience)

So I switched from python to C++, and continued learning, mostly through online tutorials and helpful individuals. It was a difficult, but enlightening at the same time. For example, the concept of functions was clearer to me when I used them in C++ than when I tried to use them in python. (In retrospective, it was the use of functions per se that cleared the concept, not the way the any of the languages present them.) It's curious how the simplicity and efficiency of working with python only became clear after I had worked with C++.

Even though I was overwhelmed by certain aspects of C++ (namely, pointers, templates and headers) I liked its strictness regarding syntax, which felt to me a lot more organized than python's. (Forced indentation vs curly brackets? Give me brackets any day!) I continued learning and eventually introduced myself to SDL, and subsequently to SFML. Finally, I could see some graphics on the screen! I wasn't making games yet, but at least I was moving sprites around, and that felt great by itself.

After using SFML for some time, I got interested in XNA, and figured that the jump from C++ to C# wouldn't be much problem. Turns out that I was misusing C++. Instead of programming in an object oriented paradigm, I was actually doing C/C++ halfbreed programs. I'm still getting the hang of object-oriented programming, but the point is that working with a fully OO Language (C#) was what made it evident.

While I had used classes in C++, I didn't grasp their concept until I programmed in C#. And with C#/XNA I learned valuable lessons regarding how to distribute jobs between classes, giving different parts of the program very specific instructions to carry out. As a result, when I returned to C++/SFML, I felt encouraged to work with multiple files and headers. No more gigantic main.cpp files. Instead, I created directories with main,cpp, input.cpp, gameloops.cpp, mouse.cpp, graphics.cpp, and so on.

Most importantly, all of this time I had been programming.

I learned to read g++'s compiler errors and Visual Studio's errors and warnings. I learned the value of an IDE after working with gedit (which I still use, and is great), and I learned that newbies have nothing to do messing with vi(m) or emacs (maybe I'll try again when I'm a proficient programmer). Every switch I made, from language to language, library to library, taught me something new.

In conclusion, I want to make it evident that you shouldn't be asking which language you should use, or which library. You should try it out for yourself. You'll learn a lot in the process. You'll learn that there are so many choices out there because each one serve different purposes. Experiment, and you'll find which one is right for you and your project. I've been going at this for a year (granted, I got a day job which keeps me busy) and I still consider myself a beginner.

I guess most of the content of this post was already said elsewhere (especially Tom Sloper's site, which is an excellent source of advice and information), but since the question regarding which language to learn and which library to use pops up so often, it might as well be said again.

Starting out in game programming? Me too! Check out my blog, written by a newbie, for the newbies. http://myowngamejourney.blogspot.mx/

Also, if you don't mind a 5 seconds ad, here's a great free ebook for beginners on the subject of pygame: http://bit.ly/19Bem2q

Advertisement
I appreciate you encouraging people to learn C++ as first language. I also heard about this language called DarkBASIC, that might be a great starting point for several beginners
Wow, as i was reading this, I kept thinking "Is this guy me?!" I too am just starting to develop very basic games(I dont know if you can even call them games yet,) with sprite animation and collision detection. I spent all my first and half of my second year programming in college thinking "When am I going to be able to see stuff on the screen other than a command line?? Seeing sprites being animated by my c++ code was such a wonderful feeling.

I also think that I am still learning the true object oriented approach and writing half breed programs. I plan to study up on it more before tackling my next game project. I will learn C# next after I get more comfortable creating real games with Direct X, and learning HTML/CSS/Javascript/PHP. I have a bunch of free time as I am only taking 1 class next semester and 1 other class the semester after before receiving my A.S in CS and transferring.

I appreciate you encouraging people to learn C++ as first language. I also heard about this language called DarkBASIC, that might be a great starting point for several beginners


Well, I didn't mean to encourage its use, because it might not be a good first step for everybody. My emphasis is on trying it out and experiencing it as a language if you're interested. If it turns out it's too hard, or the concepts too abstract, you can rest assured there are friendlier lanuages out there.

Starting out in game programming? Me too! Check out my blog, written by a newbie, for the newbies. http://myowngamejourney.blogspot.mx/

Also, if you don't mind a 5 seconds ad, here's a great free ebook for beginners on the subject of pygame: http://bit.ly/19Bem2q


Well, I didn't mean to encourage its use, because it might not be a good first step for everybody. My emphasis is on trying it out and experiencing it as a language if you're interested. If it turns out it's too hard, or the concepts too abstract, you can rest assured there are friendlier lanuages out there.


QFT.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

You should try it out for yourself. You'll learn a lot in the process.[/quote]
This is true... I myself started many projects... often they were big ones, like an Operating System, a 3D Engine, RPGs, Strategy Games, Protocols, Simulators, Emulators, etc...
Most of the projects failed, but everytime I learned a lot... I learned the internal scheme of the Linux and Windows System, I learned Assembler, I learned the internal structure of TCP/IP or how a Processor works... The real list is long, but it encourage me to continue... No projects and may it be small as everything, is a real fail.
Everytime you learn a lot... How you can learn Qt without a sample or a big project? There is no other way than trying smile.png
My motto: Try it... fail it... try it again!
I think I will don't change my way... I'm only 18 (ok, in a month 19 ;) ) and learned a lot this way. Why should I went out of my path?
Reading, Reading, Reading... why do you read not more?
I have a blog: omercan1993.wordpress.com look there for more content
And I also do some art: omercan1993.deviantart.com
And whats about the Pear3DEngine? Never heard of it? Go and look!
Yeah, and currently I do this: SimuWorld

PS: Please look at this poll on my blog about scripting languages: A opinion poll about scripting language

This topic is closed to new replies.

Advertisement