Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi all,
Vanilla are planning an update to the site on April 24th (next Wednesday). It is a major PHP8 update which is expected to boost performance across the site. The site will be down from 7pm and it is expected to take about an hour to complete. We appreciate your patience during the update.
Thanks all.

Book recommendations?

Options
  • 09-01-2012 6:42pm
    #1
    Moderators, Category Moderators, Computer Games Moderators Posts: 50,803 CMod ✭✭✭✭


    Was wondering if anyone has any book recommendations for an absolute beginner like me. Was thinking of starting in C++ unless anyone else has any other recommendations. It's just me being curious but if I get into it I'd like to go so far as making my own games and engine.


Comments

  • Registered Users Posts: 8,405 ✭✭✭gizmo


    Okay, you basically have two options here.

    Your first option is the C# route. This language is considerably easier to get to grips with compared to C++ and is the one I'd recommend starting with.

    This will lead on to XNA which is fantastic for getting games up and running and can be used to create a wide variety of games. There are some great tutorials out there, most notably on the Microsoft site itself, which can really help you get your head around the framework and how games come together.

    Once you have an understanding of all this you can either sink more time into XNA or move on to using Unity. In the case of XNA, this has been used in a range of XBLA titles and with a Creator Club membership for $99 per year, you can develop, test and play games on your 360 and upload them to the Indie Marketplace if you wish.

    Unity, on the other hand, is a full blown AAA engine which is becoming increasingly popular not just amongst indies and hobbyists but also commercial developers. The best thing about it from your perspective (apart from being free for the Indie version) is that you can use C# to write your game code. It also has an extensive community and extremely useful documentation to get up and running. Despite coming from a C++ background, it's also what I'm using for my own projects at home.

    Your second option is C++. This is considerably more difficult to master than C# as it gives the programmer far more power over what's going on under the hood.

    Not only this but it will take longer to actually get up and running since you'll also need to build all the necessary systems, such as graphics, input etc.. yourself. Many of these things are taken care of for you in XNA or otherwise covered in the numerous tutorials. It's basically one big rabbit hole to go down really. :)

    At the end of the day though, you strike me as someone who wants to make games rather than program games, if you understand the distinction. If this is the case then I'd definitely go with the first option as it will allow you to become productive in the least amount of time, will ensure you have plenty of support via the frameworks and engines I mentioned and means you can focus on making games rather than toiling away with the nitty gritty of how it all works at the lowest level.

    Once you decide which option to go for I can provide you with a bunch of links to books and online resources to get you started. :)


  • Moderators, Category Moderators, Computer Games Moderators Posts: 50,803 CMod ✭✭✭✭Retr0gamer


    I'm actually more interested in the nitty gritty of how engines work and such. I've done a bit of messing around with Gamemaker which gives a good overview of how games work and how they are programmed but I'm more interested in what goes on under the hood so to speak, so I'm thinking more C++ than a higher level language that is easier use but you are ignorant of what's actually happening.


  • Registered Users Posts: 8,405 ✭✭✭gizmo


    Retr0gamer wrote: »
    I'm actually more interested in the nitty gritty of how engines work and such. I've done a bit of messing around with Gamemaker which gives a good overview of how games work and how they are programmed but I'm more interested in what goes on under the hood so to speak, so I'm thinking more C++ than a higher level language that is easier use but you are ignorant of what's actually happening.
    Well you'll still be dealing with the same fundamental concepts with the C#/XNA route, it'll just give you a nice framework to get started with and get something on the screen with controls and sound. You'll still need to do graphics programming, implement/add a physics engine and know how it all ties together for anything more advanced of course. As languages go though, C# is just way easier to get started with.

    If you're sure you want to go the C++ route then that's fine. Just say the word and I'll start posting some info for you. :)


  • Moderators, Category Moderators, Computer Games Moderators Posts: 50,803 CMod ✭✭✭✭Retr0gamer


    You're the expert here. I'll take your judgement and start with C#, can always work back to C++ once I get my bearings!


  • Registered Users Posts: 8,405 ✭✭✭gizmo


    Retr0gamer wrote: »
    You're the expert here. I'll take your judgement and start with C#, can always work back to C++ once I get my bearings!
    Heh, well I originally started with Java and then moved onto C++ which proved to be a nice introduction. With C# being available now though, as well as its usefulness in games with the like of XNA and as a scripting option with Unity, I think it's a great place to start for someone getting into programming for the first time. Not only that but it'll be a damn sight easier to learn C++, should you chose to move onto that at a later date, after learning C#.

    I'll post those links for you tonight anyway.


  • Advertisement
  • Moderators, Category Moderators, Computer Games Moderators Posts: 50,803 CMod ✭✭✭✭Retr0gamer


    Thanks for the help!


  • Registered Users Posts: 8,405 ✭✭✭gizmo


    Alrighty then, these should be enough to get you started. :)

    C# Tutorials
    Some of the best C# resources happen to be both free and online so I'd recommend starting here first. These deal with the language and don't present the material from a games perspective.
    Visual C# .NET Programming - This site was recommended by a few people. The lessons seem nice and clear and are tackled in a sensible order. You can stop at the Databases section of course. :)
    Learn Visual C# - MS - There's some great tutorials on the MS site actually, the only problem is they kind of jump around a bit. I'd move onto these once you've finished the ones above.

    Books on the subject seem to be a bit of mixed bag unfortuantely. I'm not really familiar with any books which teach the language and present an introduction to programming at the same time but from asking around these seem to be the ones people recommend the most. If I were you I'd use the online resources to get familiar with the language and then move onto C# In-Depth to expand on the concepts. If you'd prefer to have a book to back you up at the start though then the Head First one seems to be well recommended.
    Head First C#
    C# In-depth


    XNA Tutorials
    Again, online resources seem to be some of the best on this one. The majority of books seem to be for XNA 2.0 and 3.0 and as such I'm loath to recommend spending money on them.
    MS App Hub - This contains information on the tools you'll need, an introductory project to get started on and then a whole range of other samples either to use as a base or integrate into your own project.
    XNA Development - Here's some more 2D tutorials
    Riemer's XNA Tutorials - A range of 3D and shader tutorials

    If I was going to get a book it's probably be:
    XNA Game Studio 4.0 Programming - Seems to be the most up-to-date of the lot and is actually written by guys on the XNA team. It also seems to cover a wide range of topics and does a particularly good job of the graphics programming. It is not, however, recommended until you're comfortable with C#.


    Maths
    Oh yes, a book on maths. :)
    3D Math Primer for Graphics and Game Development - This is one of my favourite maths books for games. I've been using it for a couple years from when I first started to now when it' still useful as a quick reference.

    If you have any questions about that lot just give me a shout. :)


  • Moderators, Category Moderators, Computer Games Moderators Posts: 50,803 CMod ✭✭✭✭Retr0gamer


    Thanks a million for this. I'll get started on the beginner stuff. Thanks for the maths book as well. Might be alright without it, I love maths and would do it for fun in university, but it might be good if I'm going to be doing anything new.


  • Closed Accounts Posts: 1 rasterFarian


    If you want to get into the nitty gritty of engine design then knowing c++ will be a huge help, almost mandatory in fact. Most of the good books on engine design/implementation and even game programming in general tend to be aimed at c & c++.
    cplusplus.com is as good or better than most c++ books, it's an excellent resource. SDL is good for getting graphics up and running, and they have some great tutorials to get you started on their website (irc channels are a great help too).

    Once you get a little programming under your belt, have a go at building a small basic engine of your own and use it to make a simple game, a crappy one level side scrolling platformer or something. Even if its absolute rubbish, you will learn loads just doing it.
    I'd point out though that game engines are extremely complex. For serious engine design you would probably need to learn about common design patterns, you will need to understand data structures and complexity and really just good engineering practises.

    Useful books:
    Data Structures for Game Programmers (Premier Press):
    Very useful for learning the basic data structures used in programming, focuses on ones that are commonly used in game development.

    The Game Programming Gems series:
    Absolutely excellent books, every game dev will learn something from these no matter what their level or experience. You would need some programming experience for these. Each one has a general programming section plus sections for maths, audio, AI etc. Cannot recommend them enough.

    Beginning Game Level Design (Premier Press too I think):
    Actually has some really useful stuff, but lots of fluff too. Bit different from all the usual gamedev books though so worth a read if your looking to build full games rather than just the engine stuff.

    Mathematics for Game Developers:
    Great resource, but not something you would just sit down and read. When there's something you need to know for collisions, physics etc. then chances are this will have you covered. The Game Programming Gems usually have what you need too but this will give you a much better understanding of the maths involved. Aside from that, gamedev.net and sites like it are a great resource to get you started.


Advertisement