Skip to main content
GameDev.net gamedev.net
🔒 Locked

Game Development Knowledge Map

Started by ApochPiQ Feb 1, 2007 at 10:35 PM 14 replies 3.2k views
Original Post
ApochPiQ
ApochPiQ
Persuant to the discussion here, I thought it'd be interesting to start collecting the beginnings of a comprehensive set of articles on various aspects of game development. I think it would also be good to consider this content from the interactive/rich-media approach that Oluseyi has discussed, as that would set it apart (by a large amount) from the existing hordes of tutorial sites on the web, most of which are complete trash. Obviously this is a very huge mass of knowledge with a tremendous amount of ground to cover. As such, it's my opinion that the best way to approach this is to collect input from as many people as possible. To kick things off, here's my thoughts on a very high-level "table of contents" of sorts:
  • Introduction and Overview
    • What exactly are these things we call "games", and what are they used for?
    • How are games made?
    • Following a (possibly hypothetical) game from idea to Wal-Mart shelves
    • A brief history of gaming and game development
    • Professional vs. amateur game development
  • In Depth: Programming
    • Getting started: choosing your tools and learning to code
    • Game programming vs. other software development fields
    • What kinds of programming are involved in game development?
      • Graphics
      • Gameplay logic
      • AI
      • Audio
      • Networking
      • User interface
      • Tools
      • Brief discussion of scripting and embedded languages
    • Designing software
    • Development methodologies
    • Brief coverage of major language paradigms and how they fit into game dev
    • Writing solid code
      • Refactoring
      • Unit testing
      • Debugging strategies and tools
  • In Depth: Creating Visual Art (Someone who knows these field should fill in details...)
  • In Depth: Sound Effects and Music
  • In Depth: Gameplay Design
  • In Depth: Managing a Game Development Team
    • Casual teams
    • Professional teams
    • Suggestions for contest participation
  • In Depth: The Business of Game Development
  • In Depth: Putting the Pieces Together
    • Testing
    • Tools of game development
    • Creating a data pipeline
    • Asset repositories (possibly including source control)
    • Automated build systems
    • Installers and deploying projects
    • Player feedback
    • Polishing and perfecting a project
  • Mathematics for Game Developers (Suggestions for content welcome!)
  • General Advice
    • Motivation and discipline
    • Productivity tips
    • etc.
  • Tales from the Trenches (Just because I personally think it'd be cool)
Let's see what we can fill in here; maybe even start writing some prototype content. Word from On High is that there won't be time for major content changes until at least after GDC, but at least we can aim for a good solid head start. If you've ever wanted to write an article, now's your chance [wink] [Edited by - ApochPiQ on February 2, 2007 9:13:33 AM]
Fukushuusha
Fukushuusha
Very nice initiative !

So , there won't be any tutorials of any sorts on specific languages , I guess eh?
Since that would make it huge only by itself :)

On another note , since I am nothing but a noob ( 3 years now :( ) , what I wanted to stress more than anything is somewhere in there to state how important it is to not lose contact with programming/developing.I started and stopped at least 3 times :/
And another thing would be to finish the games you start , no matter how much you think that you could finish it , and go to the next project , you have a lot to learn by finishing a project.Putting the finishing touches .. playtesting ... e.t.c.
ApochPiQ
ApochPiQ
Good points; I've added a section to cover some of those things.

I personally don't feel that "learn language Foo" tutorials are the right sort of content for GDNet, although there will probably be a few inevitable "how to do X in language Blah" sorts of pages.
OrangyTang
OrangyTang
Programing should probably include more high-level areas, including design patterns, refactoring, unit testing, extreme programming and other methodologies.

Sections on tools and data flow (art pipelines, data builds, etc.) would be good too. IMHO they're pretty neglected areas.
John H
John H
Quote:
Original post by OrangyTang
Programing should probably include more high-level areas, including design patterns, refactoring, unit testing, extreme programming and other methodologies.

Sections on tools and data flow (art pipelines, data builds, etc.) would be good too. IMHO they're pretty neglected areas.


I was just going to bring this up myself until I saw this reply. I think good information about software design/construction in general would go a very, very long way. Just from looking at For Beginnners from the last few days, here's some of the thread titles:

inheritance redefinition problem
general class design?
Class Object question (C++)
How use header file??
Polymorphism question - This one's a perfect example of what I'd think collectively GDNet could solve: "I've been reading several articles that have conflicting opinions on the use of virtual functions..."

I'd still like to see something in there that explains/covers the foundations of required Mathemetics. As I pointed out in the other thread, not everyone has been taught algebra or trigonometry, but in order to make real and substantial use of the articles on this site, those skills are all but required in the realm of programming.

Lastly, great initiative mate. [smile]
John H
John H
Oh and some articles about debugging would be fantastic as well, both for normal debugging and debugging a DirectX/OpenGL/etc. application.
ApochPiQ
ApochPiQ
More great stuff; updated.

Where might we fit in something dealing with different game media? (I'm thinking PC/console vs. web games vs. mobile games vs. whatever)
John H
John H
I think the targeting of different platforms could possibly be covered in the "Introduction and Overview" section, with the focus being on what differs from platform-to-platform and the compromises you would have to make in order to work with them. I also think if someone is aiming for console development, they should be advised to keep in mind that getting any game working at the beginners stage, is the most important thing. That probably applies to mobile development, too, but I can't say I know a lot about that so I'd rather not put my size 10s in a hole. [smile]

I like the idea of, "Tales from the Trenches." I'm assuming this would include post-mortems (which I think are very important)? It'd be nice if we could find a few people who started out with a massive project to see what the successes/failures of such a venture were.

The motivation/discipline discussions are a great idea, too. There's been a significant amount of posts on these forums along the lines of, "How do you stay focused?" In terms of actually reading and learning, I've found that reading a chapter from a less interesting book and then going on to a chapter from a more interesting book, has worked wonders for me.

To illustrate what I mean, a few months back I finally had enough time to make a serious dent on what I needed to learn. So, I started reading Accelerated C++ (I've been using C# too much [smile]) and also Geometry and Trigonometry for Calculus - A Self-Teaching Guide. I was really enjoying Accelerated C++. I'd previously read a few other C++ books, but they were a little bland and hard to follow, but Accelerated C++ was different. However, with the Geometry/Trigonometry book, although the information is good, the first chapters covering Geometry made my eyes bleed. So I'd basically finish a chapter of Accelerated C++, which I enjoyed, then force myself through a chapter of the other book without allowing myself to go back to what I liked before I'd completed it. That way it gave me that feeling of, "I want my dessert now but I can't until I've finished my dinner."

That did a lot for me and I still use that on other books now. Although, maybe I am just a bit weird. [grin]
templewulf
templewulf
I don't know how you envision the content submission pipeline, but I think we do still need a fair amount of explicit, low-level instruction. If users could submit a "do this in language X" feature, similar to what is seen at NeHe, this would be a bit easier.

An experienced programmer doesn't need that kind of thing, but imagine how hard it is to think about multiple inheritence and the dangers of the "dread diamond" hierarchy when you haven't even learned the syntax of inheritance in your language of choice?

At the bare minimum, I think we need to link to that kind of material from the tutorials or from the tutorial sub-group page. It could be user-submitted stuff hosted here or off-site content for all I care, but considering how much hand-holding beginners need, I don't think high-level, abstract descriptions are going to do much to keep their "tie my shoelaces" questions out of the For Beginners forum.

EDIT:
I think in-line links (as in, you can click on it while you're reading the tutorial) are ideal for this kind of informational cross-referencing. That's why I suggested a wiki some time back, but lots of people are totally anti-wiki for fear of vandalism and sub-par submissions. I don't have a real solution to this, but my goal isn't to use a wiki so much as to have links in-lined as information is added to the collective body of knowledge on GDNet.
XBox 360 gamertag: templewulf feel free to add me!
stimarco
stimarco
Quote:
Original post by templewulf
I don't know how you envision the content submission pipeline, but I think we do still need a fair amount of explicit, low-level instruction. If users could submit a "do this in language X" feature, similar to what is seen at NeHe, this would be a bit easier.


But why does GDNet need to reinvent the wheel? There are trillions* of "Learn C++/Pascal/COBOL for fun and profit!"-type websites out there. This is the interweb, right? Why can't we just link to one of these?

Where we could add to the existing global factmulch is in providing more algorithm-focused articles. Frankly, if you're having to ask "How do I write a render a texture using OpenGL and PDP-11 COBOL?", the problem is that you need to learn more about COBOL and the PDP-11.

I'd also like to see more emphasis and guidance on research and critical thinking techniques. (The latter is essential in this age of endless spin and advertainment.) One way to achieve this is by pointing newbies to relevant, (new!) content and meta-content that they profess an interest in. Maybe even firing regular email newsletters to members about new content, including podcasts, video tutorials, articles, relevant editorials, interesting threads and so on. (Adding some "relevant interests"-type tick-boxes in the GDNet Control Panel would help with this.)



* (give or take an order of magnitude)

Regards,
Sean Timarco Baggaley (Est. 1971.)Warning: May contain bollocks.
templewulf
templewulf
Quote:
Original post by stimarco
Quote:
Original post by templewulf
I don't know how you envision the content submission pipeline, but I think we do still need a fair amount of explicit, low-level instruction. If users could submit a "do this in language X" feature, similar to what is seen at NeHe, this would be a bit easier.


But why does GDNet need to reinvent the wheel? There are trillions* of "Learn C++/Pascal/COBOL for fun and profit!"-type websites out there. This is the interweb, right? Why can't we just link to one of these?
We don't have to reinvent the wheel. In fact, in the post you partially quoted, I went out of my way to say "It could be user-submitted stuff hosted here or off-site content for all I care".

Quote:
Where we could add to the existing global factmulch is in providing more algorithm-focused articles. Frankly, if you're having to ask "How do I write a render a texture using OpenGL and PDP-11 COBOL?", the problem is that you need to learn more about COBOL and the PDP-11.
Quote:
I'd also like to see more emphasis and guidance on research and critical thinking techniques. (The latter is essential in this age of endless spin and advertainment.)

I agree with you on all counts, but I think you're being a bit idealistic. A good portion of the questions veterans complain about are low-level "Learn C++ for fun and profit" questions. Disregarding that for higher-level, more abstract content will be interesting to people who understand, but for a new programmer, it means practically nothing.

Disregarding ground-up syntax-intensive tutorials assumes your audience already knows how to program in some capacity, and that's perfectly legitimate, but you have to make that determination pretty plain to visitors. If you want to include beginners (or at least keep their "what's an include file?" questions out of For Beginners), you need to host or link to hand-holding tutorials from a fairly conspicuous page.
XBox 360 gamertag: templewulf feel free to add me!
zer0wolf
zer0wolf
Under visual arts, discussions on the creation of vector and raster images would be appropriate. Outlining the principle of 3d modeling, animation, and lighting would all be well suited for the section as well. Scripting for 3D needs to be plugged in somewhere.
BeanDog
BeanDog
In MSDN, each page usually has several sections of example source code. Each section of code is available in a number of languages. It would be nice to be able to read a single article and see sample code for each section of the article in 9 different languages.

Now, finding a way for users to submit source code in a new language to an existing code block in an existing article could be difficult. But it sure would be cool.
Jarrod1937
Jarrod1937
Quote:
Original post by zer0wolf
Under visual arts, discussions on the creation of vector and raster images would be appropriate. Outlining the principle of 3d modeling, animation, and lighting would all be well suited for the section as well. Scripting for 3D needs to be plugged in somewhere.

i am not sure why we should mention vector type graphics, aside from logo creation i guess. if we do it should be in a sub catagory.

once you guys get things sorted out i would not mind contributing a large amount of material to almost all subjects under visual arts.
-------------------------Only a fool claims himself an expert
Trapper Zoid
Trapper Zoid
Quote:
Original post by Jarrod1937
i am not sure why we should mention vector type graphics, aside from logo creation i guess. if we do it should be in a sub catagory.

Vector graphics are important for Flash games, and I use vector graphics as the basis for my artwork as I like the style. I also think it's a good format for non-artists (such as hobby game programmers!) to use.

Is there a section for developing on different platforms? PC (Windows, Mac, Linux), consoles, handheld gaming systems, mobile phone, online games?

Jarrod1937
Jarrod1937
Quote:
Original post by Trapper Zoid
Quote:
Original post by Jarrod1937
i am not sure why we should mention vector type graphics, aside from logo creation i guess. if we do it should be in a sub catagory.

Vector graphics are important for Flash games, and I use vector graphics as the basis for my artwork as I like the style. I also think it's a good format for non-artists (such as hobby game programmers!) to use.

Is there a section for developing on different platforms? PC (Windows, Mac, Linux), consoles, handheld gaming systems, mobile phone, online games?

omg... lol, somehow flash games just completly left my mind when i heard vector graphics... my mistake. with my memory restored i do believe it is an important topic to cover.

-------------------------Only a fool claims himself an expert

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.