6 ms·
While I agree it's dated in lot of ways but it is still a great read. I am not a game dev but I love to write performant code, it's just a personal satisfaction
by Who828 13y ago
While I agree it's dated in lot of ways but it is still a great read. I am not a game dev but I love to write performant code, it's just a personal satisfaction when I know my code is making the best use of the hardware.
I think you should read the first chapter at least, on how he approaches code optimization, first by design and then by code.
This book teaches you to think like a performance programmer like no other. In the first chapter he challenges assumptions, for example how lib C code is not really optimally written (its written for portability and general purposes) and you can easily write more efficient algorithm to do the same.
The mindset of not being at mercy of the library is a powerful one, it inspires you to dig deeper and find out how things really work. Thus, you make the best choices for the problem in hand.
- melling 13y agoYep, I'm sure there are still great nuggets in the book. Unfortunately it looks like I'm not going to get my question answered about modern OpenGL books because everyone just jumps in and says that you should still read Abrash's book. John Carmack, for example, didn't write much of his games in assembler because he knew that he didn't have to. If you look at Doom, there wasn't a lot of assembler even back in the early 1990's. https://github.com/id-Software/DOOM https://github.com/id-Software/DOOM And according to Carmack, he liked working in C and OpenGL. http://rmitz.org/carmack.on.opengl.html http://rmitz.org/carmack.on.opengl.html "With OpenGL, you can get something working with simple, straightforward code, then if it is warranted, you can convert to display lists or vertex arrays for max performance (although the difference usually isn't that large). This is the right way of doing things -- like converting your crucial functions to assembly language after doing all your development in C." I actually have done some basic assembler so I do understatnd the benefits of keeping values in registers, etc. A lot of stuff really is architecture dependent, of course. ARM vs x86 will make a difference. Anyway, where's the best place to start these days? Personally, I'd like to do some iOS stuff, and perhaps keep the same code running on Android.
- pandaman 13y agoI imagine you have already read the "red book" (Open GL Programming Guide) that pops on every search for "good OpenGL book" and are not satisfied? Then I'd advice either reading a general rendering book or some GPU docs depending on your finding the book too easy or too hard.
- melling 13y agoYou're recommending a book that gets 2.5 stars on Amazon? http://www.amazon.com/OpenGL-Programming-Guide-Official-Learning/dp/0321552628 http://www.amazon.com/OpenGL-Programming-Guide-Official-Lear... When I googled it, the red book was not recommended. OpenGL 3.x has many changes that aren't covered? http://www.gamedev.net/topic/601531-best-book-to-teach-opengl-3x/ http://www.gamedev.net/topic/601531-best-book-to-teach-openg... [Update] Here are three good references that I extracted: http://nopper.tv/norbert/opengl.html http://nopper.tv/norbert/opengl.html http://www.amazon.com/Beginning-OpenGL-Programming-Second-Edition/dp/159863528X http://www.amazon.com/Beginning-OpenGL-Programming-Second-Ed... -- Mixed reviews http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/dp/0321902947 http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutori...
- pandaman 13y agoRed book is following the current version. I believe they had 3.x edition for a while. Anyways, why you'd care about 3.x if you are targeting iPhone/Android?
- melling 13y agoWell, iOS 7 does support OpenGL 3.0 ES. If I'm starting now, why wouldn't I want to target it? By the time, I'm done with my first app, iOS 7 will be on over 80% of the iOS devices. I checked and Android 4.3 supports 3.0. KitKat's low memory support should mean that even new cheaper phones will get Android 4.4 in the near future.
- pandaman 13y ago
- ido 13y agoThis isn't what you asked, but as a professional mobile game dev I can tell you that even c++ & opengl is too low level for what you need for most mobile games today, on android and ios. There are a lot of options such as unity, haxe/openfl, adobe air, etc. Most of these are very easy to pick up by just reading one of the many online tutorials.