How Programmers See It

NeoRealization
Introduction

In the climax of the Matrix, there’s a scene where Neo realizes that the world he sees is an illusion. And having seen through this illusion to the “code skeleton”, he’s able to control the Matrix instead of being controlled by it.

Similarly, as an indie programmer you need to see games a certain way in order to create them. You need to get past what looks visually complex and realize that there’s a simple structure underlying all 3D video games. I call this structure the code skeleton.

Code Skeleton: The Programming Skills You Need to Know

So, what exactly is the code skeleton? It’s the basic knowledge and skills that you need to “flesh out” a 3D video game. Specifically:

  1. You need to know that you have 3D objects given to you by the 3D modelers (see pipeline diagram), some of which have animations like characters and NPCs. Sure, they may look fantastic, but that’s just the texture maps (see image below). From your perspective, they’re just 3D objects, and you need to know how to load these 3D objects.
  2. Depending on the quest, you either place these objects & forget about them (most buildings), or you move them (like players, NPCs, and monsters). You need to know how to
    position
    3D objects and animate objects if they contain animations.
  3. You have to detect either collisions with other objects, or detect when objects reach certain invisible areas known as triggers. You need to know how to detect collisions and triggers, which includes user commands.
  4. When objects collide or reach triggers you have to move, animate, unload, and/or load new objects. In addition to the above commands, you need to know how to remove objects.

ComputationalSkeleton

Left is how the Modeler Sees It, Right is How the Programmer Sees It

Summary: The Code Skeleton

So here’s how you see it as a 3D video game programmer; you know that you’re given quests by the quest (level) designer and the modelers give you 3D objects:

  • You can place or move them
  • You have to detect collisions and triggers, and
  • If a collision or trigger occurs you have to animate, move, load, and/or remove an object.

That’s the code skeleton. Your job as a programmer is to flesh the skeleton out using these skills and make it “alive”—make it a playable game. Yes there are other skills, but the majority of what you’re doing are those listed.

VirtualWorldGirl

The Video Game is One Big Illusion

 

Key Data Structure: The List

For those of you already familiar with data structures, I should point out that there’s one key data structure: a list. All objects are placed on a list. More on data structures in a later module. But the basic idea is that the list contains everything that the player interacts with in a given level. When something is created, you add it to the list; when something is destroyed or dies, you remove it from the list.


Academic Citation

Flor, N. (2014). [insert_php]echo get_the_title();[/insert_php]. ProfessorF Indie 3D Video Game Tutorial. Retrieved [insert_php]echo date_i18n(‘F j, Y’);[/insert_php] from [insert_php]
global $wp;
$current_url = add_query_arg( $wp->query_string, ”, home_url( $wp->request ) );
echo $current_url;
[/insert_php]

Copyright Information

Creative Commons License

CC BY – This work is licensed under a Creative Commons Attribution 4.0 International License.