started to rearrange things in the eframe template, it'll look better later
started learning egui
dw there's no gui cause I have to write the backing code and rust doesn't let you make MVPs that fast but that's ok
I learned that getting audio to sync properly seamlessly is very hard 😭 and slowness because js only makes it harder
reinvented a task queue meant for a distributed web scraper project
this was sorta an arcade side project so it didn't get much love and isn't as interesting as my other ones
Made set of scripts for Windows (yes this laptop I have is specifically for windows and not linux) wifi hotspots for that one intel laptop I have that optionally works with instable internet to allow people to access a jellyfin server only
picture doesn't show much but yea you can setup ssl while you have internet see repo github.com/javaarchive/xcontentmanagerd
prob will work on a daemon in the future to manage this but for now I wrote some bash scripts for windows
next up is a bit better mobile support, I tried adding some gestures for the future settings menu as well as completley removing the sidebar
the fullscreening video bug got fixed later but the video is a bit olderDouble scrapbook time! first up, VERY limited controller support landed in my google stadia cloneish thing that streams content realtime over webrtc, one of the best cases it works in rn is Celeste and it's my most used test application atm
this is technically incomplete as I plan to make a better solution that works with a significantly larger amount of games in the future via something more hacky but it works and it let me establish an ok protocol for this
sorry for bad recording with phone (iphone se moment) and also I had to hold my phone in one hand so I couldn't actually play the gamekeeping this one short and simple
Mouse is now supported in my streaming thing (in absolute positioning, i haven't got a good first person game to test yet)
(please forgive my wifi it has been running in degraded capacity for reasons that are hard to explain, I'll do congestion control logic later)
next scrapbook is when I get gamepad input working =)I've hacked in support for hooking unity games in my new google stadia ripoff homegrown application/game streaming implementation, so now most SDL games and Unity games should be supported.
Note: keyboard input only, mouse + gamepad support is coming soon.
Here is a video of it working with the GOG copy of Hollow Knight. also i plan on testing this over the internet with lots of ppl sometime in the future (there may be a slack channel created for this)
I wanted to record a video of the stream on iphone side by side but as I found out you can't have picture and picture playing while an application is using the camera in ios
(once again the frame drops are because the machine running and streaming the game is also recording this scrapbook video at the same time lol so it's deciding to drop frames from my windows laptop, the game is actually much smoother on the actual testing laptop)
not depicted:
• various performance enhancements and network stability things
• window focus lost events are now dropped so you can run celeste and other FNA games without requiring it to be focused on the host, thank god FNA is open source otherwise guessing how the logic works would be a bit annoyingalso second scrapbook because sessions limit I got hardware accelerated video encoding working for vaapi supported gpus which works well with my amd igpu, in fact nvenc is unoptimized and laggier rn
I also just wanted to show that it works better on my phone which was not made in 2018, and is in fact more recent than the potato laptop used as the client depicted above(part 1 of 2): In the last few days I added input to the thing that is like a generic google stadia ripoff
as you can see, this is quite a minimal proof of concept and I have not yet optimized the lag (I am not really that bad at Celeste). Maybe this is because the wifi adapter in the laptop I'm testing with sucks?
I'm now testing with Celeste instead of Supertuxkart (which I would prefer because it is a bit lighter) because FNA games actually use SDL2 for input as well and the current input injection only covers SDL2 games.
I am manually clicking at the start of the video because the game ignores inputs if the window isn't focused (spoofing feature for that soon).first mvp of "universal" linux application streaming project, testing using supertuxkart but there are a lot of things not supported yet
• encoding is laggy since it's not hardware accelerated, it's using vp8 on cpu rn which is why obs is dropping frames
• it supports anything opengl + sdl2, not sure about sdl3, and some basic glx things
• idk what happened to the frame pacing
• the capture method is subject to change, esp since I want to support vulkan
• I should prob also optimize encoding parameters later
• oh yes this is rust debug mode, release mode makes it slightly faster
• not much of a frontend purpose, might be obvious
• todo: implement input (a lot easier)Made a better than google chat ai summary thing with phi3-instruct-128k 😃 as a discord bot as part of my new monolith (no more single purpose bots yay)
also made a less useful reply with ai feature to make unhelpful posts
So after maybe a few years of writing single purpose non-application-command based discord bots, I have decided to consolidate things and implement slash commands for the better ux and ui you get and build a more general framework. For this framework I basically implemented things that would make sense to share between modules
• permission system as a module itself, very similar to luckperms in minecraft if you've ever used it, allows very fine grained control based off your choice of role, channel, guild, or even by user id.
• each module can register commands and the system will automatically interpret CommandInteractions and route them to the callback you registered, similarly it does this for other interaction types like autocomplete
• permission system actually is more of a general config system since you can put things other than booleans
• automatic validation for known data types in permission system or custom if you specify it
• permission names autocomplete, this was a big concern because memorization should not be required.to this day I am still confuzzled why modding my favorite platforming game to work in browser causes this sort of malfunction (warning: possible Celeste Spoiler ahead)