gnarlyman at January 15th, 2012 14:44 — #1
What I mean by the topic title is...
Obviously, there's a plethora of things that can go wrong in the game realtime; major and common ones would be, for instance, clipping, slow framerate, AI gone amok, etc. I'd like to ask if anyone could put together a list of core, fundamental errors and bugs common to games and post it on here. Not a huge thing, just a "basic bug bible" with perhaps 10-20 of the most fundamental bugs and whatnot. As I develop my own games, I want to get adjusted proactively to what I'll certainly be dealing with so as to help my first rounds of coding be more insightful, intuitive, and forward-thinking.
thenut at January 15th, 2012 17:01 — #2
There is only two fundamental errors in software development. You either have a software error that causes an exception or you have a logical error where your software doesn't provide correct results. You can't extract frequent errors out of that because everybody has their own set of issues to resolve, all of which are specific to their particular domain. Rather than look for 20 golden errors, instead adopt a bit of software engineering into your workflow. Plan ahead and scope out your work. Gather and read all pertinent documentation on your problem. Design a system on paper, carefully examining the relationships between classes and then follow through with it in code. Produce a test plan to ensure your software conforms to the requirements you originally set out for. Document your progress along the way so you can always look back later and recognize where you goofed up. It's an effective way to learn from your mistakes and better yourself as a developer.
As for implementation defects, you're going to have to rely on your knowledge, experience, and wits to get through your problems. Sometimes tripping over a rock is the only way you'll start to look before you leap.
gnarlyman at January 15th, 2012 18:55 — #3
Thanks T.N. That's good advice. I gather that careful thinking-out beforehand is one of the greatest guards, and then...tripping over some rocks and being a good learner about it.
geon at January 16th, 2012 08:08 — #4
There are some areas of software development that are notoriously bug-prone. That's true for any kind of software, not just games.
- Memory management / memory leaks - Guess why garbage collection is a very popular language feature?
- Threading / race conditions - It might work perfectly most of the time, but bite you randomly once in a million runs.
Just off the top of my head. I'm sure there are more.
alphadog at January 16th, 2012 09:22 — #5
Actually, there are a few types. Each of which has "subtypes", for example, under Teamwork, you would have regression errors where someone inadvertently causes some code to revert back to an older, incorrect state.
The way to mitigate the production and/or the effect of some of those kinds of bugs is to have various testing harnesses (unit, UI, user-level, code coverage, etc...), good source control, code reviews, etc. People make consulting careers out of this...
gnarlyman at January 16th, 2012 17:47 — #6
Thanks geon and alphadog. That link is particularly useful, basically what I was looking for. Sweet deal.