new guy, so many languages

Started by
12 comments, last by Junior951 12 years ago

The problem with a lot of new programmers is that they jump around too often with languages and tools. If you're going to pick C#, grab hold of XNA and just start making games from start to finish once you know the basics of C#, and never give up! I know this isn't an issue yet in your case, but you see a lot of programers that could develop a lot more skill in general game programming if they spent more time with one language and made some games.

If you stick it out, within a few years you will be very happy with what you can accomplish!

Best of luck!

thank you, i spent all day this C# and learned a few things already. i will look into XNA soon also to see. been watching alot of youtube videos and using the microsoft visual express for doing the writing. the science behind it i will also look into as they guy said a few post above. im just trying to asorb as much information as possible on my journy to making real games! thank you all for the help and advice!
Advertisement
XNA Sites I recommend:

http://xnaresources.com/ <- Start here!
http://www.xnadevelo...tutorials.shtml
http://www.riemers.net/
GameDev Journal: http://www.gamedev.n...-rooks-journal/

OpenChess - 1.0 done!

Classic RPG #1 - Task 9 -> January 1st 2013

That's not entirely true -- even low level C++ code (i.e. not taking advantage of library functions) has very little relation to how the hardware of a modern computer works -- modern operating systems provide numerous layers of abstraction and safety, meaning that you'll learn very little about how the computer actually works by writing C++. C++ can however potentially give you an excellent idea of how computers used to work 15-20 years ago, or how some embedded devices operate. Wanting to understand how the underlying system operates isn't really a good argument in favour of choosing C++. All of this isn't to say that some of the things you can learn when programming C++ isn't valuable.


I wasn't arguing C++ was a low level language, but it is certainly a step closer to bare metal than running code in the Java JVM or .NET CLR. I started my education nearly a decade ago with C++ and still heavily use it today, employing JNI anytime I need to do more computational intensive operations to improve performance if I happen to be developing a GUI in Java. The fact of the matter is that PCs 15-20 years ago are nearly conceptually identical to PCs today. It wouldn't hurt to have an understanding of memory management, pointer arithmetic, and maybe encounter some interesting problems that arise from common coding mistakes (you can't know how to avoid introducing common buffer overflow vulnerabilities if you don't know what they are). If you really wanted to get down to machine level specifics, C is an easy language to use when learning the correspondence between the source you compile the assembly generated from disassembling that same program. Though I admit this has little to do with game programming, I was more concentrating on his request for "

learning the arts oF programming".





Sure, that can sometimes be true if the programmer in question is experienced enough to be able to write performant code in C++ -- and there certainly is a performance overhead associated with languages such as C# and Java, and even more-so Python -- no beginner has that experience however, and it's unlikely that they'll gain it for quite a long time. The average beginner will make enough mistakes that their C++ code will end up executing slower than an equivalent program written in a language such as C#, where there are generally less mistakes to be made. Even worse, there's often a tendency in beginners learning to use C++ to try to micro-optimise (having originally chosen the language "for performance"), often resulting in slower final execution when they would have got better results by simply trusting the compiler.


Provided you don't write particularly bad code and have more than a tutorial understanding of the language, it's generally considered the best performing widely used programming language.

Google published a paper last year comparing certain C++, Java, Scala, and Go implementations and ReadWriteHack summed it up fairly well:

  • C++ provides the best performance by far, but it requires the most extensive language-specific tuning.
  • Scala provides the most concise notation and optimization of code complexity.
  • The algorithm was simplest to implement in Java, but garbage collection settings make both Java and Scala difficult to benchmark accurately.
  • Go offers concise notion and very fast compile time, but is still immature.

Link: https://days2011.sca...ws3-1-Hundt.pdf



Then you have the Computer Language Benchmarks Game: http://shootout.alio...are-fastest.php



Now I do concede it is one of the more difficult languages to start with and will require an understanding of pointers, free store, and subsequent memory management (which is why I recommended it for understanding abstracted concepts common to all languages, if they are hidden in ones that depend on garbage collectors).



All in all though, the OP's choice of C# is a good for rapidly getting up to speed on Microsoft's offerings, which opens up a lot of platforms.



Good Luck smile.png

I guess I'm confused as to why people have such a hard time with C++... My first semester I did Assembly and C++, and aced them both. I like C# but Visual Studios has so many extra gadgets that I felt like I wasn't learning enough. I personally recommend C++ as a starter, but then again I'm not a pro, so I guess the best suggestion I can give you is to look at some code... If it looks like something you could understand than go with that language, but once you've decided on one, STICK WITH IT until you are where you want to be with it.

Good Luck

This topic is closed to new replies.

Advertisement