Advertisement

Is starting with gamedev too much?

Started by May 11, 2017 11:01 PM
16 comments, last by Dr_Asik 7 years, 6 months ago

It is easy, only what do you want : something windows ?, that is more difficult, alot to learn.

Get your project where you can program in, and forget all the windows codes, later you can adjust.

Dont forget, test every aspect, add small things and test and fix before adding big things, testing cost more time then programming.

S T O P C R I M E !

Visual Pro 2005 C++ DX9 Cubase VST 3.70 Working on : LevelContainer class & LevelEditor

unique_ptr is one of many C++-specific concepts you will have to learn. It's definitely a difficult language to start with; you'd have a far easier time with Python for example. And it's not like Python's limitations would be an issue for you anytime soon; you can write great games and even emulators in it if you want. By the time you're advanced enough to run into some of its limitations, you'll be in a great position to decide where to go from there and whether that's C++ or something else.

Advertisement

C/C++ is the best language to learn as a first language. It shares concepts and keywords with most other high level languages such as C#, Java, Javascript, etc. Learning it first makes learning those other languages easier, but not necessarily the other way around. C# is simpler for beginners to avoid mistakes, because it wipes your butt for you a lot, but it also encourages, or at least fails to discourage, bad programming habits, like the infamous failure to deallocate memory and other resources. It also doesn't really bring anything to the table that I have seen. Admittedly I've only been using it sporadically for a couple years now, and mostly just for writing scripts in Space Engineers. Everything I write professionally is in C++ or assembly.

What framework you use is entirely up to personal taste. Frameworks change more often than the weather, and what is popular today might be deprecated a few years from now. Understand that I'm coming from 35 years of programming. My first game was written in GW-BASIC (Nuclear Bomber) and everything was line art and sprites. When I started serious (non-game) programming, DOOM (the original) and Castle Wolfenstein (the Original) were the epitome of high end game development, raster operations where done by the CPU, most of which didn't even have floating point units, graphics cards were little more than VRAM and a DAC. Over the years I've seen hundreds of frameworks come and go, and even a few languages, but C++ has stuck around. So I'm not basing my suggestion on some entrenched elitism. C++ is here to stay. It has everything a language truly needs and 50+ years of history. You will never regret learning C++ as your first language.

C/C++ is the best language to learn as a first language.

Highly debatable. It's worth mentioning that the FAQ we tend to guide beginners to advocates against C++ as a first language: https://www.gamedev.net/reference/faq.php/_/for-beginners-r1

Hello to all my stalkers.

C/C++ is the best language to learn as a first language. It shares concepts and keywords with most other high level languages such as C#, Java, Javascript, etc. Learning it first makes learning those other languages easier, but not necessarily the other way around. C# is simpler for beginners to avoid mistakes, because it wipes your butt for you a lot, but it also encourages, or at least fails to discourage, bad programming habits, like the infamous failure to deallocate memory and other resources. It also doesn't really bring anything to the table that I have seen. Admittedly I've only been using it sporadically for a couple years now, and mostly just for writing scripts in Space Engineers. Everything I write professionally is in C++ or assembly.

What framework you use is entirely up to personal taste. Frameworks change more often than the weather, and what is popular today might be deprecated a few years from now. Understand that I'm coming from 35 years of programming. My first game was written in GW-BASIC (Nuclear Bomber) and everything was line art and sprites. When I started serious (non-game) programming, DOOM (the original) and Castle Wolfenstein (the Original) were the epitome of high end game development, raster operations where done by the CPU, most of which didn't even have floating point units, graphics cards were little more than VRAM and a DAC. Over the years I've seen hundreds of frameworks come and go, and even a few languages, but C++ has stuck around. So I'm not basing my suggestion on some entrenched elitism. C++ is here to stay. It has everything a language truly needs and 50+ years of history. You will never regret learning C++ as your first language.

  • There is no language called "C/C++". There is C, and there is C++, and if you can't name ten differences between the two off the top of your head, you know neither well enough to recommend languages to anyone.
  • Sharing "concepts" and "keywords" is less than meaningless in this context. Python has some keywords that overlap with C++. Intercal has some concepts that overlap with C++. All three are vastly different languages.
  • Learning programming and learning C++ is a tall order. Learning programming in a more forgiving environment and then diving into C or C++ is much more gentle. This ground is so well-trodden on GDNet that we have a FAQ about it, linked above.
  • The fact that you have to try really hard to even make mistakes like memory leaks in C# is a powerful reason to embrace it; C# - like most modern languages - goes out of its way to make it difficult or even impossible to make certain categories of programming errors. It isn't "wiping your butt" and that language is frankly condescending and borderline offensive.
  • C# is actually responsible for popularizing a lot of modern programming concepts: generics without type erasure (c.f. Java), first class functions, concurrent garbage collection, LINQ... the list goes on. Even things that C# did not "invent" it did a lot to drive forward into mass adoption.
  • If you haven't done professional or even non-trivial programming in C#, why are you advocating against it? By your own statement you don't know the language well enough to make that value judgment for yourself let alone for an impressionable beginner.
C++ is a roaring dumpster fire of a language that was barely saved from extinction by C++11 and C++14. The existence of better languages is largely what has motivated its slow crawl away from stagnant extinction in the past decade. It hardly has "everything" and yet some would even argue it has far too much.

It also doesn't have "50 years of history" unless you count all of its predecessors (C, BCPL, etc.) and even that's tenuous at best.

It's fine if you like the language, but please keep in mind that your personal taste is not objective truth, and what you like is not necessarily the right thing to recommend to a beginner.


[edit]
Oh, and Wolfenstein 3D was not the "original" Wolfenstein game. That honor goes to, well, Castle Wolfenstein, originally on the Apple II.

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

I wouldnt really call C++ a roaring dumpster fire .. but thats probably because I love it as a language, was the language I started out with all of like a decade ago now. It's not the worst language to start out programming with because as mentioned it really does leave a lot of ways open for you to fuck up so you either end up with poorly made programs or you improve your coding standard fairly fast.

I would say that a transition from a C# programmer would probably be harder than the other way round obviously, though C# is a pretty decent language and it would introduce the key areas without frowning you in "oh god I need to be super careful on my code".

I would still say that learning C++ first is the proper "trial by fire" .. heh "trial by roaring dumpster fire" way to learn programming. Though it wouldnt be suited to everyone.

Advertisement
@gibbonthatcodes

That is a perfect analogy. The first day of my C++ class in college my professor said "I can't really teach you to do this, but I can weed out the people who can't". The course was two semesters we started with 25 ended with a dirty dozen, the instructor was fairly merciless, but we learned a lot. We existed in stark contrast to our joyful Java counter parts, we were working for it and it felt great. When the year was done they had flashier toys, but we had an understanding that went much deeper than theirs.

The Quarry Works Creed

We who shape mere stone must always envision cathedrals

It's interesting to see how mentalities have evolved. 10 years ago when I started, people would generally agree C++ was the way to go as a first language for game development, and I was the weird guy recommending C# or Python instead. :P

This topic is closed to new replies.

Advertisement