Pyra Game Dev


Gren

Very Active Member
Joined
Jun 17, 2005
Messages
187
Location
Holmfirth
Website
Visit site
Hi fellow Pyra-eans

Just wondering (out loud) what languages/tools/IDEs/game libraries you wonderful game devs are gonna be using to build Pyra games :)

I've never done any Linux dev, only bits and pieces on Windows and serious stuff on mainframe.
I do have some experience with GLBasic, but not recently, and I don't know if this will be supported (it did use to have pandora support). And the forums do seem awfully quiet.

I'm happy to try and learn something new; but I'd like proper game support and an active community if possible!
I get Wireframe magazine, and Python/Pygame seems to be popular for retro projects (my preferred choice). Does anyone have any experience of building games in Pygame? And would this be suitable for Pyra games dev?!

Questions, questions, questions!

Cheers,
Gren :)
 
I've been wanting to get back into game development too, now that Pyra's around the corner.

I used to do some random stuff with C++ and SDL2, but I wasn't very good at it. SDL2 is a system interface library rather than an actual game engine anyway. Not really what you seem to be looking for.

As far as game engines go, Love2D and Godot will probably be supported by Pyra. I know Godot looks too fancy for Pyra, but last time I checked it still has a special mode for targeting embedded devices.

Also, I use Aseprite for making graphics. I'm having trouble recommending it though, as it costs $20, and I'm not sure if the license even allows a Pyra build.
 
For graphics, I mainly use gimp and inkscape, but I wouldn't use either for game graphics, although it might be interesting do so some of that in inkscape so it's all infinitely scalable. But if your talking about bit twiddling then I keep meaning to check out MyPaint and particularly Krita.
 
Scratch, the tool, might also work as it works on Raspbarry Pi also. Otherwise you could possibly use a framework like PyGame or tools like Godot. Pyra will probably also be able to run HTML5/WebGL games.
Music and audio you could use LMMS and Audacity. For models you could use Blender, on Pandora there is an old release available so hopefully op Pyra a more recent one can be used.
 
I know Godot looks too fancy for Pyra, but last time I checked it still has a special mode for targeting embedded devices.

Godot currently has a GLES2 back end :) I hoping it's possible to get a port running on the Pyra. Looking forward to seeing what kinda visuals can get squeezed out of it.
 
Either use Löve or die in complexity and slowness.
Löve is the only way to create a game in under a day and have it use less than 1% cpu even on the pandora. And further you dont have to make shit running because it already runs everywhere.
 
I've just started looking at Raylib. Looks pretty good so far as a C library, no dependancies, and able to be staticlly linked. GL and GLES back ends, 2D and 3D support
 
Godot currently has a GLES2 back end :) I hoping it's possible to get a port running on the Pyra. Looking forward to seeing what kinda visuals can get squeezed out of it.
Yeah, me too. And I hope it's not just exported games that run well but also the editor.

For models you could use Blender, on Pandora there is an old release available so hopefully op Pyra a more recent one can be used.
Not very recent, though, because Blender 2.8+ requires OpenGL 3.3 and the Pyra only has an OpenGL ES 2.0 capable GPU.
 
I'm using C++ with SDL2. I'm currently following Handmade Hero on Youtube because my current structure is really crappy and holding me back. So I need tips on better structuring my code, which I'm getting from those Youtube videos.

Pygame seems good for your purposes. I'm not a big fan of myself because it seems like hammering a square peg into a round hole. It's a scripting language and they've mangled it to make it into programming language probably just because they can. But that's probably my bias speaking. I just prefer using the correct tool for the job at hand. But it seems perfectly serviceable in instances where performance is less of a factor, which it will be for retro/2D stuff.
 
Python's not a scripting language in that sense, although it is an interpreted one, and borrows some features from scripting languages like Perl (well only the this variable in C++ speak [generally self in Pl/Py) not being automatic and instead needing to be passed in to the function definition) What stops it being a scripting language to my mind is it not promoting the use of pattern matching and regular expressions, although to be fair is getting removeprefix and removesuffix string methods in python 3.9 which will put it on something of a par with native bash string handling.

I guess the argument against python in the end is that it's a bit too much of a generalist. It'll stop buffer overflows and ROP simply due to the fact you can't get at the raw data within python, so you're limited to the provided methods which in my experience at least stop you going off the end of things with an IndexError. But you can still have undefined behaviour, and data races such that you end up in an infinate loop, and even I, as a experienced Python user, wouldn't suggest rewriting the kernel in it, as is happening with some data safe languages like Rust these days.
 
I wonder which version of Blender would actually work.

I'm not the most technical person, but my understanding is that with 2.79 will be the last version to be able to use the GPU?
2.8 on might be able to be run in software.

I don't have high expectations for Blender, but my hope is that 2.8 can run well enough to do the occasional mesh edit, like fix a vertice and re-export.

As I am learning about Linux, I wonder if it's possible to force a program to run without ogl3.3, and just deal with the graphical weirdness that would appear.
 
As I am learning about Linux, I wonder if it's possible to force a program to run without ogl3.3, and just deal with the graphical weirdness that would appear.
Nothing's impossible, but I'd wager this is pretty hard to do. The executable will try to load some kind of library to direct its ogl calls to the hardware. I guess the way I'd try to do this would be to write a shim that mainly just drops new opengl3 calls and forwards ogl2 calls to the real lib. Generally to persuade a program to load your shim instead of the real one but load all other libs normally is to craft an LD_LIBRARY_PATH.
 
My understanding could be wrong, but i guess it depends on the hardware/drivers, but my experience is you can work with the framebuffer. Bitbashing pixels if you want, but obviously rendering the display on the cpu steals cycles from the rest of the program.
That was the way i dealt with the OGA before checking out Raylib with EGL support
 
Yes, you could bitbash pixels in order to rewrite all of ogl3.3 in software. I'm not sure why you'd do that when we have a perfectly functional OpenGL-ES2 chip on the board, which can handle a chunk of the work for you much more cheaply, unless you're really paranoid of binary blobs. And a project which passes all it can on to the OGLES2 chip while handling everything else either purely in software, or decomposing it to multiple OGLES2 calls is known as Ptitseb's GL4ES, but that as far as I know doesn't bitbang the display.
 
I agree... and that's why I was happy when raylib added an EGL platform, even though my cpu-bound OGA lib still gave me roughly 60fps.
 
I played a little bit with Raylib (2.5), but I never got it working on Pandora. How about you?

Thomas
 
I played a little bit with Raylib (2.5), but I never got it working on Pandora. How about you?
To be honest, not tried with the Pandora, however, recently they released PLATFORM_DRM, which uses EGL instead of X11; so doing a fullscreen Pandy app with it should be possible now. If I get chance, I might have a go and see if the demos build and run, though after some long days at work, I've tended to just play Starcraft and watch YouTube in the evenings
 
Back
Top