All your comments are very interesting! Thank you all!
The most sensible question is this : is the Pi zero powerful enough to be used as a programmable handheld game console? Are there some things that we should be aware of before beginning this project? Can it run at 60 FPS 2D games? 3D games? Does it even make sense to ask this question (do small displays support that frequency)? I suppose (naively) that it depends on the end resolution too... Am I right? As of the sound, does playing sounds would impact the performance of the rest of the game?
I've not received my Pi zero yet so I can't start experimenting on this but if you have some feedback, i'm all ears!
As of the features of the device I plan to make, I think I'd stay with something like a gameboy micro (the latest less known Nintendo game boy advance model) with some modifications. If I wanted to take the 3D road, an analog stick would be nearly mandatory but for plain old 2D games (my main target) a directional cross would be enough I think. Also, I want more buttons than the Gamebuino Meta or the GB Micro so I'd go with 8 buttons (2 shoulder ones, 4 main ones and 2 for start/select (are those later really necessary?).
I think we should stay with what already exists (DIY handheld projects for emulation) and then alter them to our needs (developing games).
So as of now, I'm planning to build somethink like this :
or this one (I prefer the former layout though) :
Those project are almost perfect to my needs but they are not cheap. I think it is inevitable : a project like this will be expensive...
By almost I mean that I have no idea what OS I'll use on it. Surely Raspbian to begin with but maybe something much smaller like tinycore or other.
For its ease of use, I plan to use raylib, and this lib along with graphics and sounds manages keyboard, mouse and gamepads, but I'm not sure how to manage GPIO specific data coming from the input.
@hippy: Based on your comments, it seems a bad idea to use the final device screen as a development station. Since my target product would have a small resolution, it wouldn't be pleasing to code on it. Maybe it should only be used as a test/playing device and the development should be made on a desktop Pi. Or we could use a secondary screen to develop and use the embedded one only to playtest games but can we switch form one screen to another easily? I don't know... Or at least is it possible to duplicate the video output to GPIO embedded screen and to HDMI output (for a bigger screen)? I heard that it was really slowing things down. Or maybe use a button command to switch between the two at startup? I haven't really understood what you had in mind about emulating the pi on a PC. Are you refering to SSH distant control? All you suggested is nice but can it really be done? I have no idea how to make an emulator that would push the display on the device from a development computer.
@PhatFil: For the wireless keyboard, I think people should have the choice to use a wireless or a USB one if they want. After all, we don't know what gear people own. So I think we should keep the micro USB port available.
@Guntha : As of the idea of an OS that automatically launches a game, I'm not sure it's wise. Even if the concept of a one game per MicroSD is appealing to a 16 bit cartridge console nostalgic I think the OS should allow users to choose a game to launch from a list of many ones. And that would remove the development aspect from the device altogether.
Since you're already a professional game developer, maybe you'd like a bigger resolution or other controls. What would be best for you?
Thanks for reminding me of Handmade Hero, I planned to follow his playlist and forgot about it...
OK, so you want a folded handeld console. Something like the PSP Go maybe? Since I'm not that good with building things, I'd stay with a simple flat design and I wouldn't try to make a sliding case or even a 2-parts foldable one (like the Nintendo DS).
Buildroot seems great but do you know if it supports openGL (the main base of raylib)?
@Imperf3kt: I plan to roughly make 16/32 bits era 2D games. So, no 3D but rich sprites and effects are a must. The Gamebuino allow for 8 bits era 2D games and that is not to my taste. It seems the Pi zero would be a good candidate, don't you think? So, as you can see, I don't need a big display. However, even if I'm not into 3D, I'd like to use the capabilities of openGL (and the GPU of the Pi) to play with shaders, or cameras. Effects like the SNES Mode7 (zooms, distortions, rotations, or affine transforms) would be the best but we shouldn't be able to do it at the expense of the frame rate. Does the Pi Zero could handle that easily?
@tucker: from what I saw of all those devices, they all support 8 bits era kind of games (very few colors, low resolution, low memory, poor sounds). I'm more into 16-32 bits era. I want more colors, visual effects like SNES, and CD quality playback. Can the pi zero handle it with its massive RAM (compared to others) and powerful CPU?
Thanks again for all your replies. It helps me narrow my needs and understand better constraints of a project like this.