In the mood for a little report on a little talk about small screens at AMAZE Sheffield? Well, you’re in luck, because that’s exactly what alternative controller game designer Julia Makivic has come up with.
Running down a list of some of his favorite and most despised tiny screens during a quick Hyper Talk, Makivic sought to impart some wisdom to other developers intrigued by the prospect of creating games that incorporate small displays. He explains that tiny screens have become a “huge part” of his process, and that’s pretty darn cute.
It’s also incredibly frustrating at times, because they weren’t designed with gaming in mind. “They were designed to maybe display sensor readings or other information on the board itself,” he explains. “So my whole journey was trying to adapt these annoying little screens to do what I wanted them to do, even though they weren’t designed to do that.”
So, as Makivic ranks them on a personalized 10-point scale from “most annoying” to “least annoying” at 10, here are a few small screens that you may eventually come to love or loathe.
Ardunio MEGA + Adafruit HX8357 (6/10)
“The first project I ever did used the Adafruit library with the HX8357 shield on the Arduino Mega, and I'd give that experience a solid 6/10. It's actually really big for a tiny screen. It's about five inches,” Makivic says. “But it doesn't work with transparencies. It's annoying. For sprites and even when it renders images, it renders them line by line instead of the whole image at once. […] It's not good for practicality. It also has too many pins. Neither SPI nor I2C protocols require that many pins.”
Picographics + Pico Display Pack /Tufty 2040 (3/10)
“Next is the Picographics library with the Pico display. If anyone here is a fan of the Pimoroni Website for microcontrollers you know what I'm talking about. Otherwise, it's a small niche. This experience inspired the whole talk because the Pimoroni website is so friendly and nice […] you think, 'wow, it must be easy to view a JPEG on this thing.' No,” says Makivic.
“They use this JPEG encoding library where you have to have a particular JPEG format. But they don't tell you what the format is or how to define it. All I know is that when I use JPEG from ProStudioPaint it likes it, but when I use JPEG from Photoshop it gets mad. That's okay because Adobe is evil, so maybe they're right about that.”
Adafruit GFX Bitmap Images – ST7789 (5/10)
“Next up is the Adafruit GFX and Bitmaps on the ST7789. Solid 5/10. I liked that the ST7789s are pretty small. They're cute. They're expensive, though, but they also have round shapes, which is cool. Adafruit, too, has good documentation. They'll tell you what you need to do to get what you want. Excellent. That's a huge plus,” Makivic continued.
“But one thing you have to use with these screens is bitmaps. I had to learn what the fuck bitmaps were in order to do that. So a bitmap is an array that represents an image. Each value in the array represents a particular pixel in the image. So you have to break that bitmap up into a grid and then see when you're going to use that part of the bitmap in a game.
“It's cool to manipulate an image at that pixel level. But there might be an easier way to do it, I don't know. And just like all these other screens, bitmaps can't be transparent. So your white background has to match the game background, and that's just a huge annoyance for everyone. Also, I need to know the size, width, and height of the bitmap. I had to do some math to do that, which, like, why? It also gets crazy when you try to use too many bitmaps at once.”
ESP32 + ILI9341, ST7789, GC9A01 (8/10)
“Finally, I would like to move on to the best. We have left the dark ages where you could not use transparency and entered the modern world where you can use transparency on images. I am using the ESP32 microcontroller with various shields, including ILI9341, ST7789, GC9A01”, says Makivic.
“Honestly, it was awesome. It's so easy to use and I recommend it. The only downside is that you kind of have to leave the beginner pool and dive into the intermediate pool. The ESP32 is maybe not as intuitive, but it's not that bad either. And I can use the GC9A01 shield which is very cheap and also circular.”
Click here for more information about AMAZE Sheffield