Home General Discussion

Programming - Tutorial or forum suggestions?

mod
Hey all,

So, I've done a bit of programming before with actionscript 3 in flash, and I was decent at it. Understood it. But, now I want to try and learn a bit more advanced stuff so I can possibly prototype a game idea I have.

Ive done a bit of research, and I think I have decided to go with c# (c++ seems a little out of my league right now). So, I was wondering if anyone knows any good tutorials / books / online resources / forums for it.

Any help / suggestions would be greatly appreciated.

Cheers

Replies

  • slipsius
    Thanks teejay. I actually know of, and love codeacademy. But, I dunno if Java will suit my needs. I dont want to do it for ios or browser, but rather computer / xbox live kinda deal.

    Im not a huge 2d guy, but I do want to do a duel stick shooter type game, and I think 2d may be better suited. so maybe java would be best. hhmmmmm
  • slipsius
    ya, my biggest issue has been finding a good tutorial system for C#. code academy is freaking awesome, but they dont have it for C# :(
  • JonathanLambert
    Offline / Send Message
    JonathanLambert polycounter lvl 6
    Go old school and buy a book or two. Programming is a collection of fundamental concepts. Learn about variables, program flow, functions, classes, OOP, recursion, etc. Different languages have different syntax, structures, and advantages but the core concepts transfer from one language to another.

    That said, I found it really easy to learn C#. However, I believe the new Kismet system for UE4 is going to be C++, if that is something you plan on using.

    MIT has some open course ware online with free lectures that use Python.
    http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/
  • ambershee
    Offline / Send Message
    ambershee polycounter lvl 17
    This book goes through all the fundamental concepts you'll need in C#. They also apply to other C-style languages like Java, C++ etc.
    [ame="http://www.amazon.co.uk/Programming-Key-Aspiring-Programmers-Pro-Developer/dp/0735618003/ref=sr_1_1?ie=UTF8&qid=1355245055&sr=8-1"]Programming in the Key of C#: A Primer for Aspiring Programmers Pro-Developer: Amazon.co.uk: Petzold Charles, Charles Petzold: Books[/ame]

    Once you've gotten through that, you can easily pick up on XNA / UDK or something similar.
  • Broadway
    Offline / Send Message
    Broadway polycounter lvl 9
    I haven't read this particular book, but I read the Java version to prepare for a programming course in college (at the prof's recommendation) and it got me up to speed pretty quickly. So I would imagine this book might be helpful as a C# intro:

    [ame="http://www.amazon.com/Head-First-C-Andrew-Stellman/dp/0596514824/ref=sr_1_1?ie=UTF8&qid=1355244937&sr=8-1&keywords=head+first+c#"]Amazon.com: Head First C# (9780596514822): Andrew Stellman, Jennifer Greene: Books[/ame]


    If it's anything like the Java version, it will definitely not get into anything too complex, but as a first look at the language it should be a quick and informative read.
  • Stromberg90
    Offline / Send Message
    Stromberg90 polycounter lvl 11
    Take a look at 3DBuzz, seems like sort of a underrated site.
    But they have tons of videos on different subjects, a lot of them free or buy a member sponsor ship and get it all, pretty cheap as well :)

    http://www.3dbuzz.com/vbforum/sv_videonav.php?fid=0ff61b695c6bdfd1a409d4e94c13ae33
  • JamesWild
    Offline / Send Message
    JamesWild polycounter lvl 8
    I'd say: learn both game programming and "normal" systems/business programming. Both very useful for games. Much of the good structure and testing stuff is sorely amiss from most games. Knowing anything about what your high-level C# compiler is doing at a lowish level makes it far more obvious what's going on when stuff goes wrong, and I'd argue you can't be a resourceful programmer without having a lot of resource to draw on.
  • notman
    Offline / Send Message
    notman polycounter lvl 18
    Once you get the basics of any 'C' based programming language, you'll be pretty much ready for most code out there. C# is probably a good place to start, because it offers a LOT of tutorials. The main difference between it, and C++, is that C# basically eliminates the header files (which I find annoying/redundant when coding).

    Anyway, as far as tutorials go, I liked many of the video tutorials that MS offers: http://www.asp.net/web-forms/videos
    I find the video tutorials to be much better than someone's text on a blog. The main reason being, most text tutorials seem to suddenly leap over steps, and assume you know what they are now referring to. With the video tutorials, you get to see what menu items are clicked, and where the user navigated in Visual Studio.

    Also, you may want to create a small project idea. A small app that maybe already exists, but helps give you purpose to your project, even if you don't use it later. I've always found that more helpful then some generic example from the web.

    And a good book is always nice to have for quick reference. Especially if you don't have dual monitors.

    You can always ask here for help too, if you have any questions. I'm willing to throw in some help whenever I can. I worked with C# for several years. Right now, I'm doing mostly VB.net, because my new employer favors it, but I still prefer C# ;)
  • JamesWild
    Offline / Send Message
    JamesWild polycounter lvl 8
    Should make it clear that just because a language has C in the name doesn't mean it's anything like C#.

    C -> low level procedural small fast but difficult to use for large projects language. Almost everything is done by working directly with memory addresses in the form of pointers, even string manipulation.

    C++ -> C with classes and other OO stuff. A bit messy in my opinion, neither a "clean" OO language, nor a low-level procedural language.

    C# -> A lot closer to Java than C or C++, C# is a "clean" OO language that mostly exists as an interpreter for Microsoft's CIL. (though alternate implementations such as Mono exist for Linux/Mac)

    C# is nothing like C at all, while C++ can be used like C# but often isn't.
  • slipsius
    Wow, thanks for all the replies!! Very helpful.

    So, Ive seen a little bit of about C++ being a low level language, and it makes for a faster game. But, just how much faster is it? Like, if I use C#, will my game feel slow and laggy, or will it just not be good for multiplayer, or what? Again, its only a small twin stick shooter, but will have lots and lots of enemies on screen
  • JamesWild
    Offline / Send Message
    JamesWild polycounter lvl 8
    If your graphics/audio/(advanced) physics stuff is all implemented for you in C/C++ you will not notice a difference at all.

    C# is pretty fast as it compiles to native code when executed which might actually be faster than compiled C/C++ binaries as it knows exactly which machine it's building the program for. However, it has many pitfalls such as boxing and garbage collection you can fall down which will murder performance if you don't know about them and can be hard to debug even with profiling tools.
  • notman
    Offline / Send Message
    notman polycounter lvl 18
    I didn't want to get as 'deep' as James did, but yes, to be clear, C# isn't the same, but as I said, the basics are. The flow of code, the formatting of code (where to use parentheses, brackets, and colons), and the much of the terminology is very similar.

    I think you're safe making a game in C#, especially if you're using MS's XNA. Let's face it, you're probably not making the next Halo/Gods of War/Battlefield, so you're not likely to really stress the system. When you get to the point where you REALLY need that low level code, to get the most performance, you can THEN look into the other variants of C.
  • The Flying Monk
    Offline / Send Message
    The Flying Monk polycounter lvl 18
    A programer friend recomended these tutorials for C# / XNA:
    http://www.riemers.net/

    I would also recomend getting a good book aswell. For me, reading about something while removed from my PC helped me a lot. At the very least, you can't copy and paste so it will force you to type it all out.
  • Wesley
    Offline / Send Message
    Wesley polycounter lvl 14
    I like this because it has a swear word in it.
    http://programming-motherfucker.com/become.html
  • Kwramm
    Offline / Send Message
    Kwramm interpolator
    great responses! I'd also recommend C# and Unity if you really want results quickly. I've seen people coming from scripting language or from the art creation side and both were able to really quickly get into it and prototype simple game designs with very little learning effort.
  • Lamont
    Offline / Send Message
    Lamont polycounter lvl 15
    Go old school and buy a book or two. Programming is a collection of fundamental concepts. Learn about variables, program flow, functions, classes, OOP, recursion, etc. Different languages have different syntax, structures, and advantages but the core concepts transfer from one language to another.
    Agreed, I never had a book on C#, but what I learned from reading over fundamental concepts, putting things into practice and getting feedback helped a lot to develop my skills.

    And MSDN.
  • Kwramm
    Offline / Send Message
    Kwramm interpolator
    I agree with Lamont. Although I recently picked up O'Reilly's C# in a Nutshell and I wish I had this earlier. Beats msdn.
  • haiddasalami
    Offline / Send Message
    haiddasalami polycounter lvl 14
    Not sure if its still there but gamedev.net had some tutorials and C# workshop with XNA. Though agree with everyone else, just grab a nice reference book and just google the rest :D
  • JamesWild
    Offline / Send Message
    JamesWild polycounter lvl 8
    I'd personally be wary about XNA. Microsoft are showing no interest at all in actively supporting it any more and if you want to use it outside of Windows Vista/7/8 desktop/Windows Phone 7/XBLA, (this includes W8 Metro and WP8 - the XNA runtime just doesn't exist on these platforms) you have to use MonoGame. That's not a bad thing in itself but I've found it to be buggy. (even the very first thing you do, opening a game window, is broken on Linux in the latest build)
  • haiddasalami
    Offline / Send Message
    haiddasalami polycounter lvl 14
    Yeah Unity would be my #1 choice though. Im suprised they're not actively pushing XNA. When I was messing about with it, was quite easy to get in and start messing about.
  • Ben Apuna
    MonoGame's currently pretty broken on Mac too... been struggling with it for about a week without much actual progress. I also suggest Unity and C#.

    If you're still interested in XNA though there's: http://gamedev.tutsplus.com/articles/how-to-learn/how-to-learn-xna/

    EDIT:

    There's also the .net binding for SFML2 if you want something a bit lower level than a full blown engine like Unity. http://www.sfml-dev.org/
  • DrunkShaman
    Offline / Send Message
    DrunkShaman polycounter lvl 14
    www.dreamincode.net is the best way to go to learn any sort of programming languages. You dont require books to learn these languages as all the tutorials are online and books as well but should you feel the need to have a hard copy for a good reference, you can always try "Sams C# 4.0 unleashed by Bart De Smet." That will just teach you the code, for game programming it depends if you are using the raw or ready-made engines while using tools like mono develop (used for Unity.)

    EDIT: Another website would be www.gamedev.net
Sign In or Register to comment.