Programmers can talk all about their craft here
Programmers
Resources - Books
Just curious about what types of books people have using to help them along the way. I have picked up a few books that I need to read through as well as a few for reference.
Multiplayer Game Programming by Prima Tech
Programming Role Playing Games with DirectX by Prima Tech
Game Architecture and Design Coriolis Technology Press
Teach Yourself C++ by IDG Books Worldwide (gotta start somewhere!)
Problem Solvers Algebra & Trigonometry by REA (hey, its been 10 years since I did maths in highscool)
Mastering Access 2002 by Sybex
Both of the Prima Tech books are intermediate level but they are still very light. There is a fair amount to cover in both of those topics so it really just starts at the basics.
"Yes I Code"
As found on AGDC name tag 2002
quote:Originally posted by Jacana
Just curious about what types of books people have using to help them along the way. I have picked up a few books that I need to read through as well as a few for reference.
Here are some of my recommendations:
Effective C++ (Scott Meyers) (any part of the series): http://www.aristeia.com/books_frames.html
and, no matter what you think of Microsoft you can't go wrong with these:
http://www.microsoft.com/mspress/developer/bestpractices/
Code Complete
Writing Solid Code (second edition due out soon - one of the best programming books ever written)
and just about any other book in that series.
Also "Code Complete" http://www.stevemcconnell.com/cc.htm
Which is regarded as one of the best too (it's a toss up between "Code Complete" and "Writing Solid Code" in my opinion!)
There's also "Rapic Development" by the same author.
The Gems Series:
The Games Programming Gems books:
http://www.satori.org/gamegems/ (search the web for a better site)
Games Programming Gems
Games Programming Gems 2
Games Programming Gems 3 :-)
and the Graphics Gems books
http://www.acm.org/pubs/tog/GraphicsGems/
Graphics Gems, II, III, IV, V
That should keep you busy :-)
Edit: You might notice that I've stressed quite a few books that aren't games specific - because (IMHO) 30% of games programming is trying to write good code that is bug-free and solid, and 60% is trying to fix the bugs that you put in there anyway :-) the last 10% is the cool games bit !
I've got Multiplayer Game Programming, Prima Tech, really wasn't happy with it. For a book that cost $140 or so and is some 600-800? pages thick, it contains precious little useful information related to multiplayer, it's not a bad little introductory book to game programming, but if you're actually interested in the multiplayer part, then steer clear.
Game architecture and design, definately worth picking up especially if you are part of a small dev group (like most students etc. would be) and will be working closely with each other on all stages of the project. It is a book that will scale with you as your dev group grows larger in terms of numbers and project size.
Real-Time rendering. IMO this is THE book to get for an overview on graphics techniques that have been used, are currently used, and will be used in the future. Fantastic book, best $140 or so i've ever spent on a programming/game/etc. book.
Data and Computer Communications, Stallings. Not a coding book, but a technical book on networking etc. If you're interested in the networked multiplayer side of things, a book like this will come in handy when it comes time to implement a guaranteed service over UDP :) This book is 100 times more useful than Multiplayer Game Programming for networked gaming.
C++ Programming Language, Stroustrop. Written by the guy who created the language, you can't go wrong :) Definately a good tech book on C++, i wouldn't recommend it to learn from though, it is better as a reference. This is the book i had when i learnt C++ in 2nd year uni, and it didn't make things easy (it can be hard to find what you're looking for when you're not really sure what you're looking for) There are better tutorial books around for learning C++ basics.
Artificial Intelligence: A Modern Approach, Russel/Norvig. Wanna learn about AI? Get this book. Once again, not a code book, but this will give you all the theory you need behind most AI techniques you will need/use in the near future. About the only thing it doesn't cover in reasonable depth is state machines...(which are fairly trivial anyway)
AI Game Programming Wisdom. Haven't learnt AI yet? Get the book above. If you already have a grounding in AI this book offers techniques for improving your AI. Aimed more at intermediate-expert, a novice AI person will get little use out of this book, as they simply won't understand what the hell they're talking about :)
Covers a lot of areas including A* improvements and various flocking algo's etc.
Real-Time Rendering is an invaluable resource, like i said best book i own. I highly suggest getting a hold of this unless you are an absolute expert guru on graphics techniques :)
If you want to get into AI programming, a modern approach is one of the best texts out there.
If you want to get into multiplayer (or rather, networked) programming, i suggest either picking up a good book on networking with sockets, as it will give you a much better grounding in network theory etc. than any multiplayer book on the market that i am aware of.
Game architecture and design is just a great resource for building a game from the initial concept through to getting that final build out the door. Like i said, for a small dev group, this book will be incredibly useful. (i've spent the last couple days re-reading it while going through the beginnings of the concept/design stage for the NYG project).
I guess it may be interesting to note that many of my favourite books have very little or no code in them at all. I think i prefer these books for a few reasons. They don't take up countless pages with code snippets (this is often not really useful, and makes the book bigger costing more money). I prefer to read and understand the theory, and be able to create my own code from that knowledge, rather than kind of partially understanding the theory, but having a really good code snippet i can paste into my code without really understanding what it does. A follow-on from that, most of the code-free books tend to give much more detailed, and generally better explanations of things than books that are full of code, and also they can pack a heck of a lot more useful information into the same sized book, giving you (IMO) better bang for your buck.
Of course books on code languages are exempt from that little diatribe :)
Hmmm, i should stop letting myself on the internet when i'm tired, i start to blab on and on and on...
CYer, Blitz
Yeah I really recommend the Game Programming Gems books.
LeMothe writes some good books on the basics which are good if you're just starting. They're also a good reference if you're prone to forgetting simple things like I am.
The BEST book that I've found is:
programmers reference c/c++ second edition - by Herbert Schildt
Its such an invaluable reference book. It also covers STL somewhat, which is a good thing. I think its something like $30 too.
Scott.
My recommendations:
Game Programming Gems 1,2,3
I'd skip the Graphics Gems (all 5) if you aren't hard-core on graphics. Albeit, you HAVE to refer to them eventually for common algorithms.
Real-time rendering (Haines/Moller) - classic
Modern C++ design
Design Patterns
RenderMan companion (if you want to do Cg shader writing)
High-performance computing - intro to optimization!!!!!
Any SIGGRAPH paper published in the 80s. The games industry just started using RenderMan-like shaders and etc. all that is well-understood material...
International Games Dev Association
This might be worth a look for anyone (thinking students mainly):
http://www.igda.org/Endeavors/Outreach/Students-Newbies/students-newbie…
Student Membership
US$25 Reduced cost,
> access to all member benefits
> complete access to web site and forums
> eligible to participate in various IGDA programs
> voting privileges (awards, elections, etc.)
> IGDA newsletter subscription
> eligible for GDC Scholarship
> student memberships require a valid student ID
A list of all benefits:
http://www.igda.org/Membership/Benefits/benefits.htm
*One Benefit Of Note*
Game Developer Magazine Free subscription (worldwide)
All IGDA members qualify, including international members. Ensure your month of birth is specified when registering and/or ensure it is selected in your member profile (use the Control Panel). Allow 8-10 weeks for delivery of first issue.
This magazine sells for about A$20 an issues. So as student you get a year of the magazine for A$50. That made it worth the membership alone :)
"Yes I Code"
As found on AGDC name tag 2002
quote:Originally posted by Jacana
*One Benefit Of Note*
Game Developer Magazine Free subscription (worldwide)
All IGDA members qualify, including international members. Ensure your month of birth is specified when registering and/or ensure it is selected in your member profile (use the Control Panel). Allow 8-10 weeks for delivery of first issue.
I've been an IGDA member for a few years now, it took a while for them to get their act into gear with the Game Developer Mag, but now I get a 'free' copy every single month, and it's worth every cent.
I have had some issues with mine :)
But they have been very helpful in trying to fix it.
Seems my subscription got lost along the way and in 10 months I have only receive 2 of the mags. After a few emails things seem to be orgaznized. Looks like a nice big stack of 8 or 9 issues will be sent out.
"Yes I Code"
As found on AGDC name tag 2002
quote:Originally posted by Jacana
I have had some issues with mine :)
...Seems my subscription got lost along the way and in 10 months I have only receive 2 of the mags.
Not to make you worry, but it took over a year for me to get my first copy of GameDeveloper from them - and that was after speaking face-to-face with the Jason Della Rocca and telling him that nobody in Australia would join if they couldnt deliver the magazine [:)] . I never received any backdated issues [V]
Hopefully you'll get yours soon!
Yeh, the GDAA website was last updated in July (6 months ago) announcing that PS2 kit scheme.. It's not a news site that needs lots of updating, but some important details like student prices for joining the GDAA would be nice.. and I think that Spotswood & Eric, and Europa feature has been a bit long in the tooth now.. [;)]
IGDA is nice for the free GD magazine subscription. I suggestion joining SIGGRAPH also. Most of the new research is games related happens at SIGGRAPH - the attendees + members are very savvy and bright.
Been to GDC(and AGDC) myself, but nothing like SIGGRAPH - the quality of the papers/talks is fairly low at GDC - a few good talks (shadow volumes, GI-based real-time rendering). Albeit, the games industry is in its infancy...
Just wanted to add - I renewed my IGDA membership at the end of Feb. 14 months later I have still not received a magazine from them. Seems Zaph was right about that *grin*
They have been nice trying to help me get it sorted. Then again I thought it was sorted back in December and that they'd ship me all the back copies then. *grin*
Will keep people updated on that.
TopCoder
Has anyone here ever competed on TopCoder (www.topcoder.com) ?
I notice that the winner of the major prize this year (US$50,000) was an Aussie (from Melbourne in fact)
If nothing else it looks like a fun way to keep your coding skills up, and from the problems I've looked at and the format (code time, challenge time) it seems pretty relevant to the Games Industry too.
quote:Although TopCoder competitions offer competitors the choice of three programming languages -- Java, C++ and C# -- all the finalists used C++ in the Championship round.
Interesting to read that comment.
All the coding I did at school was in Java. Something about C++ coders already having flooded the market....
"Yes I Code"
As found on AGDC name tag 2002
Not to mention the fact that C++ executes a helluva lot faster. Java is really only useful if you want to create a program that will run on any machine (that has a java interpreter). Although, that said, it isn't that difficult to have a C++ program run on multiple platforms (without changing the code) as long as you use standard C++ and opengl if you need graphics.
Universities (in my experience) tend to have a problem with teaching java. Many lecturers are quite oblivious to it's downfalls and why C++ is superior. I am amazed that some universities don't even teach C/C++ at all in their Comp Sci courses.
CYer, Blitz
PS. Had a quick look at the topcoder site and couldn't figure out what the actual competitions involved...if execution speed mattered at all then i'm not surprised at all that people chose C++.
Halo was written in C.
:-)
C is not that bad...
---------------------
Andrew McGregor
Engine programmer
Tycom Studios
andrewm@tycomstudios.com
www.tycomstudios.com
---------------------
Sorry, let this be a warning to any other people thinking about posting bad stuff about C, I will only rant this once and then link it from now on.
quote: MANY games still use C - I know - yuck
Okay, I am well aware that the current status quo is object oriented programming. But as far as I am concerned, it has it's benifits and it's problems just like ANY other programming paradigm, as does the paradigm that C falls into (imperative).
To me C++ and any object oriented approach to a problem is a half-way step between how humans think, and how computers think. It isn't easily understood by either side of the problem. Java's attempts at object oriented programming is especially peculiar and totally hide what a real computer is actually doing from the programmer. C++ at least recognises and imparts the fact that functions stay in one place in memory.
Alot of games programming problems need to be far more optimised than a half-way step can offer.
I understand that software engineering requires a certain level of abstraction and all that lingo, and C++ provides an easy method for doing this. But C++ offers nothing that C can't do. In fact, one of the the first C++ compilers was simply a C compiler with a few macros to fill in the blanks.
I also admit, that it takes a longer time to build up, using C, a reasonably large amount of code that is flexible and extensible enough to withstand modern coding requirements, but because you *can* write extensible and flexible code in C, and there is nothing that C++ *can* do that C cannot emulate, I see no point in relentlessly poking tongues out at C just because C++ does a few of these things for us.
Given that games programming needs to be such a highly optimised environment, I'm surprised that modern aspiring coders don't attempt to learn how to code as closely to the machine as possible.
My *personal* preference is to code as closely to the machine as I can be bothered. I will almost always use C code until C++ actually does something that C can't, and even use assembly for some low level functions because I don't think platform independence is something games need to worry about for a while (how about just writing in a (small) platform dependent layer and then doing the main part of the code platform independent? A bit of effort can create faster code on many machines).
I am in no way saying that C++ is crap, in fact, it can save a bit of time in programming, although at a minor sacrifice to game speed. I am also aware that C++ compiling efficiency vs. that of C is another debate altogether.
This is simply my personal preference, and to say that C is yuck, is basically the same as saying C++ is yuck.
I'm not getting into debate about this, I suggest to anyone who wants to debate about this, privately email me, or just go do some research and make up your own mind about C vs. C++ and don't listen to an antiquated old fart like me :)
And to stay on topic.
Topcoder looks like an interesting competition, but I've never been the competitive type :)
I'd probably bust too many brain cells and it's a distraction from making a project :(
Plus I don't really have the brains to "compete" as a coder.
However the sample problems look interesting and it could be fun! Maybe in the far flung future I might do it.
Well the books that I've got is:
Game Architecture and Design, by Coriolis Press (Now no longer printing books, so grab this one if you can, I saw 1 copy in Melb when I was there).
Game Programming Gems 3, by Charles River Media
in addition to that I have the usual Maths textbooks from my Uni studies.
I wanted to get Realtime Rendering 2nd Edition but it wasn't in the shop when I came with cash. I'll try to get it in the new year if I can. Code Complete by Microsoft Press is also a highly recommended book that I want to get, even though its not game specific.