As a personal project, I’ve begun a large series on building a tile engine, a game using that engine, and editors to use while creating the game. For the series I’m using the approach that it’s better to stumble while recording a few times than spend multiple days practicing. As a result I’ve been able to produce a large amount of video in a short time. Each video is shot as a screen capture with audio using Hyperionic’s HyperCam software.
The videos will remain here for free, but I have also begun selling DVDs and CDs with all of these tutorials (and more) on them. For details and links to purchase, please see this post.
I also accept donations to help with hosting the site and spending time making tutorials, samples, and free games. If you feel so compelled, please consider making a small donation:
Episode 1

Video Download
Project Download In this first episode, we get a basic framework laid out for our tile layers and get a small map rendering to the screen. Full post
here.
Episode 2

Video Download
Project Download In this episode we cover basic motion and constraining the camera to the tile map (basically preventing you from scrolling of the map). Full post
here.
Episode 3


Video Download A
Video Download B
Project Download A
Project Download B In 3A we cover refactoring the game into a Camera class and TileLayer class by creating a new project to house the engine files. This gives us some separation of engine code and game code which will help as you reuse the code with other games or the editor. Then in 3B we create the basic shell of our editor, get an XNA display up and running displaying our tile map, and add a couple of scroll bars to move around the camera. Full post
here.
Episode 4

Video Download A
Video Download B
Video Download C
Video Download D
Beginning Project Download
Project Download A
Project Download B
Project Download C
Project Download DRequired images:
In this episode we have part A covering how to create a real TileMap with multiple tile layers involving individual tile drawing and alpha blending layers. Parts B, C, and D all cover the editor as we scramble to catch up with the game. Full post
here.
Episode 4.5
Video Download
Project DownloadSprites available here: http://blogoscoped.com/archive/2006-08-08-n51.html. This is a .5 tutorial because we aren’t actually touching the engine, game, or editor. Instead, in this video we are getting some sprites ready for later by creating a small tool to convert a bunch of single frame images into sprite sheets. Full post
here.
Episode 5

Video Download A
Video Download B
Video Download C
Project Download In these three videos we do some debugging, cleaning, and add some safety into our editor. No more crashing every few minutes. Then we add a fill tool to the editor to make filling in texture layers a bit easier. We then add some real support for editing multiple layers by only drawing the selected layer and the ones below it. And finally we add support to the editor (and the layout file) for the alpha property. Full post
here.
Episode 6

Video Download A
Video Download B
Video Download C
Video Download D
Project Download
Sprite Sheets Finally we add support for frame animated sprites. This is a four-video section (I tried to keep the video length at about 20 minutes to make the downloads smaller) where we add full support for player-controllable sprites and stationary/NPC (non-player controlled) sprites. Full post
here.
Episode 7

Video Download
Project Download In this episode we quickly implement a very nice collision system between our player character and the other sprites. Full post
here.
Episode 8

Video Download
Project Download In part 8 we cover tile map collisions, a very powerful but pretty complex process. This allows us to set places where the player cannot go as well as places, like mud, where the player moves slowly. Full post
here.
Episode 9

Video Download
Project Download This one is a short one, but a good one. In this video we cover how to quickly optimize rendering by only drawing the visible tiles in your tile layers. Full post
here.
Episode 10

Video Download
Project Download In this video we improve our sprite collisions by allowing a more 3D overlap of sprites. We also implement a sorted list for rendering to make sure the sprites are rendered in the correct order. Pretty simple, but it does give a nice effect. Full post
here.
Episode 11

Video Download A
Video Download B
Video Download C
Video Download D
Video Download E
Project Download In this episode we create a powerful scripting framework for our NPC character’s. We utilize some custom content pipeline features to turn a basic XML document into a script that we can use to interact with our world. We use reflection along the way to help invoke the methods based on the XML. Also included is a spiffy lesson on implementing a basic menu and word wrapping. Full post
here.
Episode 12

Video Download
Project Download In this video I add in a nice InputHelper class for us to try and fix the input problem from the end of episode 11. After I realize that doesn’t work well, we add a different method for fixing things up. Full post
here.
Episode 13

Video A Download
Video B Download
Video C Download
Video D Download
Project DownloadIn this episode we go through and content-pipeline-ify our tile map loading. We start by converting all of our layers to an XML format. And by the time we are done we can load an entire map with any number of tile layers in a single call to Content.Load
(). It also helps us clean up our project because we no longer need to have the tiles or individual layers in there. Lastly this gives us some protection as well because now our map file, collision layer, and tile layers are all written as XNB files instead of the XML or TXT files making it harder for people to alter your game’s data. Full post here.
Episode 14

Video DownloadThis is the last video for the series. In this video we go back to the editor to add a few features, fix a few bugs, and give you a good starting place For starting to save out your new XML files. Also unfortunately I just realized I deleted the project without zipping it up so there’s no code to download. My apologies for that. Full post
here.