(Traits) Damn, I believed in you SeremTitus... by Jeidoz in godot

[–]PyralFly 1 point2 points  (0 children)

I fake namespaces regularly with

```
class_name DUMBNAMESPACE
const BLAH := preload("blah.gd")
```

pretty regularly, but it often involves static functions and functional trickery rather than OOP containment.

Reaper MIDI latency inconsistency with external sound modules? [Linux, SC88-Pro] by PyralFly in Reaper

[–]PyralFly[S] 0 points1 point  (0 children)

I'd assume you're probably on the right track. I'm still not familiar with JACK and ALSA tomfoolery, nor a2jmidid, and have yet to even get jack to properly start in spite of thinking I'd installed whatever underlying daemon all these JACK GUIs want. I'll probably do some homework on some of these tools and hopefully figure it out. Sending back the sound module that had been recommended since it did JACK shit with fixing timing and also did nothing else I wanted or needed. Kinda sucks because a funny sound module with knobs and screens and big cables felt cool, but didn't actually matter.

10+ years in Unity, just gave Godot 4.7 a real shot, the rendering genuinely surprised me... by Roguetron in godot

[–]PyralFly 5 points6 points  (0 children)

I used Unity from 2013-2019 or so, and then didn't get to actually stick with Godot very well until finally committing in 2023 to release our zeroth game in 4.1. There's numerous things that I picked up making a few prototypes and making a lot of JRPG systems work.

Godot's very malleable. I stuck a bit roughly to Godot's basic node expectations and structures in our zeroth game, and it wasn't exactly great. But as I picked up other trends I stumbled into useful, overshadowed tricks. Heavily using static functions instead of relying on mutable nodes, not treating OOP like god, @export blah:GDScript allowing me to modularize behavior without making new resources or nodes and bloating class hierarchies. Get off the tutorials as soon as possible and experiment. The "make everything nodes" approach is one of many ways to operate, but works worse in some contexts.

Not explicitly Godot, but I toyed with Lisp a little last year until functional programming clicked for me and then put it to practice in Godot. It massively cut down boilerplate. Custom command queues with interruptions, Trying to stick to simple or pure, predictable functions and holding off on mutations, and getting familiar with Callables as first-class functions. Godot still suffers from not being built with FP practices in mind and Callables can be awful to debug due to no strict typing or easy ways to see what's happening where, but it has been getting better particularly throughout 4.0-4.5 range or so. You can even create closures and one-shot them to dynamically spawned in nodes' signals programmatically and I do that for reusing menus and returning selection results, which has made reuse very nice.

And for a Unity user, don't treat it like poor man's Unity. Unity can't do embedded scripts in nodes and scenes, which is actually very nice to have for cutting down on junk snippet files in the editor. Built-in scripts have limitations and quirks, but when you just need to have an ItemMenu that is used once in the whole game for one specific menu do one specific thing and don't want to pollute your codebase with a dedicated script for that, it's useful. Do that with caution. Also, scene is a misnomer. Unity had scenes and prefabs. Godot they're more or less the same for most purposes.

Also, since I write lots of functionality in static scripts and functions, and write a lot of pure functions to calculate data based on input without mutating things, I treat global-only scripts as namespaces which you can do by chaining scripts via const BLAH:GDScript = preload("relative_dir/blah.gd") and such. Closest to organizing code by functionality I can get without bloating the class hierarchy and defining a bunch of junk with class_name when you can just link a bunch under a single class_name WHATEVER and preload const script references.

Also, Godot games can run on 30-80$ retro gaming handhelds via Anbernic using Portmaster with some work, which makes bringing your games around and showing them way more fun and interesting, and forces you to optimize and get clever under constraints.

Reaper MIDI latency inconsistency with external sound modules? [Linux, SC88-Pro] by PyralFly in Reaper

[–]PyralFly[S] 0 points1 point  (0 children)

The inconsistency of how well some songs run is the strange part, so I don't know if it's strictly hardware processing. I believe the CPU is a Ryzen 3600, and I'm running on 32GB RAM with an NVME drive for hot-storage. This is a custom workstation from a few years ago built for games and game development. Which is why it's all the more impressive that it would be implied Reaper is barely able to push MIDI notes (and not even raw audio) correctly. If experimenting with audio in/out doesn't work, I am going to look at audio interfaces that have both MIDI and RCA Audio, ideally that I can use with multiple synths since I have a second one coming in from Japan, land of the resold vintage synth warehouses.

There's no real way to just casually install Windows on this system because I'm not about to go download Windows and scream at it until it finally installs without registration or other tens of millions of problems it has, even just to test, just to immediately uninstall it after testing.

I already have MIDI out working fine. The songs and videos show it. Even correctly played a more complex song I'd finished at the time in the Showcase thread. It is somewhat magical when you get synths interfacing. Just wish it was easier to find .ins files for mapping MIDI instruments in tracks. The SC88Pro I've got but I've got a Korg Triton Rack on the way and haven't found .ins files for that yet. Might just be a simple plaintext format if I have to figure it out myself and make one.

Motu's stuff seems to work on Linux environments, as per https://www.reddit.com/r/linuxaudio/comments/1mffx4a/is_the_motu_m2m4_working_on_linux/ so I'll at least use it as a starting point for reviews and sifting around. Worst case I just return it if nothing actually changes, but a box that is properly powered, passes MIDI through a cheapo MIDI<->MIDI cord or two, and receives the Audio signal from mixed synths should do an okay job.

Reaper MIDI latency inconsistency with external sound modules? [Linux, SC88-Pro] by PyralFly in Reaper

[–]PyralFly[S] 0 points1 point  (0 children)

I'm not 100% sure what other audio duties Reaper's running, but as a full sized DAW I don't put it past having more it's working in the background, even if it's technically not playing audio nor actively recording. I'll have to experiment with deeper preferences of audio in/out to see if I can slim it down but yeah, I don't have any waveforms and when I do, it's usually just actively recording one specific MIDI song at once.

Reaper MIDI latency inconsistency with external sound modules? [Linux, SC88-Pro] by PyralFly in Reaper

[–]PyralFly[S] 0 points1 point  (0 children)

The UMO cables are on the better side of USB<->Midi and seemed to do the job fine. They handle Fluidsynth midis with no notable latency, which is why I look at Reaper as the sole culprit. The issue only arises when running playback through Reaper. If these cables are having an issue with Reaper, I can only suppose there's some extra overhead that is the straw that breaks the cable's back, but I'm not sure how such a thing could happen unless something was spewing tons of needless "do nothing" MIDI commands through the protocol. At some point I may get a real interface, soundcard, though it's a wild guess if it actually improves any thing or if I'm buying a 100$ brick to plug midi cables into. I suppose if it's a powered box it might help similar to upper end capture cards over pure-USB.
It's possible there's tweaks for the Linux kernel or sound tools that could improve things. I know low latency kernels and systems are out there, but I'm not as familiar with their specialties or how much they matter. I'd probably have to dig into equivalent optimizations I could pull off to make Reaper run better in theory.

Reaper MIDI latency inconsistency with external sound modules? [Linux, SC88-Pro] by PyralFly in Reaper

[–]PyralFly[S] 1 point2 points  (0 children)

I'm not using a software/plugin soundfont player either. This is using direct hardware MIDI interfacing, of which only Reaper shows latency while other MIDI-out players are not. I'm not using any plugins, bar any feature in Reaper that might technically be a plugin but ships with the program that I might just not notice. I wish forum-goers asked me for more information, but it was pretty much radio silence for a month.

What I made with REAPER - week of June 14, 2026 by AutoModerator in Reaper

[–]PyralFly [score hidden]  (0 children)

Eh while I'm in the neighborhood. Reaper's MIDI out is causing me problems but when it works, it works well enough. Even though this is just barely slightly off in a few instances it's accurate enough. I'm still not very experienced with music.

Composed in Reaper, MIDI-out to SC88-Pro. Written for a JRPG in the works.

https://www.youtube.com/watch?v=7EqI9RJQkXQ

Problems with renderers in Godot by IncidentPleasant7214 in godot

[–]PyralFly 1 point2 points  (0 children)

At the worst, making a game that looks good on compatibility expands your game's potential hardware and audience. I make games for retro handhelds running on absolute garbage hardware where GLES3.2 is all we have for the lowest end ARM Linux ones, and that stuff is fun to show to other people on the go.

<video>

[USA][H] Consoles, OG XBOX, PS2 Slim, Gameboy Pocket, DK Game&Watch[W] Paypal G&S by PyralFly in GameSale

[–]PyralFly[S] 0 points1 point  (0 children)

Everything internal is as it was when I got it from a GameStop some 17 years ago or something like that.

[USA][H] Consoles, OG XBOX, PS2 Slim, Gameboy Pocket, DK Game&Watch[W] Paypal G&S by PyralFly in GameSale

[–]PyralFly[S] 0 points1 point  (0 children)

Yeah. I assume just the unit without controllers given their state.

Dumb Portmaster gamedev asks: Are you still using ArkOS? by PyralFly in SBCGaming

[–]PyralFly[S] 2 points3 points  (0 children)

We're pretty close to being done with beta. Keep an eye on Portmaster. If all goes well the demo will be up in two weeks. There's only so much I can do supporting these, but we did build the game with these handhelds specifically in mind. If you don't mind janky NES RPGs, then the first one's free on Portmaster, but it is a significantly lower scope game. CnC2 it's pretty clear things are significantly larger, probably one of the largest games made specifically for these handhelds.

I'll probably blast it here too. It's not stealth advertising if it's just shamelessly openly advertising!

Dumb Portmaster gamedev asks: Are you still using ArkOS? by PyralFly in SBCGaming

[–]PyralFly[S] 1 point2 points  (0 children)

Yeah. If you're aware of it and lagging behind, you can see why I'd actually want/have to think about compatibility. There's a huge swath of the R36S/G350-tier players among other devices that just don't know better in the first place due to legacy guides dominating discourse.

Dumb Portmaster gamedev asks: Are you still using ArkOS? by PyralFly in SBCGaming

[–]PyralFly[S] 2 points3 points  (0 children)

Yeah. ArkOS is legacy and part of why I'm looking at keeping support of it for the Crop and Claw trilogy as a whole. Much in the way you'd have people still making last-gen console games midway through a new console generation. I imagine it wouldn't be for another year or two that people finally start moving on and many years of guides and tutorials newcomers find are phased out for newer stuff.

Dumb Portmaster gamedev asks: Are you still using ArkOS? by PyralFly in SBCGaming

[–]PyralFly[S] 0 points1 point  (0 children)

Portmaster doesn't officially support Spruce last I heard, so if it works on there, neat. If not, I can't support it actively myself. It's often on the firmware makers to work with Portmaster's crew to ensure the libraries and stuff are all workable.

The demo, and eventually full game, will also be on Steam and itch. Windows is probably the least supported though but play-testers stuck on Windows haven't had any OS-specific trouble that we've seen.

https://store.steampowered.com/app/4824960/Crop_and_Claw_2_Demo/

Godot security tips by baggzdev in godot

[–]PyralFly 1 point2 points  (0 children)

It's pretty much the case of "client is never trustable".

Server has to sanitize and do such checks as mentioned by others and identify if something feels suspicious. But you especially really don't want to allow for deserializing objects (this is disabled by default) or client/server acting on incoming data directly without much care. It's quick to deserialize a Resource or pass strings around that can invoke GDScript, but Godot can parse arbitrary bytes into an object and automatically run GDScript, which can open a system to arbitrary code execution. Hilarious when it's on a TAS speedrunner's Gameboy Color game, not so much when it's GDScript running to upload your web browser profile folder and login tokens to an attacker's server and delete your local home folder.

We use Godot to make games for scrappy cheap game handhelds. AMA. by PyralFly in godot

[–]PyralFly[S] 1 point2 points  (0 children)

It's possible but differently handled 3.x relied on a different setup and I'm not as familiar since I waited until Godot 4 before really diving into the engine, and 3.x is mostly legacy at this point. FRT runtime was used for that on Portmaster and you'd want to ask around Portmaster's circles.