This is lovely, my friend. My own experience with shaders was in building a custom spectrum analyzer and I found it so very enriching and different from what I usually program (ML and Data pipelines).
How?! How did you get PyGame not to be so brutally slow? Is it basically that all the graphics are done separately and pygame only offers up IO and game loop?
This is just brilliant and wonderful and beautiful. The premise of this game is just amazing.
If you offload graphics to the GPU (which is what shaders are), there's surprisingly little CPU work left in a 2D platformer game.
Think of (fragment) shaders as programs that run in the GPU per-texture-pixel. There is some initial CPU/memory-bound work setting everything up (e.g. uploading textures to GPU RAM, compiling the program, sending vertex buffers...) and then per-frame you just call the shader with some parameters (e.g. character's current position) and the GPU does the rest.
In-CPU you mostly do the non-parallelizable work such as collisions, game logic, keyboard input, etc. which can be very light for a simple 2D platformer.
The original PyGame used software rendering and thus was very slow, but I believe a relatively recently released new version uses hardware (GPU) rendering. That's probably where the shader support comes in too.
pygame isn't that slow if you use pygame 2 that depends on SDL2 (2D hardware acceleration, yay!) or go with OpenGL directly.
I used to do a lot of amateur gamedev with Python (pygame and pyglet). If most of the work happens on the GPU or external libraries, it is usually OK if you aren't doing anything stupid.
DaFluffyPotato's channel is filled with lengthy explanation videos and dev log streams showing the processes his code, pixel art and music composition.
If I recall he also makes code available via Patreon.
but i heavily dislike that they offer not writeback to fbos and pass structure by default.
Lots of things impossible thus. Its freaking swarm of embedded devices, just give me the controls already
Love your youtube channel. However, you should consider releasing a version of the game without this effect being on by default. Maybe it's just my mammalian brain scared of snakes...but not being able to see clearly where you're going is disorienting, unnerving and doesn't feel comfortable.
https://m.youtube.com/@DaFluffyPotato/videos