• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 12:53
CEST 18:53
KST 01:53
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL22] Ro4 Preview: Mirror Mirror6[ASL22] Ro8 Preview: Within Reach5[ASL22] Ro8 Preview: In A Tizzy11[ASL22] Ro16 Preview: Holy Diver5[ASL22] Ro16 Preview: Rough Waters10
Community News
Rollback Netcode in Brood War825.0.17 Patch Notes - October 7, 202621Weekly Cups Results (Sep 28-Oct 4)0SC4ALL: II SC2 Complete Invited Player Lineup10StarCraft II 5.0.17 PTR Patch Notes (Sept 30, 2026)78
StarCraft 2
General
ESL Pro Tour for SC2 discontinued [Old] StarCraft 3 Reportedly in Development 5.0.17 Patch Notes - October 7, 2026 StarCraft II 5.0.17 PTR Patch Notes (Sept 30, 2026) How do you feel about the mass reverts in the 5.0.17 PTR?
Tourneys
ISSL (IntoTheTV x SOOP SC2 League): Premier RSL 2026 Offline Finals LCQ Sign-Ups $3,500 WardiTV Not-Summer Championship ScienceCraft (October 24-25) - Live Event Stellar Fest TWO the Moon (Dec 16-20)
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
[M] (2) Sweltering Sands [M] (2) Frigid Storage
External Content
Mutation # 547 Temple Of Terror Mutation # 546 Catch the Train The PondCast: SC2 News & Results Mutation # 545 And Drops and Rifts
Brood War
General
Sagi.gg Launcher Released BW General Discussion ASL FINALS HYPE VIDEO 2X Visiting korea this week Repalyzer - replay analysis app for StarCraft: Rem
Tourneys
[Megathread] Daily Proleagues [ASL22] Semifinal A [ASL22] Semifinal B [ASL22] Ro8 Day 4
Strategy
Simple Questions, Simple Answers Cliff Jump Revisited (1 in a 1000 strategy) Replay Review Process - What do you do?
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread General RTS Discussion Thread Warcraft III: The Frozen Throne Total Annihilation Zero
Dota 2
Dota 2 Champions League Season 3 Begins April 25!
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread Artificial Intelligence Thread
Fan Clubs
Serral Fan Club
Media & Entertainment
[Manga] One Piece Movie Discussion! Diablo Animated Series on Netflix
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
The Link Between Gaming and …
TrAiDoS
[ASL22] Ro4 Day1 Ticket Giv…
bITt.mAN
38 yo Retired SWE loo…
PurE)Rabbit-SF
Can Bots Beat Pros?? Starcr…
namkraft
[meme] I finally understa…
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 13419 users

New TL KnowHow Article: Game Programming

Blogs > CecilSunkure
Post a Reply
1 2 3 Next All
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
Last Edited: 2012-10-24 05:18:44
October 24 2012 05:07 GMT
#1
In the past I wrote a few blog articles here on TL about game programming with the goal of introducing the idea to new people. I had been a bit unorganized and didn't really seem to get clear ideas out there to readers. So I've decided to try yet again except this time in the form of a TL KnowHow. I'm sharing this blog for two reasons; firstly it'd be cool to generate a little bit of hype! Be aware that I've taken great pains to write the entire article in such a way that it can easily be consumed by someone that has little to no programming experience at all; I explain a lot of concepts and provide a lot of high-level descriptions and ideas that aren't written in "programmer speak". I'd like anyone new and interested in learning something about programming, especially game programming as a profession, to be able to take something away.

Take a look at my table of contents for the KnowHow:

+ Show Spoiler [Crazyiest ToC Ever] +

Introduction
Goal of this Article
Game Programming and Software Development
The Hobbyist
Professional Programming
Real-Time Applications
Memory intensive
Computation intensive
Prerequisites
Variables, Keywords and Identifiers
Basic formatted input/output
Control structures
Arrays
Functions
Pointers
Structures
Classes
Quick Refresher
Stack and Heap
Bits and Bytes
Arrays
Second class type
Sizeof
Pointers
Address of
Indirection
Pass by value
References
Pointers and Arrays
Pointer arithmetic
Pointer to pointer
Preprocessor
#define
#include
#ifdef, #endif, #undef
Compiling and Linking
Code Organization for Large Projects
Coupling
Source files
Header files
Macros
Prototypes
Multiple Include protection
Circular inclusion
Forward Declarations
Extern
Data structures and program design
Linked lists
Ordered list
Array
std::vector
Hash table
Messaging
Game Engine Architecture
Overview
Systems
Main Loop
Display
Input
Memory Management
Object Management
Game logic
Physics
AI
Component Based Design
Component Based Game Objects
Factory
Data driven composition
Additional isolated topics
Finite State Machines
ActionList
Improved Messaging
Generic programming
Bitmasks
User Interface by Sean Reilly
Game User Interface
From Scratch
Preexisting Library
Editor User Interface
In-Game
External
External with Game Embedded


The second reason I've written this blog is to ask, just in case, if there's anyone who would like to request a specific topic (related to software engineering and/or game programming). If I have knowledge of the topic, or know someone who does, I might get it in before the KnowHow goes live.

As for what the various sections look like, here's a tiny snippet of the very beginning:

Introduction
Hello! My name is Randy Gaul, and I am a computer science student. I study at DigiPen Institute of Technology, and am majoring in Real-Time Interactive Simulation (a fancy way of saying game programming). I’d like to share my know-how in the ways of game programming as a profession for anyone interested in learning. I encourage anyone interested in programming or creating games, no matter how little knowledge you have in either topic, to check out this article.

Goal of this Article
Before my studies at university I had spent a good deal of time trying to learn what it is like to create a piece of useful software from scratch. I spent many hours studying the basics of programming such as control structures, program design and even abstract data types. I however was very hardpressed to find any high-level information on how to piece together the smaller tools of programming in order to make a project of my own. This article aims at bridging the gap between the realm of a beginning programmer, straight into and through the intermediate level.
...


I hope anyone who reads this looks forward to the new KnowHow that will be coming very soon!

***
ketomai
Profile Joined June 2007
United States2789 Posts
October 24 2012 05:13 GMT
#2
Ooh I'm excited for this !

I however was very hardpressed to find any high-level information on how to piece together the smaller tools of programming in order to make a project of my own.


This in particular is currently my own dilemma as well.
EatThePath
Profile Blog Joined September 2009
United States3943 Posts
Last Edited: 2012-10-24 05:15:43
October 24 2012 05:15 GMT
#3
Super excited for this.

"Goal of this article" section is music to my ears.
Comprehensive strategic intention: DNE
BLinD-RawR
Profile Blog Joined April 2010
ALLEYCAT BLUES51626 Posts
October 24 2012 05:18 GMT
#4
I am so looking forward to this.
Brood War EICWoo Jung Ho, never forget.| Twitter: @BLinDRawR
happyness
Profile Joined June 2010
United States2400 Posts
October 24 2012 06:16 GMT
#5
This is awesome! I just recently switched to Computer Science so I would love this!
Rhaegar99
Profile Blog Joined September 2008
Australia1190 Posts
October 24 2012 06:22 GMT
#6
How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me.

Like everyone else I'm really excited for this.
NeThZOR
Profile Blog Joined November 2010
South Africa7387 Posts
October 24 2012 06:26 GMT
#7
Godspeed! I always wanted to learn more about game programming
SuperNova - 2015 | SKT1 fan for years | Dear, FlaSh, PartinG, Soulkey, Naniwa
MysteryMeat1
Profile Blog Joined June 2011
United States3292 Posts
October 24 2012 06:47 GMT
#8
CecilSunkure delivers once again!
"Cause ya know, Style before victory." -The greatest mafia player alive
Ruscour
Profile Blog Joined April 2011
5233 Posts
October 24 2012 07:06 GMT
#9
As someone learning C with an interest in game development, as well as a former Protoss player, I'm pretty sure you're just the world's greatest person, Cecil.
kusto
Profile Joined November 2010
Russian Federation823 Posts
October 24 2012 07:37 GMT
#10
I bookmarked your blogs and cannot wait for your new blog.
the game is the game
The_LiNk
Profile Blog Joined July 2010
Canada863 Posts
October 24 2012 07:38 GMT
#11
Oh shit your blog has a section on collision. Excellent excellent. Gonna pad my resume with programming projects this winter. Thanks for the info
Poltergeist-
Profile Blog Joined May 2010
Sweden336 Posts
October 24 2012 08:17 GMT
#12
Right on, will be reading this for sure.
Krikan
Profile Joined October 2010
Norway520 Posts
October 24 2012 08:40 GMT
#13
On October 24 2012 15:22 Rhaegar99 wrote:
How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me.

Like everyone else I'm really excited for this.

To second this, I'd really like a section on sockets/networking too. Other than that, looking forward to reading this! :D
Naniwa on making the MLG finals: Uh, it's ok.
imPermanenCe
Profile Joined July 2011
Netherlands595 Posts
October 24 2012 08:45 GMT
#14
On October 24 2012 15:22 Rhaegar99 wrote:
How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me.

Like everyone else I'm really excited for this.

I'm about to do that for a programming assignment :d Threads can be a bitch if you don't lock things properly
Micro at its best is like an elegant dance between two people trying to achieve a similar end.
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
October 24 2012 08:56 GMT
#15
On October 24 2012 17:40 Krikan wrote:
Show nested quote +
On October 24 2012 15:22 Rhaegar99 wrote:
How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me.

Like everyone else I'm really excited for this.

To second this, I'd really like a section on sockets/networking too. Other than that, looking forward to reading this! :D

Definitely won't be covering any networking. As for threading, I will consider a section on that. Although if I do it will be about higher level concepts rather than nitty details of a specific implementation (as is the rest of the KnowHow).
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
October 24 2012 09:17 GMT
#16
This looks very much like it will be all about C++.
I don't particularly like giving people the impression that you can read a rather short piece about C++ and be ready to properly work on a medium or large scale program. I generally support the article of course, but you should make sure that you make people aware that C++ is pretty much the Broodwar among the programming languages. Your article cannot possibly replace reading good books like The C++ Programming Language, Effective C++ and so on. A medium/large C++ project without a deep understanding of the language is extremely error prone and very hard to maintain.


Personally, I'd rather do an article purely on Game Programming, without talking about specific programming languages. For beginners, languages like C# or Java are suited so much better anyways. Game Programming by itself is still a broad topic.
If you have a good reason to disagree with the above, please tell me. Thank you.
Eiii
Profile Blog Joined April 2009
United States2566 Posts
Last Edited: 2012-10-24 09:51:50
October 24 2012 09:49 GMT
#17
On October 24 2012 17:56 CecilSunkure wrote:
Show nested quote +
On October 24 2012 17:40 Krikan wrote:
On October 24 2012 15:22 Rhaegar99 wrote:
How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me.

Like everyone else I'm really excited for this.

To second this, I'd really like a section on sockets/networking too. Other than that, looking forward to reading this! :D

Definitely won't be covering any networking. As for threading, I will consider a section on that. Although if I do it will be about higher level concepts rather than nitty details of a specific implementation (as is the rest of the KnowHow).


To be honest, I really think you should reconsider including networking-- it's really intimidating for people who aren't familiar with sockets to get started, but if you can show even just how to get a simple UDP client/server up and running it'll be much easier for those interested to continue on from there.

Most hobbyist games really don't gain anything by using threading, but simple networking can make a small project really cool! If it doesn't fit with how you've got the articles planned then don't worry about it of course, but if it's at all possible I think a lot of people would benefit from an article or two on the subject.

EDIT:
On October 24 2012 18:17 spinesheath wrote:
This looks very much like it will be all about C++.
I don't particularly like giving people the impression that you can read a rather short piece about C++ and be ready to properly work on a medium or large scale program. I generally support the article of course, but you should make sure that you make people aware that C++ is pretty much the Broodwar among the programming languages. Your article cannot possibly replace reading good books like The C++ Programming Language, Effective C++ and so on. A medium/large C++ project without a deep understanding of the language is extremely error prone and very hard to maintain.


Personally, I'd rather do an article purely on Game Programming, without talking about specific programming languages. For beginners, languages like C# or Java are suited so much better anyways. Game Programming by itself is still a broad topic.


I disagree with this-- it's very easy to have a decent idea of how to program in C++ without knowing how to translate that into making a simple game. Personally, I don't think using C++ for small projects like what I assume the articles will be covering is significantly more difficult or risky than using Java/C#.
:3
Teoita
Profile Blog Joined January 2011
Italy12248 Posts
October 24 2012 10:06 GMT
#18
Dat toc is impressive holy crap :O Are you doing the whole thing by yourself?
ModeratorProtoss all-ins are like a wok. You can throw whatever you want in there and it will turn out alright.
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
October 24 2012 10:40 GMT
#19
On October 24 2012 19:06 Teoita wrote:
Dat toc is impressive holy crap :O Are you doing the whole thing by yourself?

I had some help
dartoo
Profile Joined May 2010
India2889 Posts
Last Edited: 2012-10-24 15:09:44
October 24 2012 15:04 GMT
#20
On October 24 2012 18:17 spinesheath wrote:
This looks very much like it will be all about C++.
I don't particularly like giving people the impression that you can read a rather short piece about C++ and be ready to properly work on a medium or large scale program. I generally support the article of course, but you should make sure that you make people aware that C++ is pretty much the Broodwar among the programming languages. Your article cannot possibly replace reading good books like The C++ Programming Language, Effective C++ and so on. A medium/large C++ project without a deep understanding of the language is extremely error prone and very hard to maintain.


Personally, I'd rather do an article purely on Game Programming, without talking about specific programming languages. For beginners, languages like C# or Java are suited so much better anyways. Game Programming by itself is still a broad topic.



This was the exact feeling I got looking at the contents aswell. C++ and game programming are very big topics on their own, putting both together...seems very ambitious.

Might be easier to focus on a managed language, with minimal input on programming itself, and go deeper into the game programming side of it. In that way your article could help people who are kinda new to programming but also want to learn about game dev. People who already program (in c++ or otherwise) can easily grasp concepts about programming in general, and can learn of it.
1 2 3 Next All
Please log in or register to reply.
Live Events Refresh
Patches Events
00:00
Patch Clash S1 Special #1
Reynor vs ClemLIVE!
SHIN vs TBD
RotterdaM1372
IndyStarCraft 211
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 1372
IndyStarCraft 211
ProTech135
BRAT_OK 47
Codebar 46
StarCraft: Brood War
Calm 3538
Bisu 2397
Jaedong 914
EffOrt 814
Rush 362
Mini 359
Larva 328
Light 270
actioN 250
ZerO 206
[ Show more ]
Snow 194
firebathero 185
Sharp 54
Mong 42
Shinee 35
Terrorterran 34
Aegong 18
scan(afreeca) 9
Noble 7
Dewaltoss 5
Dota 2
Gorgc9195
qojqva2619
Counter-Strike
ceh9525
Super Smash Bros
Mew2King79
Other Games
singsing2650
hiko1107
B2W.Neo725
Liquid`VortiX324
mouzStarbuck323
XaKoH 243
KnowMe220
C9.Mang0136
Trikslyr115
QueenE94
ZerO(Twitch)19
MindelVK14
[ Show 15 non-featured ]
StarCraft 2
• LUISG 22
• Reevou 6
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• FirePhoenix11
• ChaeLyn 6
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• C_a_k_e 2067
League of Legends
• Nemesis4076
Other Games
• Shiphtur1252
Upcoming Events
WardiTV Weekly
18h 7m
PiGosaur Cup
1d 7h
Kung Fu Cup
1d 18h
The PondCast
2 days
Online Event
3 days
Korean StarCraft League
4 days
Afreeca Starleague
4 days
Rush vs Soulkey
CranKy Ducklings
4 days
BSL Open Qualifier
5 days
Sparkling Tuna Cup
5 days
[ Show More ]
BSL Open Qualifier
6 days
WardiTV Weekly
6 days
Liquipedia Results

Completed

Acropolis #5 - GSB
Blizzard Classic Cup 2026
Copium Cup

Ongoing

ASL Season 22
Super Anchor Qualifying S3
Acropolis #5
HCC Season 3
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026

Upcoming

Acropolis #5 - GSC
BSL Season 23
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
eXTREMESLAND 2026
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.