• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 02:03
CEST 08:03
KST 15:03
  • 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] Ro24 Preview: Siren's Call8[ASL22] Ro24 Preview: Summer's End9Serral wins HomeStory Cup 2915Serral wins Maestros of the Game 244ByuL, and the Limitations of Standard Play3
Community News
New 3v3 BGH Ladder (and more) on ShieldBattery!30Weekly Cups (August 17-23): Zerg dominate the week5Weekly Cups (August 10-16): SHIN doubles2GSTL Returns in 2026!45Weekly Cups (Aug 3-9): Protoss get shut out7
StarCraft 2
General
SC4ALL II: SC2 Player Announcement 6/8 - Maru How would you feel about frequent/monthly balance patches for SC2? Balance hotfix patch 5.0.16b (July 16) Weekly Cups (August 17-23): Zerg dominate the week Starcraft2 player guess game is Coming~!
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament 2026 GSTL Announcement IntoTheTV X SOOP SC2 League : Weekly & Monthly PIG STY FESTIVAL 8.0! (13 - 23 August) WORTEX 2026 - Hungarian SC2 Finals Budapest
Strategy
[G] Having the right mentality to improve
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 540 Dodge This The PondCast: SC2 News & Results Mutation # 539 Thunder Dome Mutation # 538 Media Blackout
Brood War
General
[Personal Project Share] Terran Defense v0.60 New 3v3 BGH Ladder (and more) on ShieldBattery! BW General Discussion [ASL22] Ro24 Preview: Siren's Call Farewell Beloved Starcraft (Youtube Videos)
Tourneys
[ASL22] Ro24 Group F Escore Tournament - Season 3 KCM Race Survival 2026 Season 3 [ASL22] Ro24 Group E
Strategy
Replay Review Process - What do you do? Game Theory for Starcraft Odyssey Mineral Stack Saturation Fighting Spirit mining rates
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread General RTS Discussion Thread Anyone here play Quakeworld back in the day? EVE Corporation
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Power Rank TL Mafia Community Thread NeO.D_StephenKing vs This Guy From 1 Million Dance
Community
General
Things Aren’t Peaceful in Palestine US Politics Mega-thread Canadian Politics Mega-thread Russo-Ukrainian War Thread Dating: How's your luck?
Fan Clubs
MarineLorD Fan Club The Creator Fan Club The ShoWTimE Fan Club
Media & Entertainment
Movie Discussion! Anime Discussion Thread
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023 NBA General Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Northern Ireland Global Starcraft
Blogs
Violent Games and Crime Rate…
TrAiDoS
LOCKPICKING NOOB
LUCKY_NOOB
Cathedral Of CS And NY pizza a…
FuDDx
Please support my new stand…
Peanutsc
Customize Sidebar...

Website Feedback

Closed Threads



Active: 8217 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 BLUES51289 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
Italy12247 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
Next event in 3h 57m
[ Submit Event ]
Live Streams
Refresh
StarCraft: Brood War
Rain 2569
Shuttle 1914
GuemChi 1510
Leta 258
Soma 221
yabsab 39
Noble 37
Bale 23
Icarus 10
ZergMaN 6
Dota 2
NeuroSwarm190
Other Games
summit1g5191
C9.Mang0311
XaKoH 228
Livibee140
Mew2King71
UpATreeSC21
[ Show 15 non-featured ]
StarCraft 2
• Berry_CruncH385
• practicex 23
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• iopq 3
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• masondota21081
• lizZardDota2156
League of Legends
• Rush1214
• Lourlo1092
Upcoming Events
Escore
3h 57m
IntoTheTV X SOOP
4h 57m
RotterdaM Event
10h 27m
Korean StarCraft League
19h 57m
GSL
1d 4h
Replay Cast
1d 17h
WardiTV Weekly
2 days
Sparkling Tuna Cup
3 days
Afreeca Starleague
3 days
GSL
4 days
[ Show More ]
PiGosaur Cup
4 days
Replay Cast
5 days
The PondCast
6 days
Liquipedia Results

Completed

CSL Season 22: Qualifier 1
PiG Sty Festival 8.0
META DYMY #4

Ongoing

KCM Race Survival 2026 Season 3
K-JUNGMAN
ASL Season 22
Super Anchor Qualifying S3
CSL Season 22: Qualifier 2
RSL Revival: Season 6
Light Tournament 2026
BLAST Open Fall 2026
Esports World Cup 2026
Esports World Cup 2026: LCQ
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026

Upcoming

BSL 2026 LAN: Kraków
CSL 2026 AUTUMN (S22)
Acropolis #5
Acropolis #5 - TRS
Blizzard Classic Cup 2026
Acropolis #5 - GSA
Acropolis #5 - GSB
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
Calamity Invitational
Big Dog Cup 2026 Div 1
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
Thunderpick World Champ. '26
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
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.