We are going to be launching one of the biggest community efforts to build a comprehensive game development library of topics since our initial creation back in 1999. Our goal is to ensure that we as a community can build a resource library that all game developers can use for years to come and is entirely free to use. It will be fully tagged, easily searchable and should provide source code examples wherever possible. The look of articles should be consistent and clean, almost like a book of sorts.
I'm looking for people who can help begin the process by suggesting article topics that you would expect a complete library of game development articles to have. The skill range is from beginner to expert. Literally I am asking for article topics that cover every facet of the development process. Don't worry about checking to see if our archive already has these topics and don't worry about duplicating other ideas in this thread. Initially for this forum we can list ideas in this thread and I'll combine them into a running list and cull out duplicates.
Some topic ideas so far:
How to make a save system/replay system/undo-redo system
How to make effects that apply for some time (spells, power ups)
Introduction into scene traversal ( scene graphs, portals, ...)
Resource management ( real-time reloading of assets, load resources from archives during release builds,...)
Reinforcements of just how important state machines are in game development.
State machines in managing game state
State machines in managing object lifetime
State machines in game-style AI (and the difference between machine learning and game AI)
State machines in animations
Frame independent movement and fixed time-steps
Message bus/ global event systems
Local event systems
Hooks into scripting systems
Hooks into animation systems
Hooks into asynchronous systems
Hooks into OS systems
Hooks into existing libraries
Serialization and IO: How to serialize and deserialize data
Serialization and IO: Applications of serialization in save games and persistance
Serialization and IO: Applications of serialization in interprocess communication
Serialization and IO: Applications of serialization in local multiplayer games.
Serialization and IO: Applications of serialization in networked games.
APIs and Tools
The major 2D frameworks and hardware abstraction layers: SDL, Allegro, SFML
All the 3D engines: Unity, Ogre, Irrlicht, etc.
All the cross-platform mobile game frameworks: Corona, cocos2d-x, Marmalade, etc.
All of the physics engines: Bullet, Box2d, Chipmunk, etc.
Beginner's Guide to Game Programming
How do I Make Games?
How Sprite Animation Works
Working with Sprite Sheets
Multithreading - Not the low level stuff but effective uses in game development (for example demo showing how to correctly separate the render thread from main thread)
Introduction into sound programming
Introduction into cross platform development ( how to use make files etc)
Introduction into localization
2D / 3D Resolution Independence
Using asynchronous calls from the OS and other libraries
Using scripting libraries
Why scripting languages are useful
Incorporating scripting engines into your game
Grab-bag of useful techniques, such as auto-reloading of resources, in-game tuning, live patching of a running process, and much more.
Creating a Game Design Document
Genres of gameplay
Evolution of games
Implementation systems for introducing stories into games
Achievement systems (technical side of "how to implement them" and design side "why and how to include them")
Punishment systems (how to teach meta-game/rules etc)
Goals and motivation (short-term: collect coins/defeat enemies, mid-term: reach level exit as fast as possible, long-term goals: rescue princess)
Feedback! (make users aware of every important state, acknowledge input, make aware of options etc.)
Onion layer model (core game, meta game, tokens, ...)
Realistic / non-realistic shaders
Global illumination techniques (at least an overview and a few pointers to techniques used in specific games)
basic algorithm explained in exhaustive detail (explain everything, make no assumptions)
exponential shadow mapping (current state of the art - explain everything)
variance shadow mapping (current state of the art - explain everything)
Lexicon of common game terms (with translations for localization) with easy downloading
Creative writing for games
Technical writing for games
Writing spoken dialogue for games
Story writing and narration
How to develop background stories for games.
Design patterns and antipatterns
DIY vs Libraries. Why libraries are usually better, and why you still need to know what is inside.
Basic game code architectures (for projects of different types and sizes, to give an idea of how to organize all that code and data)
How to keep code error free (simple stuff like logging or asserts or watever)
Security measures for protecting games from piracy
Importance of commenting code
CPU, Memory and Performance Optimizations
Introduction into SIMD programming
Introduction into memory management (for example allocation tracking, how to use dlmalloc, virtual memory,... )
Introduction into optimization (performance)
Introduction into programming tools ( profilers, graphics debuggers, ... )
Memory optimizations ( reduce total used memory, access patterns,...)
Basics of all hardware: the system bus; relative time between the CPU, cache, ram, and storage; cpu instructions; cycles; etc.
What we HAD twenty years ago (aka: what many books teach) and what we HAVE today.
Basics of modern hardware architecture, including long pipelines, multi-instruction decoding, out-of-order cores, speculative execution, etc.
Optimizations that used to make sense decades ago, but no longer do, and why.
Project Management (?)
Introduction to Revision Control Systems
Source version control: Git
Source version control: Subversion
Quality Assurance and Bug Testing
Managing Beta Testers
Automated Build systems
How to work with teams remotely for game projects.
How to improve your communication skills for developers and designers.
Project management for games, Agile, PMP, etc...
Building menus and controls of various kinds
How to make remappable keys
Data Structures & Algorithms
Algorithms: Basics of complexity. Understanding Big-O. Learning what is fast, what is slow, and what is impossible.
Algorithms: Divide and conquer, recursion, tree traversal
Algorithms: Assorted sorting routines, from bubble sort to quicksort, radix sort, mergesort, and shell sort, and why sometimes it is best to use an atypical sorting routine
Algorithms: Searching routines: sequential, binary search, binary search trees, indirect binary searches, trees, balanced trees,
Algorithms: String processing
Algorithms: Pattern matching and regular expressions
Algorithms: Graph searching, depth-first and breadth first, both recursive and nonrecursive.
Algorithms: Range searching
Algorithms: Geometric algorithms
Algorithms: Closest point
Algorithms: Geometric intersections (point/triangle, point/sphere, ray/sphere, ray/tri, tri/tri, tri/sphere, etc)
Algorithms: Finding a convex hull.
Algorithms: kD searching and spatial grids
Data Structures: Arrays and linked lists.
Data Structures: Stacks and queues.
Data Structures: Trees and heaps and sets and maps.
Data Structures: Trees of all sorts (for searching, efficient storage of sparse data) - a language agnostic version along with some specific implementations
Data Structures: Graphs: cyclic and acyclic, directed and nondirectional
Data Structures: Trees and their relationship to graphs
Data Structures: Using 1D structures to represent kD spatial areas
Data Structures: Connectivity, weighted graphs, network flows,
How to represent objects in code (creatures, buildings, inventory items...)
How to format your resources (images, settings, whatever, file or embedded in code etc.)
Fundamental data types and composite objects. Why we need both.
Applications of producer/consumer models
Theory of parallel processing
Basic parallel systems like master/workers and trivially parallel problems, parallel search
More advanced parallel algorithms; parallel sort, parallel communication, load balancing
Principles of animation
How is Game Art different?
Vector vs Raster (+ vs Pixel)
Assets vs concept art
I'm keeping the initial list short because I'd like to get this topic out there and open to suggestions.
Edited by Michael Tanczos, 28 March 2013 - 07:09 PM.