What are the best options for my specific needs (graphics/games), including parts?

Salutations! I thank you for your attention. Please forgive my rambling, but I need to elaborate on the specifics of my situation.

Until very recently, the world of devboards was unknown to me. I fancy myself a game developer and I acquired a Mega 2560 with a 128x64 monochrome display(ST7920 compatible). To my current understanding, this is a very nice display and this is a very nice chip. I'm fascinated! I had some problems getting my display to work because there's almost no documentation on it, but all seems to be working.

Unfortunately, as I researched Arduino further, I came to the realization it was not a microchip. Yes, that's what I thought at first. I expected it to have its own instruction set. It's far less basic than I expected. Instead of writing display drivers and handling interrupts, the community uses external libraries. This defeats the whole point of working so close to the hardware for me. This is also why I don't really like the idea of the Raspberry Pi, at least not for this kind of project.

I adore the 2560 and I'm planning to buy some more components, sensors and what not. I decided to ignore the libraries and just write everything from scratch, from serial communications to the display driver. But for as fun as it is, the memory limitations on the 2560 make it difficult to get more elaborate graphics(even though it does actually have a lot of memory, relatively speaking).

So, that's my question. For someone like me, who likes graphics, what would be some displays, boards and chips that would enable some higher resolution graphics? Maybe something with a few megabytes of memory?

Thank you for reading this and for your time!

The ATMEGA family are microcontrollers (with on-chip peripherals) - hence their popularity.

There are plenty of microprocessors, but you have to do the integration.

Developing games on anything less than a 2560 would be hard work due to RAM limitations…
At the least, I’d start with a 1284 with lots more FLASH & RAM.

The ESP family go further, but the choice is yours.

Thank you! Something self-contained is more interesting to me and it feels like Arduino is more my kind of thing. It's also very affordable, which is great.

I'm browsing a lot of components here and I'm just excited at how interesting they all are. Before committing to anything I decided to ask because maybe there exists something that would match my needs more closely than what I know. For instance, some specific display that would be particularly nice.

Currently, my plan is to use an SD card for more memory in combination with a virtual machine.

There is nothing that forces you to use the libraries that are already written. You can write code that is as "bare metal" as you want, including assembly language. (Much more easily than you could on an RPi, since there is no "operating system" that you would have to override, and no proprietary hardware.)

That said, AVR microcontrollers are pretty slow when it comes to implementing "high resolution graphics" (although see "AVR Demoscene", like Craft ), and the interface to LCD displays is also usually pretty slow.

You might want to look at the recent raspberry Pi microcontrollers ("Pico"); these are also bare-metal microcontrollers, but they have a lot more RAM, run much faster, and have some neat HW features that (for example) permit them to drive an HDMI display.

That will make things even slower...

2 Likes

That's the route I've taken, but it feels like this isn't the Arduino way of doing this. The philosophy seems to be more towards skipping the very low-level software part as much as possible to focus on building elaborate stuff. Since I mostly just need buttons and a display, skipping that part makes it feel like just writing a very small game. That said the more I play with it the more I want to build some other fun stuff, but usually it involves graphics.

Thank you, this is worth considering. I thought Pis were all a lot more abstract than Arduino.

Yes, but more fun and flexible as well. I won't know exactly how usable it will be until I try, but I expect "something" to be achievable.

Just my thoughts but if it involves graphics, then there's usually a driver chip of some sort involved. These days they are so damn complex that it would take you ages to create a library from scratch.

Most of the smaller displays that I've come across have an SPI interface which can limit your options for moving graphics unless you have a micro that runs at 10s or 100s of MHz that can really hammer the SPI interface - which is what would be needed if you have a display with a lot of pixels to feed.

I've not played with a microcontroller that has a built-in display driver so wouldn't know what to advise re memory and processor speed. The more the better, but then that becomes less of a programming challenge. I think the Raspberry Pi boards have a dedicated display port for direct connection to an LCD.

Thinking back to the early days of the likes of the ZX80/81 and ZX-Spectum, there were a few adventure type games that would load up a static image of a location in the game and include a text input/output area across the bottom of the screen to interact with the game. A quick search found a website called Indie Retro News that seems to have a lot of games for various machines. That might give you an idea as to what to look for.

This youtube video looks quite interesting as the guy explains how he runs "DOOM" on an ESP32. Not quite the DOOM I recall playing but still interesting. Then there's this variant that looks more like I played back in the day, still on an ESP32.

You could of course go back further and explore the world of text adventures. That can be done using just the built-in serial port on just about any micro. I've ported the Colossal Cave Adventure over to a MEGA2560+SD Card. I was hoping to run it on an UNO but just couldn't quite fit it all in.

I guess it begins with choosing the type of graphics you want - animated, static or simple text - and then look for hardware capable of supporting that. The more complicated the graphics you want, then the more likely you will end up using an existing graphics library to handle it.

I'd rate that as "true."
So what? The Arduino remains a convenient, easily obtained, and relatively inexpensive, hardware platform, regardless of whether you do things "the Arduino way" or not?

The part you'll miss out on is the "community expertise." Post a question here about the Adafruit GFX graphics library, and you'll probably find someone who can help. Post a question about creating Sprites from scratch for a ST7920, and you'll probably get ... nothing.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.