Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Article Inspiration

  • You cannot reply to this topic
122 replies to this topic

#1 Michael Tanczos   Senior Staff   -  Reputation: 5520

Like
21Likes
Like

Posted 04 March 2013 - 07:14 AM

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.  

 

Note:  The list below is being updated as people post new ideas so it will be constantly evolving over the life of this thread

 

Some topic ideas so far:

 

Physics

http://www.gamedev.net/topic/639778-article-topics-math-and-physics/

 

Math

http://www.gamedev.net/topic/639778-article-topics-math-and-physics/

 
 

Suggested Projects

http://www.gamedev.net/topic/639775-article-topics-suggested-projects/

 

Game Architecture

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,...)
Timestepping

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
Logging systems
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.

 

Game Programming

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.
 
 
 

Game Design

Creating a Game Design Document

Character Design

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, ...)
 
Lighting
Realistic / non-realistic shaders
Global illumination techniques (at least an overview and a few pointers to techniques used in specific games)
Shadow maps
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)
 
 

Writing

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.

 

Program Design 
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
Refactoring
Debugging
Profiling
Optimizing
Automated Build systems
Tools development
Tools pipeline
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...

 
User Interfaces
Building menus and controls of various kinds
How to make remappable keys
 
AI

http://www.gamedev.net/topic/640115-suggested-topics-artificial-intelligence/

 
Data Structures & Algorithms
Algorithms: Classification
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.
Producer/Consumer models
Applications of producer/consumer models
Compiler theory
Operating systems
Formal languages
Parallel processing
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
Dynamic programming
 
Multiplayer Programming
 
Game Art

Lighting/Shading

Perspective

Principles of animation

Figure Drawing/proportions

Color Theory

How is Game Art different?

Vector vs Raster (+ vs Pixel)

Assets vs concept art

Software

 

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.


Sponsor:

#2 Stormynature   Crossbones+   -  Reputation: 3577

Like
4Likes
Like

Posted 04 March 2013 - 07:39 AM

I believe a lexicon would also serve good value

 

genres of gameplay

evolution of games

creative writing for games

technical writing for games 

writing spoken dialogue for games

Implementation systems for introducing stories into games

Translation of games to other languages - resources

Security measures for protecting games from piracy

player/game Interface design


Edited by Stormynature, 04 March 2013 - 11:35 AM.


#3 kuramayoko10   Members   -  Reputation: 386

Like
1Likes
Like

Posted 04 March 2013 - 08:59 AM

Some basic artwork articles would be nice as well:

 

- How to make artwork using vectors

- Pixel art basics

- How to use colors to achieve certain emotions

 

Something like that :)


Programming is an art. Game programming is a masterpiece!

#4 Waterlimon   Crossbones+   -  Reputation: 2865

Like
2Likes
Like

Posted 04 March 2013 - 10:10 AM

UI stuff (menus and controls of various kinds, state machines, all kinds of input and how to handle it)

Trees of all sorts (for searching, efficient storage of sparse data... a tutorial for a tree that doesnt use pointers everywhere would be nice)

Interpolation/extrapolation (basic stuff, SLERP, using quaternions to interpolate matrices...)

Procedural generation of content (noise of all sorts and how to combine it to get results)

Basic game code architectures (for projects of different types and sizes, to give an idea of how to organize all that code and data)

Source version control (or whatever its called, different ways to do it from USB sticks to the actual ones)

How to keep code error free (simple stuff like logging or asserts or watever)

How to represent objects in code (creatures, buildings, inventory items...)

How to make a save system/replay system/undo-redo system

How to make effects that apply for some time (spells, power ups)

How to format your resources (images, settings, whatever, file or embedded in code etc.)

How to do multiplayer/solve the latency problems (simple, lets say firing a fun or shooting with a minigun or throwing a bomb)

How to repair your time step

How to make remappable keys

How to make an awesome multiplayer infinite millimeter resolution voxel world that supports 8999 players

Path finding algorithms (A*, navmesh (3D navmesh for spaceships? :<), laggy raycasting based thing that never works properly)

Ways to implement AI

o3o


#5 Yourself   Crossbones+   -  Reputation: 1281

Like
2Likes
Like

Posted 04 March 2013 - 01:01 PM

* introduction into SIMD programming

* multithreading. not the low level stuff but effective uses in game development (for example demo showing how to correctlty separate the render thread from main thread)

* introduction into sound programming

* introduction into cross platform development ( how to use make files etc)

* introduction into memory management (for example allocation tracking, how to use dlmalloc, virtual memory,... )

* introduction into optimalisation (performance)

* introduction into memory optimalistion ( reduce total used memory, access patterns,...)

* debugging facilities (logging, asserts, ...)

* introduction into scene traversal ( scene graphs, portals, ...)

* behind the scenes of existing libraries (for example how does a STL map works internally)

* introduciton into localization

* basic graphics programming utilities ( for example correct aspect ratio handling, perhaps a basic software rasterizer)

* introduction into resource management ( real-time reloading of assets, load resources from archives during release builds,...)

* remappable input handling

* introduction into programming tools ( profilers, graphics debuggers, ... )

* core programming utilities ( show that there is more than the build-in random, hashing, ..)



#6 TheChubu   Crossbones+   -  Reputation: 5980

Like
0Likes
Like

Posted 04 March 2013 - 01:32 PM

One question, there will be a review process?


"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

 

My journals: dustArtemis ECS framework and Making a Terrain Generator


#7 Michael Tanczos   Senior Staff   -  Reputation: 5520

Like
0Likes
Like

Posted 04 March 2013 - 01:35 PM

One question, there will be a review process?

 

Yes, after articles are published online they will go through a review process in which those who have sufficient ratings can up/down vote the article to mark it as peer reviewed.    

 

We are currently working on a description of the process here - it's pretty complete except for some links that need to be filled in:

http://www.gamedev.net/page/resources/_/gdnethelp/how-to-publish-on-gamedevnet-r2927



#8 Overman   Members   -  Reputation: 472

Like
1Likes
Like

Posted 04 March 2013 - 01:45 PM

Maybe a a few more topics with regards to Audio:

 

Creating Game SFX

Creating Game Music

Connecting Sounds and Animations

Multiple sounds and music

Programmatically altering sound effects

Creating SFX with depth (far, near, left, right, in front, behind, above, etc.)

Sounds that move/doppler effect

etc.



#9 Michael Tanczos   Senior Staff   -  Reputation: 5520

Like
0Likes
Like

Posted 04 March 2013 - 01:51 PM

Thanks for the suggestions so far guys.  Even though the list is getting bigger you can see from a topic by topic basis that there is a lot of room to expand yet.   =)



#10 Servant of the Lord   Crossbones+   -  Reputation: 23363

Like
1Likes
Like

Posted 04 March 2013 - 01:55 PM

Making an object follow a fixed/pre-set path. (Probably using Splines)

Frame independent movement and fixed time-steps - there are already some good articles on this subject, so even just linking to those would be great,
A couple good architecture 'fitting the pieces together' articles would certainly benefit me.
 

Your 'Game Programming' category quite larger than the rest. Maybe it should be split into 'Suggested Projects'* (Pacman, Connect-Four, etc...), 'Game Architecture' (timestepping, effects that apply over time, replay system, state management), and 'General Programming' (intro to sound, and etc...), and 'Interpolation/extrapolation' maybe should be under math.

 

*With 'prerequisite knowledge' linking to the other articles in the database when possible.


Edited by Servant of the Lord, 04 March 2013 - 01:56 PM.

It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal

[Fly with me on Twitter] [Google+] [My broken website]

[Need web hosting? I personally like A Small Orange]


#11 Bacterius   Crossbones+   -  Reputation: 9977

Like
1Likes
Like

Posted 04 March 2013 - 01:56 PM

Perhaps some introductory notes on lighting techniques? Both realistic and not realistic, e.g. toon shaders.. it's a rather popular topic.


The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.

 

- Pessimal Algorithms and Simplexity Analysis


#12 noatom   Members   -  Reputation: 789

Like
1Likes
Like

Posted 04 March 2013 - 02:58 PM

2D and 3D resolution independence.You can't find any article explaining how to achieve it.



#13 hikarihe   Members   -  Reputation: 243

Like
1Likes
Like

Posted 04 March 2013 - 03:13 PM

3D

  • 3D collision detection
  • 3D camera styles
  • 3D math / physics

graphics

  • lighting / shading
  • height maps
  • particle systems
  • sky box


#14 Tsus   Members   -  Reputation: 1084

Like
0Likes
Like

Posted 04 March 2013 - 04:56 PM

Game design stuff:

  • achievement systems (technical side of "how to implement them" and design side "why and how to include them")
  • closely related to the first: punishment (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.)
  • good old onion layer model (core game, meta game, tokens, ...)

Some programming stuff:

  • Global illumination techniques (at least an overview and a few pointers to techniques used in specific games)
  • Paradigms that are common: game states etc
  • character animations
  • open world games (content management)
  • physics in games
  • dynamic systems in games (real-time material aging etc)


#15 zeybey1   Members   -  Reputation: 464

Like
0Likes
Like

Posted 04 March 2013 - 05:39 PM

-Picking colors and color schemes for game sprites

-How server-client communication works in online games

-Importance of commenting code

-How sprite animation works

-Different types of variables

-Use of gamestates and switching between them

-Importance of having others test your game before release (or how to correctly go through beta testing)

-Teaching through the gameplay itself and not through tutorials (good conveyance)

-Use of subpixels (i guess this doesn't really matter nowadays with floating point variables, maybe just for information of how older games worked)

-Regulating framerate

-Using sprites as a tileset

-Paletted graphics

-Using multiple source files in a project



#16 ultramailman   Prime Members   -  Reputation: 1648

Like
0Likes
Like

Posted 04 March 2013 - 05:53 PM

physics: better integration method than Euler integration. I suspect many beginners (including me) don't know any other methods.



#17 MikeyMike420   Members   -  Reputation: 142

Like
0Likes
Like

Posted 04 March 2013 - 07:04 PM

Something I would find extremely useful (and I just skimmed so I don't know if this was covered) is a video and picture tutorial on how to set up an SVN repository to an engine like Unity so small development teams like mine could all work on the same project without spending thousands on licenses. I realize that there are free open-source eninges to develop on, but unity is so beautiful, and I have been with it for years now. 

 

I have Tortoise SVN and have it configured for the most part, but do not know how to set up a repository, so maybe a guide for that would be so nice. Hope it happens.


++SaVaG3XCV++

(>*o*)>~~~@

#18 Navyman   Crossbones+   -  Reputation: 4053

Like
0Likes
Like

Posted 04 March 2013 - 07:26 PM

A few ideas that I was thinking of were:

 

Free to use Applications for game creation.

Engines - Unity

graphics - Blender

audio - (Not sure)

writing - Text Wrangler

 

I think this would be great for both the beginner and middle level, because sometimes people need to fix something or what to try their hand out in a field that is not their main focus and who wants to spend money to find that they do not like it or for minimal work?

 

If this is not what you were looking for I am sorry and I will try to think of more.


Developer with a bit of Kickstarter and business experience.

34410.png

#19 Prinz Eugn   Crossbones+   -  Reputation: 3759

Like
1Likes
Like

Posted 04 March 2013 - 07:46 PM

More basic art topics would be nice, particularly targeted at absolute beginners/non-artists:

  • Lighting/Shading
  • Perspective
  • Principles of animation
  • Figure Drawing/proportions
  • Color Theory
  • How is Game Art different?
  • Vector vs Raster (+ vs Pixel)
  • Assets vs concept art
  • Software

I'd be comfortable covering more of those topics at an introductory level, even, if you guys are looking for authors. Could we even use material modified from the gamedev.net collection books?


-Mark the Artist

Digital Art and Technical Design
Developer Journal


#20 Michael Tanczos   Senior Staff   -  Reputation: 5520

Like
1Likes
Like

Posted 04 March 2013 - 09:58 PM

More basic art topics would be nice, particularly targeted at absolute beginners/non-artists:

  • Lighting/Shading
  • Perspective
  • Principles of animation
  • Figure Drawing/proportions
  • Color Theory
  • How is Game Art different?
  • Vector vs Raster (+ vs Pixel)
  • Assets vs concept art
  • Software

I'd be comfortable covering more of those topics at an introductory level, even, if you guys are looking for authors. Could we even use material modified from the gamedev.net collection books?

 

Absolutely.   Stuff from our books is fine.   If you'd like you can begin by just getting one article up here:  http://www.gamedev.net/page/resources/_/creative/visual-arts/

 

Visual Arts isn't necessarily the best category name but it lines up with the forum.   Just make sure that you choose good tags for articles.  Also note that you can drag and drop images directly into the article editor.  It was designed specifically for our articles.

 

I have moved you into the Crossbones group.  As a member of the Crossbones group you will have all the privileges of GDNet+ and can be part of of our movement to turn this site into a huge resource of articles for game developers.   The only catch is you have to also finish the article.  ;)

 

If anybody else is willing to jump on board today with one of these topics PM me and I'll add you to this group.   If you are a member of this core group you can be part of changing our community for the better forever and helping developers all over the world.   Why crossbones?  Because pirates are cool.. and they were always outnumbered by much larger forces against them.  I figure creating this kind of change won't be easy.. so it fits.


Edited by Michael Tanczos, 04 March 2013 - 10:00 PM.






PARTNERS