Batman (NES) Pixel Art Study
I’m trying to improve my pixel art skill, so I thought it would be fun to take a closer look at one of the most beautiful NES games ever made – Batman!
I love the pixel art in Batman! Let’s dive in and bask in its glory. Feel free to ignore my commentary and just enjoy the art :-).
Figure 1. Title Screen Cutscene
The first thing I notice is the use of black. Most screens are at least a third of just plain black space. In this image (Figure 1), the eye on the left is just a single pixel!
Figure 2. Start of Game
This shot (Figure 2) looks amazing, and sets the general tone for the entire game.
The art style has dithering, but not so regular that it becomes a flat sheet.
As I mentioned before, there is a ton of black. One thing I love about pixel art in general is it requires imagination from the audience. Plain black is easy to draw, but in this context, it gives space for me to imagine what else could be there.
The NES was very limited technically – you could only use four colors for background tiles, and three for sprites. But it doesn’t really feel like more colors would add meaningfully to the scene.
The background uses its four available colors as a gradient – black is always at the bottom, followed by three colors with the same hue, just brighter intensity.
For the entire game, the solid tiles use a different color than the backdrop. Usually the solid tiles will use more highlight, making it pop more, while the backdrop uses highlight very sparingly, which helps it sit further back.
Figure 3. Cape Movement
Before getting distracted by the animation, take a look at the face. Two colors, in about a 4x7 area. Yet somehow, it’s totally his face!
The animation for the main character is fantastic. In Figure 3, something simple like turning around shows the cape slowly animating downwards. Using the cape for animation is great because it allows for fast player movement, but still communicates the physics in a passive way. Nothing is worse for control than having long fluid animations that prevent you from moving quickly! Batman avoids the issue by animating the cape instead.
Figure 4. Run Animation
One thing that you might not notice is the cape is mostly black! The sprites use black to trace around edges to make them pop, but it’s also used for the inside of the cape.
I also find it interesting that the ears have a black outline, but the face doesn’t. I wonder why? It looks like most of the tracing is only on the right side, though it’s admittedly hard to tell because so much of the background is black :-).
I love how jerky the body movement is compared to the smooth cape movement.
Figure 5. Theatre Section
This is the last time I’ll mention it, but look at all the black space! Love it :-). The faint lines activate the audience’s imagination, and our minds fill in the rest. Are those red dots headlights from some traffic? Sure, why not.
I also love the delicatessen sign in the back. It uses purple, green, and cyan (???). But it works!
Figure 6. Rafters
I really like how this section just randomly adds some purple blocks inside the platforms.
The rafters are green and gray, and sit in the background well.
One thing they do great is invent new textures that look industrial, but ultimately have no clear meaning. The large red blocks have rivets around the edge, and some sort of grate in the middle. They could have reused the same texture from the platforms, but they didn’t.
Figure 6. Ninja
So much variety and great work in this shot.
Look at the shadows – throughout the game, the foreground casts a shadow down and to the right on the backdrop. But not the same amount. When the riveted wall casts a shadow on the platforms, the shadow is around 6 pixels wide. But when the same type of wall casts a shadow on the purple backdrop, the shadow is twice as far.
The ninja does a lot with three colors! Black is still used as an outline, which only leaves the red clothing, and the peach skin color. However, notice that both colors are doing double duty: the peach is also used to highlight the red on the face and sword, and the red is used to make shadows on the arms.
There’s also a subtle trick in the window behind the ninja. The bottom of the window uses the dark green color, even though the rest of the window is brown. This is due to the limitations of the NES — which they hide well!
Figure 7. Pipes and Railings
Once again, depth is achieved by varying the distance of the shadow cast to the right.
This section is a little harder to read because the bright pipes in the background blend with the foreground. It isn’t clear if you’ll bonk your head or just pass right through them.
Still, I love the zig-zag texture and the attention to detail on the railing, which is in front of the characters.
Figure 8. Electric Rods
Every level has such variety in color, texture, and animation.
The platform Batman is standing on uses gray and brown. Usually they work together to make a rusted shadow, but in the corners they’re separated to give the illusion of individual wires.
Figure 9. Grinding Blades and Belts
Now that we’ve become acclimated to Batman’s aesthetic, let’s compare it to something a little more bubbly:
Figure 10. Kirby's Adventure
Kirby has the same restrictions as Batman – they both need to create a layered background with only four colors in every 16x16 region.
But notice that Kirby uses large flat colors with no shadows, and instead achieves depth by using one solid color per layer. For example, the leaves and mountains are flat colors.
By comparison, Batman uses its colors as a gradient to give individual objects a 3D shape with texture and highlights, and relies almost entirely on black shadows to create layers. This results in less variety in hues.
Figure 11. Machine Boss
It surpsies me the amount of detail they pack in.
For example, in Figure 11, they took the time to make the vertical purple supports cast a shadow on the faint horizontal lines behind them. They could have easily just left it flat, but that small detail adds another layer of depth.
Figure 12. Start of Sewers
The sewers are my favorite location.
The green backdrop looks great. Not only is the pixel art great, but the layout of the panels in the scene is interesting. Some panels are skinny, some parts are irregular, others are repetitive. The variety reminds me of music.
Also, what’s not to love about black water?
Figure 13. Pipes and Water
Figure 13 shows more variety in the panels, along with interesting tubing in the water.
The large pipe looks like it has a logo on it. I love how it connects to the wall near the center of the screen – in particular, the bottom right only uses 5 pixels to convey the curve of the seal in the shadow.
Figure 14. Green Water
The next level has an interesting palette swap – now the background is red, and the water is green.
The gray tubing is new. It looks similar to the tiles in the first level (Figure 6), but slightly different.
Figure 15. Industrial Collage
Figure 15 is just a complete mess of industrial widgets :-). The same background used in Figure 13 and 14 is still here – but now it’s red and regular, which makes it look like large bricks.
I like the little pops of green within the mess.
Figure 16. Caves
The caves have a nice contrast between the natural rocky formations and the machines.
The rock platforms are made readable by using more highlights on the walkable surfaces.
Figure 17. Joker Lab
The lab is the most distinctive of all the levels. All the other levels have a gritty dithered look, but the lab has large flat sections of color.
The green is still my favorite – the tube of brain matter and the Joker face are great!
Figure 18. Layered Mesh
I’m not sure what the background represents. I’ve never seen large mesh walls like that before.
This is probably my least favorite level. I like the shadow of the platform on the red mesh, but I’m not really a fan of the mesh in general.
Figure 19. Fire Pit
There’s an interesting use of green in Figure 19.
The boxy elements at the top use the green highlight a lot. Directly under them are supports that only use the highlight for one pixel in the corner. They almost look like separate palettes, but they’re the same.
I love the burned out platforms too.
Figure 20. More Mechanics
Figure 20 is part of the same level as Figure 19 – notice that the red palette that was used for the fire pit is now being used for the bright red vertical beams.
The hexagon pattern looks great, and the mechanical details behind it looks even better.
Figure 21. Start of Gears
The gears obviously stand out, but the brick looks great too. I also like the red steel beams.
Figure 22. Animated Gears
I just had to include the gear animation :-). It’s so pretty!
One thing I notice is the shadow cast on the gears is consistent across all the frames of the animation. If you look closely, the same pixels are always black in the shadow.
Figure 23. Final Battle
Finally, we made it to Joker!
I’m surprised they used a light color in the background!
The brick supports have depth because the one on the left is slightly smaller and darker than the one on the right.
The bells look great – a perfect shot for the final boss.
Figure 24. Batman and Joker
What a great shot. I wonder if they traced these final images from the movie?
The folds in the fabric look great, and the bright Joker face stands out.
Figure 25. Joker Falling
There’s a tiny 12 pixel figure falling from the building :-).
I like the horizontal lines in the sky – it allows for the silhouette of the buildings to stand out. Otherwise, they would have just blended in completely with black on black.
Figure 26. Joker Landing
Figure 27. Body Close-up
Figure 28. Face Close-up
The final cutscene ends with the smiling Joker, of course :-).
I’ll have to watch the movie again to see if these frames were traced from them. They look almost too good :-P.
They’ve captured Jack Nicholson’s features perfectly. Such beautiful art in this game.
Figure 29. The End
Thanks for listening to me rant and rave about the pixel art in Batman! I don’t really know what I’m talking about, but this has helped me sharpen my eye :-).
For the record, the game is stupid difficult, even with cheats enabled (which I shamelessly used :-P).