• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
scrap

new guy, so many languages

13 posts in this topic

What language would be best to learn as a totally newbie programmer, what language would be most effective in learning the arts of programming, but also as a effective language in making games, or that is closley related to the main language used in game progamming.
0

Share this post


Link to post
Share on other sites
I would say something like java or c# with some really easy to use library. They have similiar syntax with each other and c++ and stuff.
1

Share this post


Link to post
Share on other sites
[url="http://python.org/"]Python[/url]. It'll still take time to learn, so don't give up or switch languages, but stick with Python for a good long while (at least a year, probably several).
0

Share this post


Link to post
Share on other sites
[quote name='Servant of the Lord' timestamp='1333740240' post='4928878']
[url="http://python.org/"]Python[/url]. It'll still take time to learn, so don't give up or switch languages, but stick with Python for a good long while (at least a year, probably several).
[/quote]
well, would python or C# help me better in the long run?
0

Share this post


Link to post
Share on other sites
It really depends on your aim. If you're looking for a language that will help you better understand how computers work, I'd go with C++. If you're looking for a language that has fast development times and large, easy to use libraries that handle all the messy business of memory management for you, then Java or C#.

I've heard a number of arguments for and against Python as a starter language. Having recently graduated from a 4 year Comp Sci program, I got to see the transition of the CS department at GMU from Java to Python when introducing programming concepts. Anecdotally, I think the students who started on Java had an easier time transitioning to more advanced subjects than those who started out on Python. I wouldn't cast Python aside though, it's a very useful scripting language, but perhaps not the best for learning fundamental programming concepts.
0

Share this post


Link to post
Share on other sites
Personally, I tend to prefer C++ for game programming (performance-wise, it's just faster, but does take a bit more time to code in). Java has its places in game programming as well, particularly if you plan on developing Android-based games.
0

Share this post


Link to post
Share on other sites
thanks all for all of your input, i'v decided ill take C# from the information iv gatherd.
0

Share this post


Link to post
Share on other sites
Yeah, you may just wanna go straight for C#, but personally I picked Java, because it's platform independent and they say it's a better thing to start with if you aim to learn both (or all). I'm eventually learning all the C languages as well (which will be much easier once you understand programming better).

In time, you should learn them all, unless you're just looking to make some minor apps or whatever.

Also, regardless of the programming language you choose, you should definitely look into Computer Science in general, such as programming methodology, abstractions and much more. That's not coding per se, but it's incredibly powerful stuff that'll make you understand why things are coded the way they are. Learning simple things like proper programming etiquette (clean code, proper commenting, etc) can actually dictate whether you get a job or not.

Check out Stanford University's youtube videos on programming methodology [url="http://www.youtube.com/watch?v=KkMDCCdjyW8&feature=relmfu"]here[/url].
2

Share this post


Link to post
Share on other sites
[quote name='AlcoJaguar' timestamp='1333741055' post='4928884']
If you're looking for a language that will help you better understand how computers work, I'd go with C++.
[/quote]
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 [i]used[/i] 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 [i]can[/i] learn when programming C++ isn't valuable.

[quote name='AlcoJaguar' timestamp='1333741208' post='4928885']
I tend to prefer C++ for game programming (performance-wise, it's just faster, but does take a bit more time to code in).
[/quote]
Sure, that can [i]sometimes[/i] be true if the programmer in question is experienced enough to be able to write performant code in C++ -- and there certainly [i]is[/i] 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 [i]slower[/i] 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.

[quote name='scrap' timestamp='1333741287' post='4928886']
thanks all for all of your input, i'v decided ill take C# from the information iv gatherd
[/quote]
Excellent decision! Be sure to stick through it with the difficulties you'll inevitably face, start out with the basics, and make sure you do lots of practice along the way; just reading about programming won't get you anywhere unless you're actually writing code to try out what you're being told.
2

Share this post


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

Share this post


Link to post
Share on other sites
[quote name='Black-Rook' timestamp='1333768922' post='4928957']
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!
[/quote]
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!
1

Share this post


Link to post
Share on other sites
XNA Sites I recommend:

[url="http://xnaresources.com/"]http://xnaresources.com/[/url] <- Start here!
[url="http://www.xnadevelopment.com/tutorials.shtml"]http://www.xnadevelo...tutorials.shtml[/url]
[url="http://www.riemers.net/"]http://www.riemers.net/[/url]
2

Share this post


Link to post
Share on other sites
[quote name='jbadams' timestamp='1333765685' post='4928949']
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 [i]used[/i] 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 [i]can[/i] learn when programming C++ isn't valuable.
[/quote]

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 "
[left]learning the arts oF programming".[/left]


[quote name='jbadams' timestamp='1333765685' post='4928949']
Sure, that can [i]sometimes[/i] be true if the programmer in question is experienced enough to be able to write performant code in C++ -- and there certainly [i]is[/i] 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 [i]slower[/i] 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. [/quote]

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:[list]
[*]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.
[/list]
[left]Link: [url="https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf"]https://days2011.sca...ws3-1-Hundt.pdf[/url][/left]

[left]Then you have the Computer Language Benchmarks Game: [url="http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php"]http://shootout.alio...are-fastest.php[/url][/left]

[left]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).[/left]

[left]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.[/left]

[left]Good Luck [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img][/left]
1

Share this post


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

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  
Followers 0