• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 20:58
CET 02:58
KST 10:58
  • 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
RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10
Community News
[BSL21] Ro.16 Group Stage (C->B->A->D)1Weekly Cups (Nov 17-23): Solar, MaxPax, Clem win2RSL Season 3: RO16 results & RO8 bracket13Weekly Cups (Nov 10-16): Reynor, Solar lead Zerg surge2[TLMC] Fall/Winter 2025 Ladder Map Rotation14
StarCraft 2
General
When will we find out if there are more tournament Weekly Cups (Nov 17-23): Solar, MaxPax, Clem win SC: Evo Complete - Ranked Ladder OPEN ALPHA Weekly Cups (Nov 10-16): Reynor, Solar lead Zerg surge RSL Season 3: RO16 results & RO8 bracket
Tourneys
Tenacious Turtle Tussle RSL Revival: Season 3 $5,000+ WardiTV 2025 Championship StarCraft Evolution League (SC Evo Biweekly) Constellation Cup - Main Event - Stellar Fest
Strategy
Ride the Waves in Surf City: Why Surfing Lessons H
Custom Maps
Map Editor closed ?
External Content
Mutation # 501 Price of Progress Mutation # 500 Fright night Mutation # 499 Chilling Adaptation Mutation # 498 Wheel of Misfortune|Cradle of Death
Brood War
General
FlaSh on: Biggest Problem With SnOw's Playstyle soO on: FanTaSy's Potential Return to StarCraft Data analysis on 70 million replays 2v2 maps which are SC2 style with teams together? [BSL21] Ro.16 Group Stage (C->B->A->D)
Tourneys
[BSL21] RO16 Tie Breaker - Group B - Sun 21:00 CET [BSL21] GosuLeague T1 Ro16 - Tue & Thu 22:00 CET [Megathread] Daily Proleagues [BSL21] RO16 Tie Breaker - Group A - Sat 21:00 CET
Strategy
Game Theory for Starcraft How to stay on top of macro? Current Meta PvZ map balance
Other Games
General Games
Stormgate/Frost Giant Megathread Should offensive tower rushing be viable in RTS games? Nintendo Switch Thread Path of Exile Clair Obscur - Expedition 33
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Mafia Game Mode Feedback/Ideas
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread Things Aren’t Peaceful in Palestine YouTube Thread Artificial Intelligence Thread
Fan Clubs
White-Ra Fan Club The herO Fan Club!
Media & Entertainment
[Manga] One Piece Movie Discussion! Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion MLB/Baseball 2023 TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
The Health Impact of Joining…
TrAiDoS
Dyadica Evangelium — Chapt…
Hildegard
Saturation point
Uldridge
DnB/metal remix FFO Mick Go…
ImbaTosS
Customize Sidebar...

Website Feedback

Closed Threads



Active: 2345 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 BLUES50592 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
Italy12246 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
PiGosaur Cup
01:00
#59
CranKy Ducklings119
SteadfastSC103
davetesta53
rockletztv 24
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
elazer 180
Nathanias 123
SteadfastSC 119
CosmosSc2 56
StarCraft: Brood War
Britney 4017
Artosis 720
NaDa 33
League of Legends
JimRising 357
Super Smash Bros
PPMD78
Other Games
summit1g11786
Day[9].tv672
C9.Mang0244
ViBE186
Maynarde130
Trikslyr73
Organizations
Other Games
gamesdonequick800
Dota 2
PGL Dota 2 - Main Stream183
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 16 non-featured ]
StarCraft 2
• Hupsaiya 107
• musti20045 27
• AfreecaTV YouTube
• sooper7s
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
StarCraft: Brood War
• Azhi_Dahaki4
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
League of Legends
• Doublelift4487
Other Games
• Scarra2726
• Day9tv672
Upcoming Events
Replay Cast
7h 2m
Wardi Open
10h 2m
OSC
11h 2m
Tenacious Turtle Tussle
22h 2m
The PondCast
1d 8h
Replay Cast
1d 21h
OSC
2 days
LAN Event
2 days
Replay Cast
2 days
Replay Cast
3 days
[ Show More ]
WardiTV Korean Royale
3 days
Sparkling Tuna Cup
4 days
WardiTV Korean Royale
4 days
Replay Cast
4 days
Wardi Open
5 days
Monday Night Weeklies
5 days
Replay Cast
5 days
Wardi Open
6 days
Liquipedia Results

Completed

SOOP Univ League 2025
RSL Revival: Season 3
Eternal Conflict S1

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
YSL S2
BSL Season 21
CSCL: Masked Kings S3
SLON Tour Season 2
META Madness #9
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2

Upcoming

BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter 2026: Closed Qualifier
eXTREMESLAND 2025
ESL Impact League Season 8
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 © 2025 TLnet. All Rights Reserved.