• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 16:39
CEST 22:39
KST 05:39
  • 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
Team TLMC #5: Winners Announced!3[ASL20] Ro8 Preview Pt2: Holding On9Maestros of the Game: Live Finals Preview (RO4)5TL.net Map Contest #21 - Finalists4Team TLMC #5: Vote to Decide Ladder Maps!0
Community News
5.0.15 Patch Balance Hotfix (2025-10-8)60Weekly Cups (Sept 29-Oct 5): MaxPax triples up3PartinG joins SteamerZone, returns to SC2 competition275.0.15 Balance Patch Notes (Live version)119$2,500 WardiTV TL Map Contest Tournament 154
StarCraft 2
General
5.0.15 Patch Balance Hotfix (2025-10-8) PartinG joins SteamerZone, returns to SC2 competition Geoff 'iNcontroL' Robinson has passed away Classic Games #3: Rogue vs Serral at BlizzCon Team TLMC #5: Winners Announced!
Tourneys
SC2's Safe House 2 - October 18 & 19 RSL Offline Finals Dates + Ticket Sales! SC4ALL $6,000 Open LAN in Philadelphia Sparkling Tuna Cup - Weekly Open Tournament $2,500 WardiTV TL Map Contest Tournament 15
Strategy
Custom Maps
External Content
Mutation # 494 Unstable Environment Mutation # 493 Quick Killers Mutation # 492 Get Out More Mutation # 491 Night Drive
Brood War
General
Whose hotkey signature is this? Any rep analyzer that shows resources situation? BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ I'm making videos again
Tourneys
[Megathread] Daily Proleagues [ASL20] Ro8 Day 4 Small VOD Thread 2.0 [ASL20] Ro8 Day 3
Strategy
BW - ajfirecracker Strategy & Training Siegecraft - a new perspective TvZ Theorycraft - Improving on State of the Art Current Meta
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread ZeroSpace Megathread Dawn of War IV Path of Exile
Dota 2
Official 'what is Dota anymore' discussion LiquidDota to reintegrate into TL.net
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
SPIRED by.ASL Mafia {211640} TL Mafia Community Thread
Community
General
US Politics Mega-thread The Games Industry And ATVI Stop the Construction YouTube Thread Things Aren’t Peaceful in Palestine
Fan Clubs
The herO Fan Club! The Happy Fan Club!
Media & Entertainment
Anime Discussion Thread [Manga] One Piece Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion MLB/Baseball 2023 NBA General Discussion TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
SC2 Client Relocalization [Change SC2 Language] Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Recent Gifted Posts
Blogs
Inbreeding: Why Do We Do It…
Peanutsc
From Tilt to Ragequit:The Ps…
TrAiDoS
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1126 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 BLUES50467 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
Safe House 2
18:00
Qualifier #2
ZombieGrub398
EnkiAlexander 59
LiquipediaDiscussion
[BSL 2025] Weekly
18:00
#17
ZZZero.O111
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ZombieGrub398
Nathanias 132
Railgan 34
Vindicta 30
StarCraft: Brood War
ZZZero.O 111
Dewaltoss 100
Rock 36
Dota 2
capcasts119
LuMiX1
Counter-Strike
fl0m4046
Stewie2K323
Heroes of the Storm
Liquid`Hasu419
Khaldor354
Other Games
FrodaN2710
Grubby2521
Beastyqt693
ToD75
Trikslyr60
Organizations
Other Games
EGCTV1343
gamesdonequick970
BasetradeTV86
StarCraft 2
angryscii 28
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 20 non-featured ]
StarCraft 2
• printf 66
• Hupsaiya 38
• Airneanach19
• musti20045 11
• sooper7s
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
StarCraft: Brood War
• Michael_bg 3
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV615
• Ler58
League of Legends
• Doublelift485
Other Games
• imaqtpie1213
• Shiphtur356
Upcoming Events
Sparkling Tuna Cup
13h 22m
Map Test Tournament
14h 22m
TBD vs Spirit
TBD vs herO
OSC
15h 22m
IPSL
22h 22m
Bonyth vs Art_Of_Turtle
Razz vs rasowy
Afreeca Starleague
1d 13h
Barracks vs Snow
Afreeca Starleague
2 days
Soma vs Bisu
OSC
2 days
The PondCast
4 days
OSC
4 days
CranKy Ducklings
6 days
[ Show More ]
Safe House 2
6 days
Liquipedia Results

Completed

Acropolis #4 - TS2
Maestros of the Game
HCC Europe

Ongoing

BSL 21 Points
ASL Season 20
CSL 2025 AUTUMN (S18)
C-Race Season 1
IPSL Winter 2025-26
WardiTV TLMC #15
EC S1
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025

Upcoming

SC4ALL: Brood War
BSL Season 21
BSL 21 Team A
RSL Offline Finals
RSL Revival: Season 3
Stellar Fest
SC4ALL: StarCraft II
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
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.