Learn To Make NES Games Fast

This is a crash course in learning how to make games with NESmaker.

Even if you have no previous experience, this video series should help you get up and moving. While there are MUCH more detailed tutorials on the LEARN page of the website, this is for those that want to start learning fast! Especially designed for those participating in game jams, hackathons, or the BYTE OFF development competition and showcase.

Day 1: Grayboxing

In this lesson, we’re going to make some quick graphics using the built in pixel editor, add some basic movement and tile collisions.

Day 2: Win and Lose

In this lesson, we’re going to learn to use a few new tile types – a hurt tile and a prize tile. Collecting the prize tile will be one of our objectives, and the hurt tile will trigger a death animation, which will reset the room. We will also introduce a hud into our game – we’ll add some hud graphics and use some existing variables for lives and score.

Day 3: Simple Monsters

In this lesson, we’re going to learn how to make simple monsters. We’ll make placeholder graphics for an antagonist, set up his colors, give him some basic AI, and put him in our game.

Download Files:

Day 4: Warps

In this lesson, we’re going to learn how to set up warps. We’re going to investigate two different methods – one, a simple door we can walk through, and the other, a system where if we collect all of the power ups, it warps us to the new screen. The second method will involve writing ten lines of assembly code, and learning a bit about how to construct a loop to check every tile in the current room to see whether or not there are prizes left.

Day 5: Win, Lose, and Start

In this lesson, we’re going to create some special screens. here, we’ll use 8x8px tiles rather than 16×16 so that we can manually write individual letters to the screen. Then, we’ll make a few tweaks to some scripts to send us to a game over screen when we’ve lost all of our lives rather than simply restarting the game.

Day 6: Player Invincibility, Part 1

In this lesson, we’re going to start creating a temporary player invincibility. We’re going to learn how to add custom global variables, how to access scripts related to power up collision, and how to use variables to manually draw sprites to the screen.

Day 7: Player Invincibility, Part 2

In this lesson, we’ll continue making our invincibility system. We’ll learn how to affect the collided-with object in a collision script, we’ll look at timers, and we’ll use a timer to respawn our power up after a short time.

Day 8: Player Player Animations, Part 1

In this lessen, we’re going to start creating a main character sprite to replace our place holder graphics. We’re going to make a canvas that we can play around on, and we’re going to create the most simple walk cycle in all four directions within NES constraints.

Day 8: Player Player Animations, Part 2

In this lesson, we’re going to integrate the animations we made in our last session into the game! We’ll also add a few scripts that will make our player change the the various animations when we press or release buttons.

Learn to make NES games FAST: LESSON 10, better background tiles

In this lesson, we’ll working on creating some better background tiles, and I’ll show some tricks on how to make repeating tiles for things like rock walls or bricks.

Learn to make NES games FAST: LESSON 11, shadows for depth

In this lesson, we’re continuing to improve our game’s aesthetics. We’ll create a few different types of ground tiles, adjust the colors to something more pleasing, and use some shadowing techniques to create the illusion of depth.

Learn to make NES games FAST: LESSON 12, changing powerup

This is an exceptionally fun tutorial with a potentially very powerful mechanic, especially if you can synthesize it with other mechanics we’ve learned. In this, we’ll make a *coin* that rotates and can show 4 different faces. If you collect the faces in their different states, it will have different effects – one will collect one point, one five points, one an extra life, and the other will actually trigger death.

Learn to make NES games FAST: DAY 13, Adding Boo - Like Behavior

Here is another fun quick AI tutorial on how to make behavior like Boo in the Super Mario series. These monsters will chase you if you are not directly facing in their direction!

Learn to make NES games FAST: LESSON 14, Shooting Turrets

Here, we’re going to create two turret type tiles that will shoot directly at the player with some screen times. **NOTE: currently this is only programmed to work on screen 0 (and subsequent odd screens). We will discuss how to clean this up to read whether we’re on an even or odd screen, to know what collision table we should pull from (which is necessary for scrolling games!).

Learn to make NES games FAST: LESSON 15, Easy Conveyors

Here, we will create conveyors that push the character to the right or up (which you could easily extrapolate to something that moves left or down). We will also look at how to use a timer to cycle palettes to make a blinking tile do denote which way the conveyor will push us.

Learn to make NES games FAST: LESSON 16, Push Blocks part 1

Here, we are going to start creating a push block. Through doing this, we’re going to learn a bit about using the stack to back up the X and Y registers, and about how to change a screen tile to a different type of screen tile.

Learn to make NES games FAST: LESSON 17, Push Blocks part 2

This is a long one, and a bit code heavy! Here, we implement pushing the pushblock object in the direction we are facing, then we figure out how to give it grid based movement so that it only uses 16px at a time, and ultimately, we convert the object back into a pushblock tile.

Learn to make NES games FAST: LESSON 18, Pushblock Trigger

Today, we finish our pushblock! We make a trigger tile. If we push the pushblock to the trigger, it unlocks a door and allows us to access the diamond that will let us get to the next room! There are still some slight rough edges to work out in the last few days when we deal with screen development and debugging.

Learn to make NES games FAST: LESSON 19, Bug Hunting

Today, we’re going to clean up a few of the bugs. Nothing flashy, but necessary.

Learn to make NES games FAST: LESSON 20, Stylized Title Screen

Today, we’re going to start to work on the more narrative component of our game, and make it our own. This will start with developing a stylized title screen, thinking consciously about creating a font for our title. Even if your font is radically different than the rather generic one used here, you hopefully can employ some of the same tricks to make it look branded, even on an 8-bit canvas!

Learn to make NES games FAST: LESSON 21, Simple Cutscene

Here we are going to create a very simple cutscene using an invisible object’s timers! This is an incredibly simple trick that can be very powerful for creating timed events. In this case, we’ll use the timers to hit a the screen’s warp, which will allow us to introduce some narrative context before jumping right into the game, but this same trick could be used to do a myriad of other things, too.

Learn to make NES games FAST: LESSON 22, Level Design

We have some bugs to fix, we have some graphics to tweak, and we have to start being intentional about your design. The first levels we’ll create will teach the player about the general mechanics of the game without having to show a word of text on the screen.