Game programming core concepts every beginner or intermediate level person should know

Started by
11 comments, last by Nicholas Kong 10 years, 6 months ago

I am not sure if I am missing any core concepts as I am making my games. But here are the general things the games I have written has taught me thus far:

1) Implementing a main loop

2) Implementing a game loop

3) Keeping track of the state of the object

4) Collision Detection

5) Keeping track of the state of the game(Main Menu, GameOver, Victory, Gameplay)

6) Animation Algorithms

7) Textparsing and then drawing the appropriate art asset corresponding to the numeric or letter text data.

Any more concepts I should know?

Advertisement
Just some refinements:

2a) A proper concept of a "clock" for the game. As simple as this seems, getting a solid one which can deal with break points, slow/fast/pause time etc for debugging is important. I tend to include game loop count and total elapsed time since start in this since it is all related conceptually.
2b) Debug logs, traces etc. Again, very good for debugging reasons. I tend to just use Google's logging library myself, does the job nicely.

3a) Serialization. This is easy to overlook, getting a solid load/save system can be tough if you didn't plan for it.

4a) Decent understanding of various spacial subdivision systems. Simple grids, quad/oct trees, kd-trees, etc. These are not only used for collisions in games, searches and such also tend to go through this and reduce many overheads.

I'm sure I could come up with more but figure others could fill in the blanks. smile.png

Event and message passing systems

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

Event and message passing systems

This is even better when accompanied by a component based game structure.

Event and message passing systems

Can you or anyone elaborate on this? You mean like mouse and key events? what do you mean by message passing?

Can you or anyone elaborate on this? You mean like mouse and key events? what do you mean by message passing?


An event can be anything any part of the game may want to react to. A pressed key, as you said, or a collision on the physics simulation, using a skill, taking damage or anything else.
Broadcasting these logical events as messages others can subscribe to can greatly reduce dependencies between systems.

current project: Roa

Vectors and matrices. Just as an example, your code is much more elegant when you use unit vectors over angles and matrices to transform between coordinate spaces. But understanding basic operations on vectors such as dot products, cross products and projection are very useful tools when solving problems. Especially in 3D.
My current game project Platform RPG

AI

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

Can you or anyone elaborate on this? You mean like mouse and key events? what do you mean by message passing?


An event can be anything any part of the game may want to react to. A pressed key, as you said, or a collision on the physics simulation, using a skill, taking damage or anything else.
Broadcasting these logical events as messages others can subscribe to can greatly reduce dependencies between systems.

Ah I see. Thanks

AI

True.

This topic is closed to new replies.

Advertisement