Godot 3 (any Godot developers here?)

Ah, yep. That is indeed a thing. Currently the only thing that bugs me are the audio issues (very stuttery)

Besides that on the occasion that I find some time to tinker with Godot, I’m looking at options for exporting the projects using something other than GDScript. The best candidate in this case would be GDNative libs (allowing you to write in languages like C++, Nim, D, Rust, etc.), but Mono(C#) could also work out.

I managed to compile Godot 3.2.3 on the GameShell with a few source code fixes, tried running one of my games (Gumgem by DAZEL) and it worked, even with the lima driver. (Audio still a bit distorted)

I’ll share the export templates and the steps required to build them in the coming days!

EDIT: my code fixes have been merged upstream in the Godot repository, 3.2.4 should be ready to go when it comes out!

5 Likes

Here you go! Export templates and build instructions!

I’ll also add details and suggestions to make a Godot game work as expected in a few days!
Maybe I’ll create a new topic, so that this guide will be more discoverable for new users.

3 Likes

Helloooooo sprite batching.

Also, audio issues seem to be fixed!

Think the one big thing that would come in handy would be working GDNative. Thanks for your work, btw!

1 Like

I’m trying to follow in your footsteps and the info you shared in this thread is very helpful. I can run 2D projects just fine on 0.5 with lima at about 500fps for a basic test which gives me hope that perhaps a simple 3d game could also work? Unfortunately I can’t seem to compile the latest stable Godot 3.5.3 version on the device itself, it keeps crashing perhaps a memory issues as I’m limited to 512mb + 4gb of swap. But perhaps @ArcOfDream could share the steps to cross compiling it

So as for my tests, I come bearing great news. I was able to successfully run a 3d demo project at acceptable FPS rates. In summary I’d say that you could easily make a PS1 style game for GameShell, you’d just have to be really careful with your resources, you can see from the video that you can even get some basic physics working fine, but it drops the FPS significantly meaning that the bottleneck is the CPU, as for the GPU I was pleasantly surprised, the video below uses unoptimized textures (64x64px png although compressed to VRAM). But it handles small scenes with baked lights just fine, this one had 1 directional light and 2 colored omni lights. The meshes were exported from Blender as for some reason primitive meshes generated by Godot didn’t work for me. Also a basic vertex shader worked fine (the rotating red object).
As to how I got here: I compiled Godot 3.5.3 on the device, although in hindsight I’ll be doing cross-compiling in the future as it takes ~2h with all the modules enabled.
I was also tempted to get FRT working just because the “Cannot create framebuffer” error bugged me and it took me a few days of research and trial and error up to the point that I switched out FRT’s GLES loader to Godot’s and made quite a bit of code changes only to learn that it’s just basically impossible when running within X11 as it requires GLX to render and FRT is using EGL which is totally fine, there are 2 options here:

  1. Start an X session with indirect rendering, which totally kills hardware acceleration
  2. Switch from X11 to kms/drm which will let FRT do its thing as it was mean and improve performance as fewer resources will be allocated to X.

I will create a repo with the sample project and a compiled Godot binary to run the pck file.

I’ve given it a bit more work and setup an itch page so that you can check it out: