It requires some discipline while commenting your code, and generates a documentation from your comments. And during your project, you get both commented code (at least what each classe and function does, not the internals), and a code documentation which makes explaining things easier.
( _ What''s this function for ?
_ RTFM.
![](smile.gif)
I agree with the " no comments is better than bad comments". But commenting correctly is a skill in itself
BTW, there''s a whole gamedev article on the subject of comments and documentation :
The Art of Code Documentation