About the Author
Mass Effect
Final Fantasy X
Batman:Arkham City
Borderlands Series
Weekly Column
Champions Online
World of Warcraft
DM of the Rings
Good Robot
Project Frontier
Forums
"Music"



Unity: Week 1

By Shamus
on Friday May 26, 2017
Filed under:
Programming




Learning C# – Sort Of

By Shamus
on Friday May 19, 2017
Filed under:
Programming




Pseudoku: Texture Atlas

By Shamus
on Tuesday Apr 18, 2017
Filed under:
Programming




Pseudoku: This is not Programming

By Shamus
on Tuesday Mar 21, 2017
Filed under:
Programming




Pseudoku: Tool Chain

By Shamus
on Tuesday Mar 14, 2017
Filed under:
Programming




Pseudoku: Approved

By Shamus
on Tuesday Mar 7, 2017
Filed under:
Programming




Pseudoku: This Game Needs Filler

By Shamus
on Tuesday Feb 28, 2017
Filed under:
Programming




Pseudoku: Steam Greenlight Trailer

By Shamus
on Tuesday Feb 21, 2017
Filed under:
Programming




Pseudoku: Understanding the Game

By Shamus
on Tuesday Feb 14, 2017
Filed under:
Programming




Pseudoku: Feedback to the Feedback

By Shamus
on Tuesday Feb 7, 2017
Filed under:
Programming




Pseudoku Feedback

By Shamus
on Tuesday Jan 31, 2017
Filed under:
Programming




Object Oriented Debate Part 3: Damned if you do…

By Shamus
on Tuesday Dec 20, 2016
Filed under:
Programming




Object-Oriented Debate Part 2: Okay, so what is OOP?

By Shamus
on Tuesday Dec 13, 2016
Filed under:
Programming




Object-Oriented Debate Part 1: Many Kinds of Coding

By Shamus
on Tuesday Dec 6, 2016
Filed under:
Programming




The Strange Evolution of OpenGL Part 3

By Shamus
on Thursday Apr 9, 2015
Filed under:
Programming




The Strange Evolution of OpenGL Part 2

By Shamus
on Sunday Apr 5, 2015
Filed under:
Programming




The Strange Evolution of OpenGL Part 1

By Shamus
on Thursday Apr 2, 2015
Filed under:
Programming




Ideas about a new programming language for games, Annotated: Part 4

By Shamus
on Wednesday Mar 4, 2015
Filed under:
Programming




A new programming language for games, Annotated: Part 3

By Shamus
on Sunday Mar 1, 2015
Filed under:
Programming




A new programming language for games, Annotated: Part 2

By Shamus
on Friday Feb 27, 2015
Filed under:
Programming




A new programming language for games, Annotated: Part 1

By Shamus
on Wednesday Feb 25, 2015
Filed under:
Programming




Overused Words in Game Titles

By Shamus
on Sunday Feb 15, 2015
Filed under:
Programming




Borderlands Badass Ranks

By Shamus
on Tuesday Oct 28, 2014
Filed under:
Programming




Pleasant and helpful error messages

By Shamus
on Wednesday Oct 1, 2014
Filed under:
Programming




glNext

By Shamus
on Sunday Sep 21, 2014
Filed under:
Programming




Project Unearth Part 7: Oh Please, Shut Up About Shadows Already

By Shamus
on Thursday Jul 24, 2014
Filed under:
Programming




Project Unearth Part 6: Kissing Cubes

By Shamus
on Sunday Jul 13, 2014
Filed under:
Programming




Project Unearth Part 5: Speed Boost

By Shamus
on Wednesday Jul 9, 2014
Filed under:
Programming




Project Unearth Part 4: Enclosed Solids

By Shamus
on Monday Jul 7, 2014
Filed under:
Programming




Project Unearth Part 3: Relief Picture

By Shamus
on Monday Jun 30, 2014
Filed under:
Programming




Project Unearth Part 2: Skimming Hazzard

By Shamus
on Thursday Jun 26, 2014
Filed under:
Programming




Project Unearth Part 1: Shadow of the Occluder

By Shamus
on Monday Jun 23, 2014
Filed under:
Programming




Frontier Rebooted Part 7: What Have We Learned Today?

By Shamus
on Wednesday Jun 18, 2014
Filed under:
Programming




Frontier Rebooted Part 6: Worst-case Scenario

By Shamus
on Thursday Jun 12, 2014
Filed under:
Programming




Frontier Rebooted Part 5: Kneel Before LOD

By Shamus
on Thursday Jun 5, 2014
Filed under:
Programming




Things that drive me nuts about OpenGL

By Shamus
on Thursday May 29, 2014
Filed under:
Programming




Frontier Rebooted Part 4: Stuck in a Rut

By Shamus
on Sunday May 18, 2014
Filed under:
Programming




Frontier Rebooted Part 3: Act Normal

By Shamus
on Thursday May 15, 2014
Filed under:
Programming




Frontier Rebooted Part 2: Welcome to Orientation

By Shamus
on Sunday May 11, 2014
Filed under:
Programming




Frontier Rebooted Part 1: Back to School

By Shamus
on Wednesday May 7, 2014
Filed under:
Programming




Experimenting with Threes! Part 2

By Shamus
on Thursday Mar 13, 2014
Filed under:
Programming




Experimenting with Threes!

By Shamus
on Sunday Mar 9, 2014
Filed under:
Programming




Screensaver: Plasma

By Shamus
on Monday Jan 20, 2014
Filed under:
Programming




Passage Screensaver

By Shamus
on Monday Jan 13, 2014
Filed under:
Programming




15 Sorting Algorithms in 6 Minutes

By Shamus
on Wednesday Sep 18, 2013
Filed under:
Programming




Quakecon Keynote 2013 Annotated: Part 4

By Shamus
on Sunday Aug 11, 2013
Filed under:
Programming




Quakecon Keynote 2013 Annotated: Part 3

By Shamus
on Wednesday Aug 7, 2013
Filed under:
Programming




Quakecon Keynote 2013 Annotated: Part 2

By Shamus
on Monday Aug 5, 2013
Filed under:
Programming




Quakecon Keynote 2013 Annotated: Part 1

By Shamus
on Sunday Aug 4, 2013
Filed under:
Programming




Starcraft 2: Rush Analysis

By Shamus
on Thursday Jun 13, 2013
Filed under:
Programming




The Bug is, There is no Bug

By Shamus
on Monday May 6, 2013
Filed under:
Programming




Coding Style Part 4

By Shamus
on Monday Jan 28, 2013
Filed under:
Programming




Coding Style Part 3

By Shamus
on Monday Jan 21, 2013
Filed under:
Programming




Coding Style Part 2

By Shamus
on Friday Jan 18, 2013
Filed under:
Programming




Coding Style Part 1

By Shamus
on Thursday Jan 17, 2013
Filed under:
Programming




Coding a Parser

By Shamus
on Wednesday Dec 26, 2012
Filed under:
Programming




Ok Cancel

By Shamus
on Wednesday Dec 12, 2012
Filed under:
Programming




Physics Engine

By Shamus
on Sunday Jun 10, 2012
Filed under:
Programming




Project Octant Part 14: Moving Goalposts

By Shamus
on Thursday May 31, 2012
Filed under:
Programming




Project Octant Part 13: Bug Hunt

By Shamus
on Tuesday May 29, 2012
Filed under:
Programming




Project Octant 12: Fix All The Things

By Shamus
on Friday May 25, 2012
Filed under:
Programming




Project Octant Part 11: Shaders

By Shamus
on Wednesday May 23, 2012
Filed under:
Programming




Project Octant 10: Marching

By Shamus
on Monday May 21, 2012
Filed under:
Programming




Project Octant 9: Data Structures

By Shamus
on Thursday May 17, 2012
Filed under:
Programming




Project Octant Part 8: The Time-Hole

By Shamus
on Tuesday May 15, 2012
Filed under:
Programming




Project Octant Part 7:Slopes

By Shamus
on Monday May 14, 2012
Filed under:
Programming




Project Octant Part 6:Tiling

By Shamus
on Friday May 11, 2012
Filed under:
Programming




Project Octant Part 5:The Rainbow Collection

By Shamus
on Wednesday May 9, 2012
Filed under:
Programming




Project Octant Part 4: The Beautiful Noise

By Shamus
on Monday May 7, 2012
Filed under:
Programming




Project Octant Part 3: Using Qt

By Shamus
on Friday May 4, 2012
Filed under:
Programming




Project Frontier: Source

By Shamus
on Thursday May 3, 2012
Filed under:
Programming




Project Octant Part 2: Octree

By Shamus
on Wednesday May 2, 2012
Filed under:
Programming




Project Octant Part 1: Introduction

By Shamus
on Monday Apr 30, 2012
Filed under:
Programming




The GUI Problem

By Shamus
on Sunday Apr 15, 2012
Filed under:
Programming




Let’s Code Part 33: Taking Contributions

By Shamus
on Sunday Sep 18, 2011
Filed under:
Programming




John Carmack 2011 Keynote Annotated:
Part 3 of 3

By Shamus
on Wednesday Aug 10, 2011
Filed under:
Programming




John Carmack 2011 Keynote Annotated:
Part 2 of 3

By Shamus
on Tuesday Aug 9, 2011
Filed under:
Programming




John Carmack 2011 Keynote Annotated:
Part 1 of 3

By Shamus
on Monday Aug 8, 2011
Filed under:
Programming




Project Frontier #18: Particle Man

By Shamus
on Monday Jul 25, 2011
Filed under:
Programming




Project Frontier #17: Feature Dump

By Shamus
on Friday Jul 15, 2011
Filed under:
Programming




Project Frontier #16: Interface’d

By Shamus
on Wednesday Jul 13, 2011
Filed under:
Programming




Project Frontier #15: Devil of a Problem

By Shamus
on Tuesday Jul 12, 2011
Filed under:
Programming




Learning to Program vs. Learning to Write Software

By Shamus
on Monday Jul 11, 2011
Filed under:
Programming




Project Frontier #14: Import Models

By Shamus
on Wednesday Jul 6, 2011
Filed under:
Programming




Project Frontier #13: An Animated Topic

By Shamus
on Monday Jul 4, 2011
Filed under:
Programming




Project Frontier #12: Character Building Exercise

By Shamus
on Sunday Jul 3, 2011
Filed under:
Programming




Project Frontier #11: Bug Hunt

By Shamus
on Friday Jul 1, 2011
Filed under:
Programming




Project Frontier #10: More Trees

By Shamus
on Wednesday Jun 29, 2011
Filed under:
Programming




Project Frontier #9: Happy Little Trees

By Shamus
on Monday Jun 27, 2011
Filed under:
Programming




Project Frontier: Week 4

By Shamus
on Friday Jun 24, 2011
Filed under:
Programming




Project Frontier #8: FAQ

By Shamus
on Wednesday Jun 22, 2011
Filed under:
Programming




Project Frontier #7: River Raid

By Shamus
on Monday Jun 20, 2011
Filed under:
Programming




Project Frontier: Week 3

By Shamus
on Friday Jun 17, 2011
Filed under:
Programming




Project Frontier #6: Growing Grass

By Shamus
on Thursday Jun 16, 2011
Filed under:
Programming




Project Frontier #5: Stitching Time

By Shamus
on Tuesday Jun 14, 2011
Filed under:
Programming




Project Frontier #4: Dr. Seuss, Geologist

By Shamus
on Monday Jun 13, 2011
Filed under:
Programming




Project Frontier #3: Adding Variety

By Shamus
on Friday Jun 10, 2011
Filed under:
Programming




Project Frontier #2: Paging Data

By Shamus
on Wednesday Jun 8, 2011
Filed under:
Programming




Project Frontier #1: Getting Started

By Shamus
on Monday Jun 6, 2011
Filed under:
Programming




Ask Me a Question: Loading Screens

By Shamus
on Wednesday May 4, 2011
Filed under:
Programming




Hashing

By Shamus
on Tuesday May 3, 2011
Filed under:
Programming




Let’s Code Part 16: Fun with Shaders

By Shamus
on Sunday Apr 10, 2011
Filed under:
Programming




Transformation Matrix

By Shamus
on Monday Apr 4, 2011
Filed under:
Programming




Let’s Code Part 8 & 9

By Shamus
on Friday Jan 21, 2011
Filed under:
Programming




Let’s Code Part 7: Video Production

By Shamus
on Friday Jan 7, 2011
Filed under:
Programming




Let’s Code Part 5 & 6

By Shamus
on Friday Dec 31, 2010
Filed under:
Programming




Let’s Code, Part 4

By Shamus
on Sunday Dec 19, 2010
Filed under:
Programming




Let’s Code Part 3

By Shamus
on Thursday Dec 9, 2010
Filed under:
Programming




Project Hex Part 6 – A Comment on Comments

By Shamus
on Wednesday Dec 1, 2010
Filed under:
Programming




Project Hex Part 5 – Growing Grass

By Shamus
on Wednesday Nov 17, 2010
Filed under:
Programming




Project Hex Part 4 – 8 Bits is Enough

By Shamus
on Wednesday Nov 10, 2010
Filed under:
Programming




Project Hex Part 3 – Things Get Hilly

By Shamus
on Wednesday Nov 3, 2010
Filed under:
Programming




Project Hex: Part 2

By Shamus
on Wednesday Oct 20, 2010
Filed under:
Programming




Project Hex: Part 1

By Shamus
on Wednesday Oct 13, 2010
Filed under:
Programming




Ask Me a Question:
What is “Trashing the heap”?

By Shamus
on Wednesday Oct 6, 2010
Filed under:
Programming




Comic Press

By Shamus
on Tuesday Sep 28, 2010
Filed under:
Programming




Object-Disoriented Programming

By Shamus
on Monday Sep 27, 2010
Filed under:
Programming




Lingua Programmatica

By Shamus
on Monday Mar 29, 2010
Filed under:
Programming




My Version of Tetris

By Shamus
on Monday Mar 8, 2010
Filed under:
Programming




Why My Website Goes Down

By Shamus
on Sunday Jan 31, 2010
Filed under:
Programming




The Truth About The BSP

By Shamus
on Monday Aug 31, 2009
Filed under:
Programming




AI Follies: Behaviors

By Shamus
on Tuesday Aug 25, 2009
Filed under:
Programming




AI Follies: Pathing

By Shamus
on Thursday Aug 20, 2009
Filed under:
Programming




AI Follies: Targeting

By Shamus
on Wednesday Aug 19, 2009
Filed under:
Programming




AI Follies: Interesting Behavior

By Shamus
on Tuesday Aug 18, 2009
Filed under:
Programming




AI Follies: Detection

By Shamus
on Thursday Aug 13, 2009
Filed under:
Programming




AI Follies: Introduction

By Shamus
on Wednesday Aug 12, 2009
Filed under:
Programming




Software Engineering

By Shamus
on Tuesday Jul 28, 2009
Filed under:
Programming




Scratch

By Shamus
on Wednesday Jul 15, 2009
Filed under:
Programming




Cityscape Developer Diary

By Shamus
on Thursday Jul 9, 2009
Filed under:
Programming




Getting Started with Programming

By Shamus
on Tuesday Jun 2, 2009
Filed under:
Programming




Example Code

By Shamus
on Monday Jun 1, 2009
Filed under:
Programming




Pixel City, Test

By Shamus
on Friday May 8, 2009
Filed under:
Programming




Procedural City, Part 14: Feedback and Assessment

By Shamus
on Thursday May 7, 2009
Filed under:
Programming, Projects




Procedural City, Part 13: “Release” of Program and Source

By Shamus
on Tuesday May 5, 2009
Filed under:
Programming, Projects




Procedural City, Part 12: Finishing Touches

By Shamus
on Monday May 4, 2009
Filed under:
Programming, Projects




Procedural City, Part 11: Demonstration Video

By Shamus
on Saturday May 2, 2009
Filed under:
Programming, Projects




Procedural City, Part 10: More Performance

By Shamus
on Thursday Apr 30, 2009
Filed under:
Programming, Projects




Procedural City, Part 9: Speeding Things Up

By Shamus
on Tuesday Apr 28, 2009
Filed under:
Programming, Projects




Procedural City, Part 8: Optimization Tests

By Shamus
on Monday Apr 27, 2009
Filed under:
Programming, Projects




Procedural City, Part 7: The Street-Level Trap

By Shamus
on Thursday Apr 23, 2009
Filed under:
Programming, Projects




Procedural City, Part 6: Sky

By Shamus
on Tuesday Apr 21, 2009
Filed under:
Programming, Projects




Procedural City, Part 5: Fixes

By Shamus
on Monday Apr 20, 2009
Filed under:
Programming, Projects




Procedural City: Intermission

By Shamus
on Friday Apr 17, 2009
Filed under:
Programming, Projects




Procedural City, Part 4: City Planning

By Shamus
on Thursday Apr 16, 2009
Filed under:
Programming, Projects




Procedural City, Part 3: Generating Buildings

By Shamus
on Wednesday Apr 15, 2009
Filed under:
Programming, Projects




Procedural City, Part 2: Building Textures

By Shamus
on Tuesday Apr 14, 2009
Filed under:
Programming, Projects




Procedural City, Part 1: Introduction

By Shamus
on Monday Apr 13, 2009
Filed under:
Programming, Projects




Sierpinski Triangle

By Shamus
on Thursday Dec 4, 2008
Filed under:
Programming




“New” Posters

By Shamus
on Wednesday Jun 4, 2008
Filed under:
Programming




Faces

By Shamus
on Tuesday Jul 3, 2007
Filed under:
Programming




Informless

By Shamus
on Thursday Aug 17, 2006
Filed under:
Programming




The Procedural World, Part 2

By Shamus
on Tuesday Aug 8, 2006
Filed under:
Programming




The Procedural World, Part 1

By Shamus
on Monday Aug 7, 2006
Filed under:
Programming




WordPress Plugin: Useless Stats v1.2

By Shamus
on Thursday Jun 15, 2006
Filed under:
Programming




WordPress Plugin: Useless Stats

By Shamus
on Tuesday Jun 6, 2006
Filed under:
Programming




Random quotes in wordpress

By Shamus
on Saturday Jun 3, 2006
Filed under:
Programming




Lexicon WordPress Plugin v1.1

By Shamus
on Saturday May 27, 2006
Filed under:
Programming




Lexicon WordPress Plugin

By Shamus
on Wednesday May 24, 2006
Filed under:
Programming




Favorite Things 2.0

By Shamus
on Sunday Apr 30, 2006
Filed under:
Programming




Terrain: Source Code

By Shamus
on Saturday Feb 25, 2006
Filed under:
Programming




Terrain Feedback

By Shamus
on Thursday Feb 23, 2006
Filed under:
Programming




Terrain, Part 10

By Shamus
on Monday Feb 20, 2006
Filed under:
Programming




Terrain, Part 9

By Shamus
on Friday Feb 17, 2006
Filed under:
Programming




Terrain, Part 8

By Shamus
on Wednesday Feb 15, 2006
Filed under:
Programming




Terrain, Part 7

By Shamus
on Monday Feb 13, 2006
Filed under:
Programming




Terrain, Part 6

By Shamus
on Friday Feb 10, 2006
Filed under:
Programming




Terrain, Part 5

By Shamus
on Wednesday Feb 8, 2006
Filed under:
Programming




Terrain, Part 4

By Shamus
on Monday Feb 6, 2006
Filed under:
Programming




Terrain, Part 3

By Shamus
on Friday Feb 3, 2006
Filed under:
Programming




Terrain, Part 2

By Shamus
on Wednesday Feb 1, 2006
Filed under:
Programming




Terrain, Part 1

By Shamus
on Monday Jan 30, 2006
Filed under:
Programming




Linux vs. Windows

Finally, the age-old debate has been settled.

 

Playstation 3

What was the problem with the Playstation 3 hardware and why did Sony build it that way?

 

Spoiler Warning:
The Walking Dead

This game had lots of false choice and barely any gameplay. So what made it resonate so powerfully with audiences?

 

Crash Dot Com

Back in 1999, I rode the dot-com bubble. Got rich. Worked hard. Went crazy. Turned poor. It was fun.

 

Chainmail Bikini

A horrible, railroading, stupid, contrived, and painfully ill-conceived roleplaying campaign. All in good fun.

 

Project Button Masher

I teach myself music composition by imitating the style of various videogame soundtracks. How did it turn out? Listen for yourself.

 

Bad and Wrong Music Lessons

A music lesson for people who know nothing about music, from someone who barely knows anything about music.

 

D&D Campaign

WAY back in 2005, I wrote about a D&D campaign I was running. The campaign is still there, in the bottom-most strata of the archives.

 

Silent Hill Turbo HD II

I was trying to make fun of how Silent Hill had lost its way but I ended up making fun of fighting games. Whatever.

 

Artless in Alderaan

People were so worried about the boring gameplay of The Old Republic they overlooked just how boring and amateur the art is.

 

The Gradient of Plot Holes

Most stories have plot holes. The failure isn't that they exist, it's when you notice them while immersed in the story.

 

Could Have Been Great

Here are four games that could have been much better with just a little more work.