Where to start to program a game

Started by
24 comments, last by yuminig 11 years, 10 months ago

Now, you could argue if C is hard or not, but that's a completely different conversation.


Not to get too far off topic but I would argue learning C first isn't harder, it's more a case of understanding how things work on a low-level before using them on a high-level.

To continue your analogies, I wouldn't learn how to make a cake until I'd learnt about eggs and how they must be cracked first. If I understand the ingredients, my recipe is much more refined.
Advertisement
Somebody please tell me which languages are the best for learners (first time game developers) , maybe small game or large game doesn't matter but want a language that can be used to develop from small games like angry birds to big games of mmorpg type like Ragnarök , rune scape ,world of Warcraft etc.
please do help me as i am interested in developing games and i do know basic programming in C and am trying to learn C++ ,C# for the above purpose.
i am planning of developing the games in India (my home country) because of low labor costs.
can you please give me an estimate for runescape type game how much money is needed for every aspect of developing like servers, softwares , how much hours of developing , what are the per hour rates for developers in Europe , U.S. and also the currency.

i do have some concepts in mind though but am thinking of developing small games (coding wise) and then go for the big ones !!!


For new C++ programmers, they should be encouraged to stay the hell away from C and instead learn idiomatic C++.

Second, C++ is a horrible first language, period. Don't believe me, read this scenario and be completely honest with yourself, "could you have found the problem?". That's because C++ is rife with this kind of crap and you will be dealing with it from day 1! People say it's stuff like memory management that make C++ difficult, but it's not, not really... it's stuff like this. The horrible linker, the lets support every single bloody edge case even if nobody is ever going to use them mindset, the piss poor standard libraries, the fact its actually 4 languages smashed together, the weight of a thousand legacy mistakes. All of those negatives may eventually be a positive ( except the linker, which just sucks ), but to someone starting out they all work together to make C++ a terrible terrible starting language.



C++ was my starting language and same with a number of people I know. It isn't really difficult. And it seems to me that this is more of a rant against a language. Shouldn't really scare someone from using a language like that. I'd say take some time to check out C++ till an intermediate level is reached and see if it's the right language or not. I mean, it IS an industry standard. Almost every Game Dev related degrees in colleges are also starting with C++. Yeah C++ can be difficult, but every language have war stories. When I started with C++, in about 4 months I ended up making an Assassin's Creed version of Pong using Direct2D with animated sprites, FMOD implementation, etc. Plenty of people get through C++ as their first language and the results are very positive. Also, understanding C++ makes using C a LOT easier. Implementing C functions in a C++ program gets some nice results with the wide variety of libraries and methods. I think using it as a starter language depends on two main things: 1) how much time you have and 2) why you want to make games. Since you're 15, I'm guessing other than high school, you have plenty of free time. So maybe learn another language first, then go to C++. With enough dedication you could probably be at least Intermediate at programming before you even hit 18! And why do you want to make games? Do you want to do is as a small hobby? I've found that Java or ActionScript(Flash) are good for just making a few quick and fun games. Or maybe you want to turn this into a career? In that case consider where your dreams take you. Mine took me to the multi-platform development. In that case, I went straight to C++ (then C#, then Java, but Java was just for fun). But maybe you don't want to focus ONLY on making games for PC/PS3/360/Wii, maybe you just want PC, well then you have a much larger choice (I enjoy C#, but I'm also a lover of Object Oriented Programming), but you could make flash games or web games (Java,ActionScript,HTML5, etc) or downloadable games(C++,C#,etc).

Or hey, you got some scripting under your belt at a young age, that's really impressive! I'd say be a boss and make an OS strictly for gaming using assembly language! lol.

... SNIP ...
Again, a little off topic, so I'm done posting about it, I just wanted to clarify what I was talking about and that I completely agree with you that you should start simple when learning new things, I just disagree on whether or not it's possible to start simple with C++.
... SNIP ...


Since you are done, not much point in replying to you in detail. C++ really doesn't start simply, that's the catch. Right off the hop, you need to understand the compiler, the linker and the preprocessor, just to make a simple Hello World. From there the complexity level ramps up extremely quickly compared to other languages, especially once you start dealing with external libraries or hell, even once you start breaking your code into multiple files a common tripping point for new C++ developers. I won't even get into UI programming, where C++ takes a complete and utter dump. ( Or you use Qt, which essentially involves learning yet another language! ). This isn't even getting into the fact that C++ itself is a mashup of a number of languages, all of which are different... hell, the C++ templating language is turing complete!!!! So, yeah, the code requirements of a trivial "Hello World" application might be simple and approachable, but it ends shortly thereafter, once the new developer realizes just how terrible the standard libraries are. So, you may be able to start simply in C++, but you will stay simple only while creating the most trivial of applications. Again, I am not arguing that you *can't* start with C++, I'm just saying its not a particularly good idea.



Somebody please tell me which languages are the best for learners (first time game developers)


Read this. On top of that for smaller 2D style games, add HTML5, LUA/Love/Moai, ActionScript and Cocos2D to the list of viable languages. ,


maybe small game or large game doesn't matter but want a language that can be used to develop from small games like angry birds to big games of mmorpg type like Ragnarök , rune scape ,world of Warcraft etc.
[/quote]
Programming language selection is the least of your concerns in this regard, and chances are in almost any of those games you would use multiple programming languages. Hell, Mozilla released the sourcecode to a simple HTML/Javascript MMO recently.


please do help me as i am interested in developing games and i do know basic programming in C and am trying to learn C++ ,C# for the above purpose.
[/quote]
Read the link I gave you, the next part is up to you.


can you please give me an estimate for runescape type game how much money is needed for every aspect of developing like servers, softwares , how much hours of developing , what are the per hour rates for developers in Europe , U.S. and also the currency.
[/quote]

Yes, I suppose I could. I won't, and I doubt anyone else will either. First off, such numbers would be meaningless, second, such a task would take an insane amount of time. You can get costing details from GDMag post mortems, expect the most basic MMO to cost you > .5M, with the typical being in the 3-20M range and something like Old Republic more like the 80M mark.


i do have some concepts in mind though but am thinking of developing small games (coding wise) and then go for the big ones !!!
[/quote]

Do exactly that, start small.
C++ was my starting language and same with a number of people I know. It isn't really difficult. And it seems to me that this is more of a rant against a language. Shouldn't really scare someone from using a language like that. I'd say take some time to check out C++ till an intermediate level is reached and see if it's the right language or not. I mean, it IS an industry standard. Almost every Game Dev related degrees in colleges are also starting with C++. Yeah C++ can be difficult, but every language have war stories. When I started with C++, in about 4 months I ended up making an Assassin's Creed version of Pong using Direct2D with animated sprites, FMOD implementation, etc. Plenty of people get through C++ as their first language and the results are very positive. Also, understanding C++ makes using C a LOT easier. Implementing C functions in a C++ program gets some nice results with the wide variety of libraries and methods. I think using it as a starter language depends on two main things: 1) how much time you have and 2) why you want to make games. Since you're 15, I'm guessing other than high school, you have plenty of free time. So maybe learn another language first, then go to C++. With enough dedication you could probably be at least Intermediate at programming before you even hit 18! And why do you want to make games? Do you want to do is as a small hobby? I've found that Java or ActionScript(Flash) are good for just making a few quick and fun games. Or maybe you want to turn this into a career? In that case consider where your dreams take you. Mine took me to the multi-platform development. In that case, I went straight to C++ (then C#, then Java, but Java was just for fun). But maybe you don't want to focus ONLY on making games for PC/PS3/360/Wii, maybe you just want PC, well then you have a much larger choice (I enjoy C#, but I'm also a lover of Object Oriented Programming), but you could make flash games or web games (Java,ActionScript,HTML5, etc) or downloadable games(C++,C#,etc).

Or hey, you got some scripting under your belt at a young age, that's really impressive! I'd say be a boss and make an OS strictly for gaming using assembly language! lol.


First off, I would recommend you use paragraphs more when quoting someone, I could have sworn you called me 15 the first few times I read that! smile.png

I think I covered why I disagree with you in this post and in previous ones. I will leave you with an analogy though that perfectly sums up my view of C++ and beginners.

Do you golf? I do and I am remarkably meh at it. I don't embarrass myself, but I am no Tiger Woods( now, or before he started to suck); considering I am drunk more often than not while playing, I am pretty content with my skill level.

I went shopping for new clubs a couple years back as my skills improved, and picking out golf clubs is remarkably similar to picking out programming languages. I went with a set of Ping 'blade' style clubs. You know why? That's the club the pro's use! Wanna know what it did for my game? Destroyed it, absolutely and completely! I added about 10 strokes to my game over all, a gigantic step backwards. Why is that? Well in order to take advantage of blades, you need to hit the ball EXACTLY right. What does this get you in the end? If you swing perfectly, probably another 10-15% yards in distance and the potential to put a bit more spin on your ball. See, I can certainly still finish a round of golf with these clubs, but it sure aint as pretty as if I used the "right" clubs. They certainly have their place in a golfers bag, but they sure as hell do not belong in a beginners bag! Now I suppose I could have started from day one using blades, and this would save me the learning curve later on down the road. Yet by then I would have probably quit the game in frustration, or would take a hell of a lot longer to get good at it. For the record, not all pro's use blades...


Coincidentally I started with Assembly in an age where people looked down their noses at anyone that started with C as too high level, which was as stupid in that day as it is now. My High School CS course taught PASCAL and I turned up my nose at it at the time, as I already knew C. I guess some lessons you need to learn in your own time...

[quote name='Rybo5001' timestamp='1337947348' post='4943203']
[quote name='Serapth' timestamp='1337431887' post='4941421']
learning C is not a great starter language


Totally disagree with this, C was my first language and learning the hard stuff first makes every language after that so much easier (especially since you understand what's going on beneath the syntax)
[/quote]


This is one of those baffling pieces of logic I see recurrent among ( pro and prospective ) game developers. Think about this for a moment, with every other topic you can imagine for which formal instruction exists... do you EVER start off hard to make the easier stuff later seem easier?

No, you don't. You start learning math by learning your numbers and sums and progress from there. You don't start with calculus! When learning to cook, you don't start with a souffle. If you pick up a chiltons manual to fix your car, does it start off with engineering an engine? Do interns start with open heart surgery? You don't learn English by reading great literary works, you start with the basics, like Mr Muggs goes to School and Red Shoe, Blue Shoe, Green Shoe, MooShoo.


This whole meme of starting with the hard stuff to make the easy stuff easier is so patently wrong in 99.999999% of endeavers, what exactly makes computer science so unique as to buck the trend.

Here's a hint. Nothing.

Starting hard is just a bad way to waste your time. Don't get me wrong, you can do it, it's just certainly not a productive way to go about things, as millennia of teaching experience has already taught us.

Now, you could argue if C is hard or not, but that's a completely different conversation.
[/quote]

I agree whole-heartedly. I started with VBasic, for a little while, and was like "this is slow, I bet I'll get great much faster by going with C++!". I took a beating. For a beginner, something like Python, or VB, or a scripting language is great, because printing something to the screen. Is print "hello, world". You don't sit there and scratch your head trying to figure out what the cryptic method calls are, and what an include statement is. It's possible to do it. I probably could have. However I'm glad I stepped back from that and went to Python for a while. With the little time I initially spent with C++, I felt like I was backpedaling the entire time, just so I could glimpse the top of the mountain.
Asking "What programming language should I use?" is like asking "What path should I take?". just pick any random programming language and start practicing. the important thing is learn the basic of the basic and how you can be witty and creatively solve your problems. every language has it. "declaring variables", "if statement", "loop statement", "functions" "including and calling the functions or libraries(set of functions)". if you get stuck just google it.

This topic is closed to new replies.

Advertisement