Game Programming
lastmod 2026-11-03created 2014-01-1194 edits
|
Game programming, a subset of game development, is the software development of video games. Though often engaged in by professional game programmers, many novices may program games as a hobby. Some software engineering students program games as exercises for learning a programming language or operating system.
Categories
- Game design
- Particle system
- Massively multiplayer online role-playing game (MMORPG)
- GameProgramming:MultipleResolutions - A trial-and-error journal on supporting multiple resolutions in games
- GameProgramming:MainLoop - About the main (rendering) loop of a game engine.
- Isometric projection - What I call Quarter view
- Korean: 플랫폼 게임 (platformer, platform game, jump 'n' run games)
- Sprite Stacking - Renders 3D voxel graphics by stacking 2D sprite "slices".
- Smallville (Korean: 스몰빌)
- Signed distance function (SDF)
Game Unit Test
- Gamium - "Gamium", a game test automation SDK
ETC
- Game Maker's Toolkit (GMTK)
- Masahiro Sakurai on Creating Games
- GDC
Game design (development)
Sample Game
Demo games commonly used as introductions to game development usually have simple mechanics and low resource requirements. They are well suited for beginners to learn and implement the basic concepts of game development. Below is a recommended list:
Pong
- Description: A simple game where you bounce a ball to score points, like an early version of tennis.
- Learning points:
- Collision detection
- Ball and paddle movement logic
- Scoring system
- Understanding the game loop
Brick Breaker
- Description: A game where you bounce a ball to break bricks. The player moves a bar to control the ball.
- Learning points:
- Physics effects (calculating the ball's reflection angle)
- Multi-level game design (multiple layers of bricks)
- Simple animation
Snake
- Description: The snake grows longer as it eats food, and the game ends when it touches a wall or its own body.
- Learning points:
- Grid-based movement
- Gradually increasing difficulty
- Collision handling and game-over conditions
Space Shooter
- Description: A shooting game where you pilot a spaceship to shoot and dodge enemies.
- Learning points:
- Managing bullet spawning and destruction
- Enemy AI (simple pattern movement)
- Adding UI elements (HP, score, bullet count)
Flappy Bird clone
- Description: A game where you make the character jump with a button click to avoid obstacles.
- Learning points:
- Implementing gravity and jumping
- Obstacle generation and scrolling
- Scoring system
Platformer
- Description: A game where the character jumps and runs, avoiding obstacles, to reach a goal.
- Learning points:
- Implementing character movement and jumping
- Platform collision handling
- Simple level design
Tower Defense
- Description: A game where you place defense towers along the enemies' path to stop them.
- Learning points:
- Simple AI pathing
- Tower attack logic
- Resource management and upgrade system
2048
- Description: A puzzle game where you merge numbers into bigger numbers to build up a score.
- Learning points:
- Grid-based data structures
- UI updates
- Scoring system
Tetris
- Description: A game where you stack blocks and clear completed lines.
- Learning points:
- Block rotation and collision handling
- Line clearing logic
- Increasing difficulty (faster block speed)
Memory Matching Game (card matching game)
- Description: A game where you find and match cards with the same picture.
- Learning points:
- Data matching logic
- Simple UI animation
- Managing time limits and number of attempts
Standard card games (playing cards)
- Number cards: Ace (A), 2, 3, 4, 5, 6, 7, 8, 9, 10
- Face cards: Jack (J), Queen (Q), King (K)
- Suits:
- Spades (♠️), Hearts (♥️), Diamonds (♦️), Clubs (♣️)
- Joker
Chess
- King: The most important piece in chess. It moves one square at a time, and the game ends when it is checkmated by the opponent.
- Queen: The most powerful piece. It can move any number of squares in a straight line or diagonally.
- Rook: It can move any number of squares in a straight line. It is often also called a "castle".
- Bishop: It can move any number of squares diagonally. Each bishop moves only along diagonals of one color.
- Knight: It makes a unique "L"-shaped move (2 squares horizontally and 1 vertically, or 2 squares vertically and 1 horizontally), and it is the only piece that can jump over other pieces.
- Pawn: It moves forward one square, but can move two squares on its first move. It can capture enemies only one square diagonally, and when it reaches the last rank it can be promoted to another piece (usually a queen).
Betting on lunch
- Spin the roulette
- A roulette wheel is shown on screen, and a single click stops it. The winner is decided by where it stops.
- Guess the random number
- Players pick a number from 1 to 100. A number is chosen at random, and the closest person wins.
- Coin toss
- A simple game where you toss a coin and guess heads (HEAD) or tails (TAIL). If it matches your choice, you win!
- Ladder game
- Enter the list of people and the blanks/prizes, then ride the ladder.
- Dice roll
- Roll polyhedral dice, and the person with the highest roll wins.
Game design (art)
See that page.
Related pages:
Game algorighm
- Dungeon Generation
- About techniques for generating dungeons automatically.
- Dead Reckoning: Latency Hiding for Networked Games
- This is dead reckoning. Position prediction and correction techniques are at its core. It is a common technique used almost universally in MMO games, and it is the approach adopted by nearly all game development in Korea.
- https://www.gamasutra.com/view/feature/131638/dead_reckoning_latency_hiding_for_.php
-
Gamasutra_-_Dead_Reckoning_Latency_Hiding_for_Networked_Games.pdf
- 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond
- This technique is called lockstep synchronization. Player inputs are sent stamped with a future time stamp, and each command is executed "when its time comes". A limited number of players can accurately synchronize a huge number of characters with only a small amount of traffic. It has become almost essential in strategy simulation games.
- https://www.gamasutra.com/view/feature/131503/1500_archers_on_a_288_network_.php
- Page1: Gamasutra_-1500_Archers_on_a_28.8_Network_Programming_in_Age_of_Empires_and_Beyond-_page1.pdf
- Page2: Gamasutra_-1500_Archers_on_a_28.8_Network_Programming_in_Age_of_Empires_and_Beyond-_page2.pdf
- Page3: Gamasutra_-1500_Archers_on_a_28.8_Network_Programming_in_Age_of_Empires_and_Beyond-_page3.pdf
- Page4: Gamasutra_-1500_Archers_on_a_28.8_Network_Programming_in_Age_of_Empires_and_Beyond-_page4.pdf
- Why Making Multiplayer Games is Hard: Lag Compensating Weapons in MechWarrior Online
- Building on an approach that runs the gameplay simulation and rolls back when past actions arrive, this explains how to deal with latency problems for projectile and hitscan weapons. It applies to small-scale multiplayer games that need precise synchronization, such as first-person shooters and fighting games. It has not been used much in Korea, where MMO online games developed first, but it is actually more familiar among Western game developers, whose industry grew mainly around packaged games.
- https://www.gamasutra.com/blogs/NeemaTeymory/20160906/280377/Why_Making_Multiplayer_Games_is_Hard_Lag_Compensating_Weapons_in_MechWarrior_Online.php
-
Gamasutra_-_Why_Making_Multiplayer_Games_is_Hard_Lag_Compensating_Weapons_in_MechWarrior_Online.pdf
- Ray Tracing Gems ebook
- https://blog.hybrid3d.dev/387
-
2019_Book_RayTracingGems.pdf
- Fast inverse square root
- The fast inverse square root algorithm is used to compute angles of incidence and reflection in operations such as lighting.
- Used in "Quake III Arena".
- Procedural water paint stains
- In depth: Procedural water paint stains - Grendel Games
- Watercolor ink bleed marks
- ZzSprite
- Pixel Art Sprite Generator
Generator Tools
Awesome
- Github - kobitoko/Game-Jam-Tools-Resources - A list of many game dev/jam tools & resources.
- Github - Kavex/GameDev-Resources - 🎮 🎲 A wonderful list of Game Development resources.
- Github - ellisonleao/magictools - 🎮 📝 A list of Game Development resources to make magic happen.
Character makers
- Pixel Character Creator v1.1 by Mounir Tohami, Spicy Lobster - Paid
- pixeldudesmaker by 0x72
- Pixel Art RPG Character Creator by edermunizz
- Avatar Mixer by Kenney
- Creature Mixer by Kenney
- Paint of Persia by dunin
Other graphics/asset makers
- Pixel Planet Generator by Deep-Fold
- SpriteStack.io - Combine voxels, low poly, and sprites to create animated 3D objects or particle effects, and render them into 2D sprite sheets with a unique retro renderer.
Pattern/tile makers
AI-based
- Pixelicious - Pixel Art Converter
- Try these when making games! sprite-gen, perfectPixel, kenney #ai #agent #vibecoding #chatgpt #claude - YouTube
- sprite-gen - Github - aldegad/sprite-gen
- PerfectPixel - Github - gykim80/perfectpixel-studio
Performance Tuning
Game Server programming
- [Recommended] (Durango: Wild Lands) Server Architecture - A Distributed MMORPG Server Without a SPOF
Game development with LLMs
An interesting comment from Hacker News:
It points out something many developers overlook. In game development, coding itself has rarely been the bottleneck. Even solo developers can build mechanics quickly without AI. The really hard parts are the many invisible layers above that, such as balancing the game loop, tuning difficulty, making assets that feel consistent, and polishing enough to hold a player's attention for more than five minutes. That is also why Steam has not been flooded with outstanding games since LLMs arrived. The technology lowered one barrier, but the bigger barriers remain. It was the same when Unity appeared in the 2010s. The engine democratized game development, but instead of an explosion of good games, only the number of attempts went up. LLMs are bringing the same phenomenon to code, and image models to art, but these tools cannot tell you which game is actually fun. The question I find interesting is what happens if AI does not only implement but also playtests. That is, once it advances to the stage of running thousands of loops and telling you which mechanics keep simulated players hooked, its role will expand beyond a productivity hack into a design partner. We are not at that stage yet, but this post feels like an early data point in that direction.
Game resources
- GameaudioGDC – SONNISS - Archive: GameAudioGDC
- FREE DOWNLOAD - 20GB+ of High Quality Audio Assets - The GameAudioGDC Bundle (20gb of free game audio)
- Riot Games, free music for creators "Sessions: Vi"
- Github - ellisonleao/magictools - A list of Game Development resources to make magic happen
- Poly Haven - The Public 3D Asset Library
- Quaternius • Free Game Assets
Sonniss.com - GDC - Game Audio Bundle - Torrent download
## Sonniss.com - GDC - Game Audio Bundle
magnet:?xt=urn:btih:694916b432913f35872e806e1ca50c80201c6798&dn=Sonniss.com+-+GDC+-+Game+Audio+Bundle
## Sonniss.com - GDC 2016- Game Audio Bundle
magnet:?xt=urn:btih:aaa1407465c82160e20aba23de56ce7d4c4025ca&dn=Sonniss.com+-+GDC+2016-+Game+Audio+Bundle
## Sonniss.com - GDC 2017 - Game Audio Bundle
magnet:?xt=urn:btih:751189932f9a32eb57f4aa39b87d81d04a6f8708&dn=Sonniss.com+-+GDC+2017+-+Game+Audio+Bundle
Quixel Megascans collection
See also
- Game
- Browser game
- Game Engine
- Lips of Suna (Open Source Action RPG)
- eAthena
- Quake
- SFX
Favorite site
- Wikipedia (en) article on game programming
- Gamedev.net
- Lazy Foo' Productions 1
- Integrated environment for game developers 2
- The Game Programming Wiki
- Game Programming Gems Study
- GameCodi Lab - Lecture series
Tip
- Automatic tile connection using bitmasks (in English) 3
- Synchronization techniques for multiplayer games, part 1: Time synchronization
- How to Build a JRPG: A Primer for Game Developers
- [Recommended] Translation - How to build a JRPG
Issues
- The high heel problem in games | GeekNews
- [Original] The High Heel Problem | Simonschreibt.
- Looks at how different types of footwear affect game development and explains how games handle them
- High heels in particular can affect a character's height, posture, animation, collision detection, audio, and more in games
Web browser based game (HTML5)
Game resource download
- See the SFX page for sound effect resources.
- Sites offering free background music 4
- Sites offering free textures and patterns 5
- Sites offering free background CG 6
- Sites worth consulting when choosing names 7
- An entire library of pro-made, ready to use video game materials (a collection of texture images for game development)
- [Recommended] Interface In Game | Creative tool for video games lovers and game designers (reference for other games' UI design)
- Github - ellisonleao/magictools - A list of Game Development resources to make magic happen
Libraries
- [Recommended] Open source, experimental, and tiny tools roundup ~ (a collection of 500+ small tools for games/interactive websites; 32 tiny game engines, 11 indie/open-source game engines, 16 fantasy consoles, 16 Unity extensions, 16 map & level editors, pixel art / ASCII edit...)
- Github - ellisonleao/magictools - A list of Game Development resources to make magic happen
References
- Browser game
- Computer Sciences
- Dungeon Generation
- EAthena
- Fast inverse square root
- Game design
- Game Engine
- Game Maker's Toolkit
- GameProgramming:MultipleResolutions
- Gamium
- Godot
- Godot:MultipleResolutions
- Isometric projection
- Massively multiplayer online role-playing game
- PC Game
- Pixel Perfect
- Platformer
- Programming
- Quake
- Quake:SourceReview
- Ragnarok Online
- Signed distance function
- Sound effect
- Sprite Stacking
- Visual effects
- VTK