Learning C++, algorithms and vectorial algebra

WellWellWell
  • Learning C++, algorithms and vectorial algebra WellWellWell

    I need your recommendations for a good study source about videogame orientated C++, algorithms and vectorial algebra.

    I will be applying to a videogame programmer course in January so I need to start getting ready asap.

    Cheers!

  • Here are my recommendations:

    Data structures for game programming LINK

    Excellent book for a thorough but easy to understand breakdown of all the useful data structures that games use. What's more, the author provides samples that come in the form of mini-games or interactive demos. Absolutely must have book for beginners.

    Essential Mathematics for Games LINK

    Great resource. This is probably one of the rare few books on mathematics that is geared towards games and that is actually always on my shelf. It does get heavy (hey, it's a math book!) at times, so unless those topics are taught in the current semester, skip over them if you feel nausea set in!

    Design Patterns: Elements of reusable OO programming LINK

    Do you have a computer science background? If yes, then you probably already heard of it and if you did not hear of it, then this is a must. It is not for games only, but it will prepare for you for problem solving. This is not a beginners book. By that I mean, if you are just entering college/university, I would stay away from this book until you understand why you need design patterns in the first place (that is, you are past the stage of "Finally! My code compiles! Now to make it run!")

    OpenGL SuperBible LINK

    Do not bother with the red book. That is a reference, which in my opinion, the internet has made obsolete. This is the book to buy for OpenGL. For DirectX, you are on your own :)

    Game Engine Architecture LINK

    You may not want to read this early on. Maybe down the road, when you have good grasp on programming and what a game engine consists of. A great high level overview of game engines.

    Game Engine Design LINK

    WARNING: This is a very very heavy book (literally and conceptually). Just keep it in mind until you are craving for more and the above books look like child's play to you. This is a book filled with concepts that other authors usually do not dare go into simply because they are so hard to understand and even harder to write about to make others understand. Also, the author (who is very knowledgeable btw) is very active in the sense that he always replies to my emails in a couple of days or so.

  • Adding to Samaursa's list, but trying not to get too long, I'll just add a few of the ones that really stood apart from my library:

    C++ For Game Programmers LINK

    enter image description here

    A book which approaches C++ from an intermediate point of view and focused on techniques relevant to game programming. A lot of emphasis on performance and efficiency. Since you asked for that specifically, you might want to give it a try. It's quite good in fact.

    Effective C++ (and it's 2 sequels) LINK

    enter image description here

    But I'd recommend even more reading this series to get a solid grasp on C++. There's two books on general C++ and one on the STL. All I can say is that these remain to date my favourite C++ books. The books are divided into small sections that tackle specific C++ problems. And even if it's not a game programming book, it's where I learnt most of my C++.

    Game Programming Gems LINK

    enter image description here

    This entire series is filled with secrets of the trade from all areas of game development, from programming to graphics, sound, math, AI to networking. They're rather expensive, but I kept an eye open on the used books at amazon and managed to get most of them at a fraction of the price. There's 8 volumes so far, but I find the very first volume to be the most valuable for a beginner since it covers so many things that a game programmer simply needs to know. Check the table of contents of each book online here.

    And finally, I know you didn't mention graphics but you will probably eventually get interested in it. For graphics my opinion is...

    Realtime Rendering 3rd Edition LINK

    enter image description here

    This is the book to get all the concepts and theory of graphics programming. This book is huge, covers virtually any graphic programming topic I could think of, and as an added bonus, it's beautiful - the entire book is in full color and in quality paper. I was really surprised both with the content and the packaging.

    enter image description here enter image description here

    And once you have the theory down, jump into practice with "gem-styled" series such as GPU Gems which are available for free, and the ShaderX/GPU Pro series.

Tags
c++ algorithm linear-algebra
Related questions and answers
  • First theoretical question. What is better (faster)? Develop your own gpgpu techniques for physics simulation (cloth, fluids, colisions...) or to use PhysX? (If i say develop i mean implement existing algorithms like navier-strokes...) I don't care about what will take more time to develop. What will be faster for end user? As i understand that physx are accelerated through PPU units in gpu...-theoretical question: Is physx able to do sofisticated simulation equal to lets say Autodesk's Maya fluid solver? Are there any c++ gpu accelerated physics frameworks to try? (I am interested in both physx

  • I'm developing some algorithms in Lua which are run mostly in Lua (few calls to C++) and I'm noticing a huge slowdown when I'm running them from my app rather than the default Lua interpreter. The script returns in about 11 seconds with the interpreter, and about 5+ minutes with my program. I don't think it is a problem with calling the C++ function, overruling that function with an empty function in the script has no noticeable effect for time. Both Lua and the program are compiled with Visual Studio 2010 (I created a new solution for Lua, with projects for both the interpreter and static

  • Is there a known 'most efficient' algorithm for Sphere vs Ray collision detection? I recently stumbled accross Arvo's AABB vs Sphere collision algorithm, and I am wondering if there is a similarly noteworthy algorithm for this. One must have condition for this algorithms is that I need to have the option of querying the result for the distance from the ray's origin to the point of collision. Although if there is another, faster algorithm which does not return distance, then in addition to posting one that does, also posting that algorithm would be very helpful indeed. Please also state

  • Say I have desktop game and I like to make it social, for that I need browser component embedded into my game ( c++ openGL) for the Authentication part. Is there any framework for that?

  • So far I couldn't find anything on google so I'm asking here: I need to connect two iphones or more to each other for a multiplayer game, what features does iphone api provide? is there some kind of bluetooth device or equivalent in iphone or should i just search over the wireless network connection? and what api should I use to connect them? is it possible to use c++ or are the api functions only available via obj-c iphone sdk?

  • I have been working on a game for quite a while, and I am using Ogre3D for the rendering engine. It is getting to the point I need to move adjustable settings to a configuration file such as video settings/options, player keybindings, etc. I am using RapidXML for parsing and loading my scenes, but I am not sure this is the best way to go about doing configurations. As a long time fan of Valve games, I know there's are just a long list of settings, basically no grouping, just a list. Where as UT games do something like [VideoOptions] ... ... [GameSettings] ... ... Anyways, I am just

  • I'm looking into building a cross-platform opensource 2D RPG style game engine for ChaiScript. I want to be able to do all of the graphics with SVG and need joystick input. I also need the libraries I use to be opensource and compatible with the BSD license. I'm familiar with allegro, ClanLib, and SDL. As far as I can tell, none of these libraries have built in or obvious integration for SVG... support in a 2D C++ library while minimizing dependencies as much as possible (preferably avoiding Qt altogether)?

  • I am a second year student of Computer Games Technology. I recently finished my first prototype of my "kind" of own pathfinder (that doesn't use A* instead a geometrical approach/pattern recognition, the pathfinder just needs the knowledge about the terrain that is in his view to make decisions, because I wanted an AI that could actually explore, if the terrain is already known, then it will walk the shortest way easily, because the pathfinder has a memory of nodes). Anyway my question is more general: How do I start optimizing algorithms/loops/for_each/etc. using Assembly, although general

  • I want to develop simple RPG with ray casting rendering. I chose SDL for graphics and input. The problem is there is no native line drawing in it, which I need to start prototyping a ray casting engine. I know about SDL_gfx, which can do this, but I am asking if there is any alternative to SDL with primitives drawing functions for C++, which is easy to learn, and is also used by indie game developers?

Data information