Just came by to say the same! I finally got a chance to test it and all seems well now! The only other things of note is that some of the Handy scripts are a little too detailed for bluetooth to pick up every movement, so perhaps a suggestion for the future is to add in Handy wi-fi key support, though I imagine that’s rather far down the list in terms of priority. All in all, great work! I may even make some for this myself. ![]()
Videos have to be H.264? Any reason you didn’t go with H.265? would cut file sizes down quite a bit, since even the smallest ‘journey’ is several GB.
The project uses a ffmpeg godot addon to decode videos called EIRTeam.FFmpeg
which only supports .h264 unfortunately.
My options are:
- I can rebuild the addon myself to add .h265 support
- Find another decoder addon for godot.
Both would be fairly significant levels of effort. I’ll spend some time this weekend looking at the other decoders available and see if there is a quick win there.
I agree with you though, the file sizes will be pretty big regardless.
Adding Wi-fi key support to my dev board!
The ZZZ Journey should be good enough to be uploaded when you get the chance, SaekoM! I am sure there will be a couple typos in it, as I basically wrote the whole thing in 24hrs. If anyone runs into anything bothersome or has suggestions please let me know. I sadly had to skip a lot of really good videos that had HQ Patreon funscripts, but I did not want to move forward without creator permission on those. All credits are linked to the Round name for those interested in the source.
I hope you all enjoy!
Slow clap…
Wow… just wow~
Literally amazing!
Are there future plans for VR support?
I can’t test for a few months, as I am away from my main set up, but I have so many ideas for this. Well done on a stunning contribution to the community!
Currently none. I’ll put it deep in the backlog though. I’m not sure what it would take to make it VR compatible but it’s something I’ll think on!
Would love to see what you come up with! Thanks for the compliments!
Technically, if you use SBS (2 full-resolution videos side-by-side, making the end video double-width when viewed in 2D) or ½SBS (2 horizontally compressed videos side-by-side, making the end video normal width but horizontally distorted when viewed in 2D) video for the Journey, then use something like Virtual Desktop to stream the video to a headset (since I have a Quest 2, I’m most familiar with the setup for it), it’ll work in VR right now, though that might do interesting things to the HUD and UI elements.
Godot apparently has some pretty robust built-in OpenXR support, so it actually shouldn’t be too hard to make a VR version, since you’d only need to:
1: Setup the HUD and UI elements for full 3D support (basically just making sure when it splits the UI into the 2 separate video streams, they recombine properly to the user, instead of getting double-vision)
2: Setup a screen for 2D video to play on.
3: Detect if a video is sbs/½sbs (maybe even OU/½OU as well, which are like SBS video, but vertical instead of horizontal), this can be done simply by requiring videos have “[sbs]” “[halfsbs]” or some other tag in the file name if they’re VR video, and display the correct video to each eye’s display.
4: Setup VR controls for the HUD (though just keeping it to mouse controls should be fine unless you try to make a native Quest version…but the Journeys would eat up the Quest’s storage rather quickly…)
Honestly, you could probably hammer it out in an hour or two.
Most of this wouldn’t really apply to this project, but I’m sure there’s going to be a section on setting up a HUD and UI elements.
One of the most helpful features I could think of at the moment is some ability to copy-paste. Videos aren’t too bad inherently, as at worst I can just copy the title then re-add the video and FS by searching it. However, the Storyboard sections are really a pain to move, and that got apparent when I decided to change forks mid-writing. I see that the modules have a Paste option at the bottom, but I may have missed how to actually generate a copy line to move them. In a saved journey, the character names and (and ESPECIALLY the variant icons for them speaking) become the hard cap on properly moving the Story module somewhere else with a normal CTL+C / CTRL+V.
If a quicker copy/paste at the module level got implemented, I’d probably move Choice 3 down to a new branch and make it part of a split Act 2 prior to the finale, so there’d be two large branches that reconvened for another large split, instead of the whole thing splitting after the first video and ending with the finale when that branch concluded.
This all being said, I would like to reiterate how impressive this project is, and don’t want to give you any sense of burnout. I’m sure you expected some level of bugs/requests after releasing a project this big, but it is in a fairly stable state as it is now. Moreso that that, it’s fun both to create and use! Cheers ![]()
There currently isn’t a copy function for storyboards. There is an ability to paste them as you’ve mentioned. I’ll think hard about making the builder more intuitive. Maybe a Ctrl+C, Ctrl+V function or drag and drop re-ordering at the node level.
I will also put more thought into making videos easier to import. Not sure at the moment what the direction is there but I’m sure I’ll come up with something!
My entire goal is to make the building process as easy as possible. If it isn’t easy, people won’t do it!
Anyways, really appreciate the feedback. I was honestly wasn’t expecting the project to stabilize in the few days of the initial release so I’m happy with achieving that.
If you have any more feedback/ideas/criticism about the builder or anything for that matter don’t hesitate to let me know!
Reporting back on this:
I’ve decided to not add Handy Wi-Fi support unfortunately.
My reason:
The Handy API mainly supports an upload and play model which goes against the entire runtime modifier system I have built. You essentially have to upload the entire script first then the handy is synced disallowing any modifications without reuploading the entire script.
There is a streaming api endpoint but with making dozens of api calls per second it will have the same performance as using the intiface bridge I have currently implemented.
I could spend some more time thinking on how to improve the handy experience but it will be difficult considering I don’t own the device myself.
Nice project! Finally something that actually works and is easy to use. It even works on Linux through wine ![]()
Listed journeys work as well, but when I try using my own videos to create a new one, nothing plays. I assume it’s because of the video encoding. You mentioned only h.264 is supported, but that’s a video codec, what about audio, is acc fine? I’d rather ask here before I start transcoding all my videos ![]()
Would be nice to add that information to the first post for others to know as well.
Well, gonna answer my own question since I did a bit more testing. H264 with AAC (I made a typo above) works nicely. Not sure if the transcoding should happen automatically when the journey is saved but in my case I was always getting black screen when running the journey. When I transcoded videos before adding them to journey everything works.
To have a video file with a reasonably good quality and small(ish) size just run:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -r 30 -c:a aac -b:a 128k -ar 48000 output.mp4
Increasing crf can reduce file size but it will also reduce video quality. Also, 30 frames is enough, not sure why they put 60 or more in most videos, there is really no difference in quality between 30 and 60 fps when playing (I might be blind though
).
Thanks, I’m glad you found it easy to use. That’s the goal!
Transcoding on save was a design decision I deemed worth the hassle. I’d rather it be transcoded and playable than not at all. Users could transcode it to their own preferences beforehand but not everyone wants to go through it.
I could potentially offer transcode settings you could configure for your own preferences. I’ll add it to my dev board as a potential enhancement.
I’m kinda new to this stuff and I was hoping you’d know why my Handy 2 Pro won’t appear on the scan list. I watched your video and have Intiface downloaded. When I run it, it connects to the game but when I try to scan for available devices, my Handy doesn’t appear. Do you know what the problem could be?
Are you sure your Handy is in Bluetooth mode?
Hold the mode button (the bottom most button) down for 5-6 seconds, until the light starts alternating blue and purple, then try connecting it to iniface.
RE transcoding - the problem was that autotranscoding on save didn’t make the video playable (or didn’t even run), I had to do it myself. So either something is broken, or the video I used didn’t play well with autotranscode, or the app couldn’t use ffmpeg for whatever reason (maybe because I was runing it through wine). However, an option for this will be perfect. And I think it should be enabled by default to simplify the life of others.
Also, if you are calling ffmpeg under the hood instead of embedded lib, then it would be nice to have an option to define the path to the ffmpeg in your system instead of assuming it’s just available on the PATH.
Another idea, have you though about native linux build? You’d be surprise how many people actually run linux on their machines ![]()
oof. I’m guessing ffmpeg and or ffprobe silently failed to launch and the app copied over the videos regardless.
Yes, the app is calling ffmpeg under the hood to perform transcoding. Currently the command is as follows:
ffmpeg -y -hide_banner -loglevel error
-i “input”
-c:v libx264 -preset fast -crf 22 -pix_fmt yuv420p
-c:a aac -b:a 192k
-progress user://transcode_progress.txt
“output video.mp4”
Yes, it’s on my board slotted for the coming weeks.
Some Key Takeaways to add to the board:
- Add ffmpeg and ffprobe custom path options
- stop trusting unverifiable .mp4s when ffmpeg can’t run. (throw an error)
- Make transcoding a toggleable option (on by default)
FYI I am planning on releasing v0.2.0 which introduces checkpoint nodes, a checkpoint item, and numerous QoL for the builder experience (think copy, cut, paste, redo, undo, multi-select and more!)
More details to follow once it’s tidied up! I’m shooting for a 06/03/26 release day.
One more update, I am creating a discord for both this game and my scripting. I realize sharing through the forum isn’t super intuitive, in discord catalogues you can freely post your journeys and browse others. It’ll be easier to communicate with me directly and to stay up to date on upcoming changes. I think it’ll work well.
It would be great to have a Discord once this forum falls into the older side of forum visibility. I am excited to see both the Checkpoint and Copy/Paste come into the Builder!