How to be a Game Programmer
This is something I wrote about last year on unisa computer science forums
Here is a link http://osprey.unisa.ac.za/phorum/read.php?417,176607
But anyway I'll repeat everything here.....
what a difficult question to answer, I've been asked this question a 100 times and perhaps I'm not a right person to answer it. Maybe they should have asked me the following question: "which or what books do I have to read that will enable me to make games?"
Ok I don't really have all the answers since game dev is a very brought field, maybe the questions I would have like to be asked are the following
"I wana make games for android, where should I start"
"I think windows phone has awesome graphics how do I make games for it"
. "I saw somewhere on tv saying that html5 is cool what do u think"
Okay this were not the questions that i was asked so lets go back to the main question "how to become a game programmer". My reasons for not answering this question is because I never made a commercial game, all my friends ever saw was some demos on my phone or some crazy dummy engines they've seen when they try to hack my computer, so they assume i have all the answers.
Game programming as a part of game development is a very big subject and there are many sub disciplines within itself. I myself have read more than 200 books and I feel like I've only touched the surface. Some of the disciplines include, computer graphics, gameAI, engine architecture, rendering, shader programming, game physics, augmented reality, only to name a few. Although I have read more than 200 books, the are only few useful ones or I'll just say readable ones, so I'll just name few books that are some of my favorite ones, the ones that I read and never got stuck, so I'll not waist time trying to lecture you on which language you should use because at this time and age any programming language is well suited to write games.
Here is the list of some of my favorite books from beginners to pros
Html5
1. Foundation game design with html5 and JavaScript (2012) - Rex van der Spuy
2. Pro android web game apps using html5, css3 and JavaScript (2012) - Juri Bura and Paul Coates
3. Pro html5 games (2012) - Aditya Ravi Shankar
Flash
1. Foundation game design with actionscript 3.0 (2012) - Rex van der Spuy
2. Essential guide to flash games (2010) - Jeff and Steve Fulton
3. Flash multiplayer virtual worlds (2010) - Makzan
4. Adobe Flash 11 Stage 3D game programming (2011) - Christer Kaitila
Android
1. Beginning Android games second edition (2012) - Mario Zechner and Robert Green
2. Game and Graphics Programming for iOS and android with openGL ES 2.0 (2012) - Romain Maricchi Foino
XNA
1. Learning xna 4.0 (2011) - Aaron Reed
2. Windows phone game development (2010) - Adam Dawes
3. Professional windows phone 7 game development (2011) - Chris G. Williams
4. Windows Phone 7 xna Cookbook (2012) - Zheng Yang
5. 3d graphics with xna game studio 4.0 (2010) - Sean James
6. Xna 4 3d game development by example (2012) - Kurt Jaegers
DirectX
1. Introduction to 3d game programming with DirectX 9c, 10 and 11 (2006, 2008, 2012) - Frank Luna ... Visit d3dcoder.net for more
2. Character animation with direct3d (2009) - Carl Granberg
3. Multi treaded game engine design (2011) - Jonathan S.Habour
4. Game Coding complete 4th edition - Mike McShaffry
AI
1. Introduction to game AI (2011) - Neil Kirby
2. Artificial Intelligence for games (2009) - Ian Millington
3. Behavioral Mathematics for Game AI (2009) - Dave Mark
4. AI and Artificial Life in Video games (2008) - Guy W. Lecky Thompson
5. Programming game AI by example (2005) - Mat Buckland
Mathematics
1. 3d math primer for graphics and game development(2011) - Fletcher Dunn and Ian Parberry
2. Essential Mathematics for games and interactive applications(2008) - James M. Van Verth and Lars M. Bishop
3. Mathematics for 3d game programming and computer graphics (2012) - Eric Lengyel
I will not give a review on this books since people who are more knowledgeable than me have already done that. Just go to amazon.com and search on a particular book, the reviews there will tell you whether you like the book or not.
It you want to ask anything else, I'm always here¿¿¿
Here is a link http://osprey.unisa.ac.za/phorum/read.php?417,176607
But anyway I'll repeat everything here.....
what a difficult question to answer, I've been asked this question a 100 times and perhaps I'm not a right person to answer it. Maybe they should have asked me the following question: "which or what books do I have to read that will enable me to make games?"
Ok I don't really have all the answers since game dev is a very brought field, maybe the questions I would have like to be asked are the following
"I wana make games for android, where should I start"
"I think windows phone has awesome graphics how do I make games for it"
. "I saw somewhere on tv saying that html5 is cool what do u think"
Okay this were not the questions that i was asked so lets go back to the main question "how to become a game programmer". My reasons for not answering this question is because I never made a commercial game, all my friends ever saw was some demos on my phone or some crazy dummy engines they've seen when they try to hack my computer, so they assume i have all the answers.
Game programming as a part of game development is a very big subject and there are many sub disciplines within itself. I myself have read more than 200 books and I feel like I've only touched the surface. Some of the disciplines include, computer graphics, gameAI, engine architecture, rendering, shader programming, game physics, augmented reality, only to name a few. Although I have read more than 200 books, the are only few useful ones or I'll just say readable ones, so I'll just name few books that are some of my favorite ones, the ones that I read and never got stuck, so I'll not waist time trying to lecture you on which language you should use because at this time and age any programming language is well suited to write games.
Here is the list of some of my favorite books from beginners to pros
Html5
1. Foundation game design with html5 and JavaScript (2012) - Rex van der Spuy
2. Pro android web game apps using html5, css3 and JavaScript (2012) - Juri Bura and Paul Coates
3. Pro html5 games (2012) - Aditya Ravi Shankar
Flash
1. Foundation game design with actionscript 3.0 (2012) - Rex van der Spuy
2. Essential guide to flash games (2010) - Jeff and Steve Fulton
3. Flash multiplayer virtual worlds (2010) - Makzan
4. Adobe Flash 11 Stage 3D game programming (2011) - Christer Kaitila
Android
1. Beginning Android games second edition (2012) - Mario Zechner and Robert Green
2. Game and Graphics Programming for iOS and android with openGL ES 2.0 (2012) - Romain Maricchi Foino
XNA
1. Learning xna 4.0 (2011) - Aaron Reed
2. Windows phone game development (2010) - Adam Dawes
3. Professional windows phone 7 game development (2011) - Chris G. Williams
4. Windows Phone 7 xna Cookbook (2012) - Zheng Yang
5. 3d graphics with xna game studio 4.0 (2010) - Sean James
6. Xna 4 3d game development by example (2012) - Kurt Jaegers
DirectX
1. Introduction to 3d game programming with DirectX 9c, 10 and 11 (2006, 2008, 2012) - Frank Luna ... Visit d3dcoder.net for more
2. Character animation with direct3d (2009) - Carl Granberg
3. Multi treaded game engine design (2011) - Jonathan S.Habour
4. Game Coding complete 4th edition - Mike McShaffry
AI
1. Introduction to game AI (2011) - Neil Kirby
2. Artificial Intelligence for games (2009) - Ian Millington
3. Behavioral Mathematics for Game AI (2009) - Dave Mark
4. AI and Artificial Life in Video games (2008) - Guy W. Lecky Thompson
5. Programming game AI by example (2005) - Mat Buckland
Mathematics
1. 3d math primer for graphics and game development(2011) - Fletcher Dunn and Ian Parberry
2. Essential Mathematics for games and interactive applications(2008) - James M. Van Verth and Lars M. Bishop
3. Mathematics for 3d game programming and computer graphics (2012) - Eric Lengyel
I will not give a review on this books since people who are more knowledgeable than me have already done that. Just go to amazon.com and search on a particular book, the reviews there will tell you whether you like the book or not.
It you want to ask anything else, I'm always here¿¿¿
Comments
In my opinion if you're going to learn stuff, it's better to learn fundamental principles like with the Math stuff you mentioned, graphics pipelines, etc than to focus on proprietary technologies like DirectX. That stuff should be learned by doing. If you know what you want to achieve and the core principles of achieving that, you should be able to figure out how to achieve that using whatever tech you happen to have in front of you. Don't marry yourself to any one specific platform/technology either - you'll be lost at sea when it inevitably falls out of fashion.
Monogame may be API compatible open source XNA replacement, but it's not XNA. Monogame will continue to be developed, XNA will not. Monogame is alive, XNA is dead.
Where did you get your information, because you are totally misinformed.
Let me correct you, monogame was initially setup to help developers to port their XNA games over to other existing platforms such as, Android, iOS, Linux, Mac OS X. So monogame is no a replacement for xna, because 99.9% of code you write is 100% xna, development, ie. Visual studio, Windows phone development kit which includes XNA game studio 99.5% and monogame only 0.5% for porting.
Yes Microsoft did not include support for windows 8 and windows phone 8, but if I run any game I made with xna on any two platforms, they run without asking any questions, the only difference is that they cannot take advantage of new windows phone 8 APIs. In that case, Microsoft thought Directx 11 or Html5 will do the job because of lack of support of DirectX 9 which xna is tiredly wrapped around on, so therefore the lack of support on this 64bit devices.
If you were to visit me at this very moment, you will find the following books on my table:
Learning C# by Programming Games - Arjan Egges
2D Graphics Programming for Games - John Pile Jr
Windows 8 and Windows Phone 8 Game Dev - Adam Dawes
This are books that Im currently reading, they all use XNA and they were released in late 2013 which shows that XNA is very far from dying, and still on that note, two other books on directX 9 im reading are
Programming 2D games - Charles Kelly and
Introduction to game physics with box2D - Ian Parberry
So if DirectX 9 is still the biggest hustler in the game, so will be XNA.
Either than that, this tread was not written for arguing on which tech is better than the other, instead it was written to help fellow programmers learn to make games with easy to read books, because in many years I struggled through many books which were very hard to read and gave up many times because they failed to explain things in a way a beginner like me wanted to learn. I think all those horrible authors forgot who were their main audience when trying to teach those concepts. But even internet was worse in getting the right information. So the books I mentioned above, were ones I enjoyed most out of many books I read, I mean I could even read this books on bus, under the tree, near the construction site, or while im watching Tranfomers 3 and Avengers at the same time. I mean this are really gifted athours and they write for no Brainers like me.
So stop working and start thinking ¿¿¿
I can't view the Unisa forums link unless I create an account, which I'd prefer not to have to do.
http://ventspace.wordpress.com/2013/01/30/directxxna-phase-out-continues/
In all seriousness though, @Elyaradine is right - owning books is not as impressive as actual games. @rustybroomhandle makes some good points; once you've got some fundamentals down, one of the best ways to learn is by simply trying to make games. I hate to say it but that simply isn't the case, XNA is far from the biggest "hustler" in the games industry. Having worked with both, personally I can't see XNA/Monogame rivalling Unity any time in the near future.
Here at MGSA we encourage people to make games. And the simplest path to making games is to simply just make them, we normally encourage people to start with tools that come with tutorials and show you the quickest path to making games. Most of our community use either Game Maker or Unity.
Game Maker is rather easy to get into and its tutorials are rather in depth and let people create basic games with relative ease once they have completed the first couple of tutorials.
And some people, like @Tuism, have made games in Game Maker and then gone on to making games with Unity (which is quite a bit more complex)
---
So while I have you I am rather curious: have you made any games, and can you share them with us?
I hate to say, but you have been quite rude to rusty who is busy making a really cool game (The Maker's Eden) and given his many years of programming and being involved in game development: I am certain that he knows what he is talking about, and from my own experiences can affirm his statements to be true.
Also I see Squidcor and Elyaradine have posted with similar information about XNA.
It starts out with a vaguely informed general collection of concepts, runs but is poorly structured and a little bit gibberish at first but obsessed with a specific measure of correctness (in this case, books read), then gets commented a bit, before finally derailing into a random side-alley technical topic. Then some clever dick appears and goes all meta on the overall structure of it all.
Ten points everybody :)
Are there a bunch of say 'fundamental' area that every game programmer needs though? Err, I mean there are, but can we group them at all, it's such a difficult field to nail down other than MAEK GAEMS! ... which, even with all my years of uni and algorithm competitions, was the best tonic for actual game programming: get your hands dirty and you'll soon see what parts of programming you like.
I'd say there are areas that suit certain tasks, and that knowing a bit of them all is useful but like any field, some people are specialists, some are jack of all trades ... even within the specialised role of programming (let alone game programming)
As a quick exercise, I'm just going to vomit some knowledge areas and skills/outcomes needed by game programmers... and then attempt to see what matches what:
Knowlegde
Data structures
System architecture
Software engineering (I'll lump this with "working in a team")
Rendering pipeline
Mathematics
Toolsets
User experience (UX)
Outcomes
Optimisation
Rapid development
Prolonged development
Aesthetics
Game Mechanics (ok, this is actually still a group of things)
AI
User Interaction/Controls
User testing
.. ok I'm going to stop because it's already starting to get confused... I can make up whatever list of things (and everyone might have a slightly different take on it) but I think the point has been made: I personally am pretty good with datastructures, archetecture and maths, whereas I'm quite rusty with my rendering pipeline, not really worked in a large enough team to say I'm an engineer expert, I don't know a huge variety of toolsets (it's like Unity and a bit of GameMaker), and I've never been good at user experience
So, with my particular strengths I think I'm fairly good at optimisation, prolonged development, and some of the more mathy mechanics (bro, the other day I had to write a DAG to figure out a water flow dynamic model for a game... it was boss, bro), but I'm not terribly good at rapid development, find me anyone else to do UI 'cause I just seem to suck at it right now, and I lack the knowledge of all the toolsets so I'm at a disadvantage when I want to get a particular game idea out in a short period of time (I just end up using Unity and it's not always a good idea). I try make up for it with experience from coding in multiple languages augmented with coffee intake but I'm st...
[tl;dr starts here]
... anyway, you get my laboured point. I guess my larger point is that if there is a core fundamental set of skills needed for game programming, I can only lock down: 'programming' and 'making games', the rest is really what you want to learn and where you want to go (tempered with knowledge of what knowledge will get you there)
P.S: soz, this isn't a vague slight at the OP (in case people are reading it like that). Just a monologue of how I view the cloud of ideas and areas that is called game programming
Not that I think structured learning or even books can't be helpful ;)
MIND BLOWN.
Story time:
About 2 years ago I tried to make a game based on pipe connections (essentially think of pipe dream but with lots of odd-shaped multi-cell parts each with their own openings in non standard locations). Did all sorts of crazy maths to figure out where the opening would be when I rotated it and whether the connected on the grid based on these opening rotations and orientations. Was a bit of a nightmare and a lot of effort to debug but worked alright.
Today I'm doing a similar grid thing with 'pipes' (ok roads but same principal), thought I'd have to do a bunch of annoying fidgety maths again, hit me to just use a child game object as a opening marker and when placed on the grid see if they line up (with a reasonable epsilon value), works a charm and was far easier than the advances grid searching rotation mess I was about to dive into! Seems cheap and dirty but it won't break because we know we have a grid with discrete separations between placed objects \o/
I'm still picking up bits of my brain off my desk after that realisation. Showed me that sometimes you need to know the tools well and work with the way it operates... I've also learned game dev can be a lot of very clever tricks that make seemingly cheap and dirty solutions not actually cheap and dirty... they work and bring the fun, so win!
I also think it's valuable talking problems over with non-experts. I tend to over analyse things. I have *a lot* (a bit more than 200 books :P) of math knowledge in my toolbox, and tend to over-analyse and develop overly "sophisticated" solutions at times... and just miss the common sense way of doing it. It's always a bit of a shock when somebody makes a suggestion that's so obvious you feel like a fool for missing it. (Especially after spending a long time at it.... o.0).
Well the simple answer is no! after 1000 games you are still a beginner.
Then you go to a famous master and ask, "Why cant I seem to win?" then the master takes a book out of her bag called "My System" and says to you "never challenge anyone until you finish reading that book", you scratch your head and quietly respond "Cool I'll try that".
Two weeks later you get your first victory against your girlfriend and give your friends a run for their money, Then you think entering a tournament will be cool. After the tournament, you only scored 4 out of 7 points, the master comes and congratulate you, " You did well this time, but how did you lose the other three?", again with a disappointment on your face "Those games ran until the end, so I had no idea what to do at the end. The great master says "need no worry" as she grabs a book "Endgame Manual" out of her bag and tells you that the more you read there closer you become.
Do u see where this is going? If you wanna know chess, you must learn "the chess principles", "End game", "Master Your chess repertoire".
This also applies to computer science, Its called writing code versus writing beautiful code. If you want to write beautiful code you must know whats the difference between a quick sort and merge sort, versus selection or insertion sort.
So lets make scenario
1. John learned programming by watching some random awesome coding videos on YouTube, he has awesome confidence and he think he's a natural hacker.
2. Sarah is very patient, she likes structured learning, so she read books on design patterns and data structures.
Both John and Sarah are tasked to write a national voting system to help lazy people to vote on their smartphones. Only one of them will get a tender.
John begins By opening his IDE and start hitting code, he's having fun there's nothing to think about as long as the program runs. After a week, he is convinced that the program is well done, so he submits it through the presidency and spend the rest of his time coding "Lets own the world app".
Sarah begins by taking a pen and paper and writing the requirements of the project, the rest of the week, she spend time drawing the uml and deciding what design patterns she is going to use. She breaks on Sunday for church and ice cream, So next Monday she decides all the algorithms and data structures she is going to use, she doesn't have to worry about writing them herself since she'll copy them directly from her textbook, no need to reinvent the wheel. again she rest on sunday and start working on code next monday, She codes for 8 days non stop and submits the project two days before due date.
A week later Mac calls them for a review
Mac: "Thank you guys for taking us into the future, I hope this elections will be a free and fair... After a through testing this is what the expects came up with, John you are a very good programmer at list better than me. There were 3 John Smith in your system even though eleven voted, only eleven people voted for EEF but it shows 111.
Sarah your program takes 10 seconds to open and John only takes 50. Well done. "
I'll let you write the end of story.
All of this also applies to Game Programming. Remember, everything written on books is written so that we don't repeat mistakes of the past. Game Coding complete 4th edition by Mike McShaffry will address this issues. good luck
You can definitely learn a lot from various "masters".
I think the real key to become a great programmer is to just be so interested in it that every little piece of info you can get makes you better (@dislekcia said something similar in connection with game design before - you have to be curious). The great programmers I have worked with or met / know somewhat have little in common - some studied, some did not, some work under somebody great, some did not, some read blog, some read books, some don't.
It's that burning desire of understanding and power that makes you a better programmer - the other stuff is just various means by which to fulfill that desire.
There are good reasons though to be a bit skeptical about game programming books, and to prefer "just doing it".
First, as any seasoned programmer knows, you do not really believe something is a mistake until you have been really burnt by it. In the real world, there is no good and bad - there is just compromise. I have not read books that can really convey the trade-offs you have to make. There is a big difference in knowing source control is good, versus having lost months of work because you did not have it.
Second, like most skills, there are different levels of understanding. How well can you ride a bike by reading about it? In fact, you cannot even understand riding principles if you have not been on a bike (you just think you do). The same with programming. If you understand the principles of algorithms, you are still far off from making fun games. (As an extreme example, spend some time here http://cstheory.stackexchange.com/).
Third, the idea of (re-inventing the wheel = bad) is a myth. As a (game ?) programmer, your job is *not* to code specs and standard algorithms, or just glue things together. Your job is to re-invent wheels *all the time*. You will be expected to do new things pretty much every day. Even if you clone a game, chances are the algorithms you need is not easily be accessible. Your skill is not just to understand and implement, but to invent too. If you cannot invent... (and re-invent) then you are a bit doomed.
Fourth, probably the biggest challenge of being a game programmer is to persist past the interesting bits, and get the necessary bits done too. Practicing finishing projects is invaluable. It's a form of stamina. I'm not a great chess player: I'd much rather play the master student than the one who had 1000 games under the belt.
*Edit:* (Almost forgot) Fifth, writing a book and being a good programmer are separate skills. Only very few people have both. Most of programming knowledge is not available *anywhere* but other peoples heads. It's frustrating, but true.
----
Your scenario is flawed, because, 1) Sarah will discover too late that she cannot compile or deploy her program from Windows onto the Linux server 2) she will spend way longer deciphering compiler bugs, 3) she will discover that her O(n) algorithm is actually slower than Johns O(n^2) algorithm for practical problems, 4) her program is unusable because she did not get early feedback from users 5) she did not realise the GUI system does not map well to her UML diagrams, and possibly 10 other things.
----
That said, I love programming books and other resources, and programmers can learn a lot from them. There are so few game programming books published we can read all of them. Just beware that most of the things you will need are not in them. Books are helpful to structuring your experience, opening the doors to new avenues of exploration, and to amplify your knowledge. But 200 books vs. one finished game out in the wild... The story does not end as you expect.
(And just a little disclaimer; the above is not meant to be construed as an argument for making game engines. Learning programming and making games are two separate things, only slightly overlapping.)
As someone that's built both nationwide applications for the government AND released completed games, there's not much I can generalise across the two other than: Try to understand the problems you're attempting to solve and make sure those problems match reality. In government work that means nailing down the spec 100% and having ample use-cases to check against as you implement. In game development that means lots of rapid iteration and testing with players, then fielding myriad problems that are unique to that specific game while avoiding useless wastes of time like premature optimisation and feature creep.
So far the historical approach most likely to actually result in someone becoming a successful game programmer is to start programming games and doing research (book-, face- or internet-based) once they understand the implementation space of the problems they're trying to solve. The other way around, doing all the research first, hasn't worked nearly as well. If that second approach works for you, cool. But it only WILL have worked once you've got a game you programmed to show people :)
It's also not the best approach to advise for other hopeful game programmers unless you have more knowledge about their individual programming backgrounds and goals. Given no information whatsoever, it's better to advise the approach with the statistically higher success rate.
@SkinnyBoy I have a suggestion. How about putting all this learning to use in a game jam. There are so many of them. The one I usually enter is Ludum Dare, alternating between the 48 hour compo and the 72 hour jam. They're fun and there's usually a lot of creativity on show.
On beautiful code: In general, I don't consider myself a "programmer", even though I program. I don't see my task as "writing code", even though that's what I do. I try to remain focused more on the content I am creating. I consider my activity in the morning as "driving to work", not "negotiating traffic lights and taxis", and I see what I do when making a game the same way.
In the big scheme of things, my code is probably horrendous, but I know enough about what makes things slow and what logical way to solve any problem in a way that runs well. I like to go from thought to playable thing in the fastest possible way, even if it means nasty shortcuts. I want to know what a thing feels like before devoting too much time to crafting the code that drives it.
I should write a book too: My Code Is Shit And I Don't Care
In that sense, writing "beautiful code" isn't about being really smart and doing fancy stuff that requires a lot of extra reading to understand: it's about writing code that's easy for other team-members to read/edit, that runs fast enough that the game doesn't hitch. If the game's running smoothly, then you're wasting time trying to be clever. I'm sure there's a book about that too. :P
Source: In his chess scenario he framed the books as the crucial bit of understanding that helped the players grow once they'd already picked up some skills at different stages of the chess player's development (i.e. the scenario was not of a chess player who reads a ton of books and immediately is a master).
(It's a crude metaphor, but I don't think @SkinnyBoy meant to argue that doing all the research before having any practical experience is the most efficient approach, I think he was literally trying to advise on which books to pick if you wanted to read up on beginner game programming)
Also. I don't think anyone here thinks reading books and theoretical papers are bad for you. That would be dumb. I've met many programmers who have been able to talk about "white papers" written about a particular game programming subject, and their knowledge far surpassed mine and they were able to do useful things that I was not.
I agree "Game Programming Book Reviews" would be a more useful discussion (like @dislekcia mentioned).
Though of course I haven't ever read a programming book myself, and I don't think that will ever hold me back (as my game design skills are more important than my game engineering skills in my job). But I can imagine how that extra information could be useful to some other programmer, and I'm glad that some of my colleagues have been through the kind of formal education that made them acquire theoretical game programming knowledge, and then be able to pass on that information to me when I need it.
@rustybroomhandle I'd totally read your book : )
Just by the way, in the chess example, if you play 1000 games without any improvement then you probably shouldn't be playing chess and nothing you do will ever help you. One of the most important things in life, and especially in the dev world, is the ability to learn by trying (and failing) and by adapting for success. Those who try and fail have the ability to lead to improve the current state - those who follow recipes fall behind and become irrelevant.
Just my 5 cents.
Personally, I don't see very much in the scope of game development (programming included) that helps me narrow down specific successful approaches. I see so many different ways of coding working, so many different engines, so many different game ideas, so many different focuses from mechanics to art to emotional resonance to client brief to systemic need... Basically, there are so many possible paths that there isn't really one path at all - I find that books tend to assume that the specific path one person followed is a correct path that others can and should follow to reach similar success.
That doesn't seem to be the case - especially given how the landscape these paths are traversing changes continuously as new technologies, social perceptions and economic implications come and go. I don't feel that we can have a "map of game development" in that sense.
That's why I prefer to focus on a space that I can find generalisable learning points in: What didn't work for others. And, if possible, why. Unfortunately I haven't been able to find many resources that focus on this, so most of my knowledge is gained from anecdotes and watching the visible sections of the local and international development industries evolve.
Learning what NOT to do is much more important than learning what might have maybe been the right thing to do at some point.
There only way to read books online via unisa is to follow the instructions bellow.
Go to oasis.unisa.ac.za
1. Click on Library Links -> Search for Information Resources -> A-Z list of electronic resources
-> s -> Safari Business and Tech Books Online
You can either search the books you want at the top right, or you can click any category on the left side. My favorite category is "game programming' and all the books I mentioned above are available there.
http://www.gamefromscratch.com/post/2011/08/04/I-want-to-be-a-game-developer.aspx
more on that, starting may, ill release games ive been making throughout the years and comment on which books i read to make those games possible.
the reason I have been holding is that this games were not polished enough that gave me satisfaction for main release, so now I got an artist and all shoud be well. 2 I decided that all of my games must have social features, so all this time I've been making a nodejs social engine to handle all the networking stuff.
SkinnyBoy Games is coming soon!