Beta 2025.8.20.1298

From Resonite Wiki
Revision as of 10:27, 22 August 2025 by J4 (talk | contribs) (add note about major update (via SublimeText.Mediawiker))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Beta 2025.8.20.1298 is a Resonite version released on 2025/08/20.

This version is alos nicknamed "The Splittening" and is a major update.

The following notes were sent by Frooxius:

It's here! The biggest and most technically complex update we've done to date - we ripped FrooxEngine out of Unity and let it run under modern .NET 9 runtime, bringing with it massively improved framerate, significantly less hitching (with many straight up gone!) and drastically improved startup & loading times.

Based on the survey we did a while back, it was clear the performance was our #1 problem. You wanted us to improve the performance and this is the update that builds upon all the foundational work - the type system, PhotonDust (our own particle system) and Awwdio (our own audio system) and frees our engine from the shackles of Unity's slow Mono runtime, giving everyone much smoother and snappier experience.

And that's not all! We have a brand new Help Tab in the dash, which should help new users especially get more familiar with Resonite. A number of big issues were fixed too, like a number of problems with the reflection probes!

Is this the end of performance updates? Switch to .NET 9 is not the end - it's the beginning of new phase for FrooxEngine! With a modern runtime, we'll be able to implement a number of additional optimizations that we were previously not able to. You'll see some additional improvements in the upcoming weeks as we polish things.

There are also many bigger optimizations we will do in the future - data model rework, more multi-threading, variable rate updates and more - we are nowhere near the performance ceiling for Resonite. However we will focus on some other things for a bit before that - some other things need some love first.

Does this mean we're no longer using Unity? Not yet, but this brings us closer. By separating FrooxEngine outside of Unity, we have much better defined boundary between the two - so much so, that some community members already have partially functional alternative renderers!

Since we're pretty much using Unity mostly for rendering, we plan to replace it completely with a better renderer in the future too - we'll have more on this soon(ish) and we might need your help.

This update is thanks to your support This update has been a big and long journey - the hardest and most complex we've ever undertaken - and probably one of the most unique ones from technological aspect. Inspired by web browser's multi-process architecture, we might be the first game(engine) to employ this type of architecture - most certainly the first Social VR sandbox to do so.

Not only that - we've achieved this with a fraction of resources and funding that other projects have and majority of that came from you, our community and supporters. For that, we owe you a huge thank you. Your support is what keeps us independent and focused on issues that are most important to you.

Since this is a major update, we're including the names of everyone who's been supporting us - your names will be forever part of this big update.

If you'd like us to keep going and make more updates like this, please consider becoming a supporter too and getting your friends to support us too. We're a small team and we need your help to keep going. Not only will your name be part of future big updates, you'll get a number of perks in-game too!

Resonite Sponsors SiderealScout, Hikari Akimori, Xekri, Earthmark

Large supporters BigRedWolfy, VRxist, brodokk, ChevronSeven, bd_, JackTheFoxOtter, Skielsthear, Rixx, Meteion, Ikani, Lexevo, StiefelJackal, holmebrian, badhaloninja, MIRA_sk, Tacusin, vizi, Micro, ARandomMeatball, KierDran, MkE, Xyphurr, Keith, rhenium, Zyzyl, Water, Faeith, LotusGaming, TomTom20

Pre-release testers And last, but not least - huge thanks to everyone who participated in pre-release testing! We've likely had the biggest engagement with a pre-release to date and it's thanks to these people that we've been able to chew through issues and stability problems as fast as we could and make the build as stable as it can be for release.

Venport, jvyden, epicEaston197, Modern, Kulza, Kav, kaestral, Kresny, bd_, hantabaru1014, Halo, Zyro, Cloud_Jumper, fulgens, Nytra, Purpzie, orange, Jack, bredo, Foohy, ginjake, Zozokasu, ohzee, KarasuTengu, troyBORG, Redd, e1ght3, Colin, Gawdl3y, UltrawideGamer, navy3001, Snuhr, Cyro!, Kyu, AlphaNeon, Luki, Raidriar🐧, Fin, S-573, FoxoBread, Baplar, Phil, Cyro, Flame, Foolish, Stella, Psychpsyo, Ace, Moonbase__, Dante, Draconas, Udyne, Xau, Aegis_Wolf, tabby, kazu0617, Decoy, Noble, Nexulan, qualia, Wolpy, socksthefennec, harumaki021, Nuki, SlyTheFloof, Sylva, Alex, Jae, mpmxyz, Noel, Kyuubi, Nulhomme, Tobs, 🦝GoldyRaccoony🦝, hare_ware, Axеl, TheJebForge, Pariah, Syon_, ProbablePrime, Ryuvi, RueShejn, Zyzyl, Bionite, Lexie, 989onan, Tulip, jonnyawsom3, Toni, Lux, GONT_3, shininghero, Tekno, Grand, Zenuru, Banane9, Readun, Pyroboy, Charizmare, Muppeq, wolf_seisenbacher, TheBlackParrot, Alex_2Pi, Foxbox, Defhammer, yosh, Shadow, Canadian_RedZ, Kawwabi, Papaltine, SylviaAnim8or, Hikari, Sejden, MirPASEC, Fuzzy and more! (I apologize if you're not included, these are auto-generated from all the changelogs!)

Can I test & compare previous builds? Since this is the biggest update we've done, if you need/want to use the previous builds, we've made two new branches on Steam: `pre-splittening` and `pre-splittening-headless`. Those contain current release and headless builds (password is same as normal headless branch).

You can use these for benchmarking & comparisons for the immediate future, but they **will not be maintained**.

We also strongly recommend using separate database for these with `-Data <path>` and `-NeverSaveDash` arguments, as the database between the two is slightly incompatible.

What comes next? As with every big release, there will likely pop up a number of issues with this - plus we have some still left over from the testing. We'll work on sorting those out as fast as we can to stabilize things.

We also have a number of additional improvements coming up too, which should squeeze out a little more performance out of this update and add additional features - like ability for the renderer to reboot on crash, without crashing the whole engine! You can find more here: <https://github.com/orgs/Yellow-Dog-Man/projects/50>

Once we're done with the post-release polish, we'll transition into other smaller tasks and then the next big project - which is yet to be decided!

Changelog

Optimizations:

  • Reworked engine to use a multi-process architecture, allowing to run FrooxEngine outside of Unity with modern .NET 9 runtime (which has significantly better JIT codegen & significantly better garbage collector) (requested by pretty much @everyone, issue #706 and #2429, implemented by me (@frooxius) with contributions from @bluecyro, @gawdl3y, @j4.lc and @probableprime)
    • This massively improves overall framerate
    • This also removes large amount of hitches and significantly reduces others
    • The new architecture also significantly improves asset loading performance, drastically improving load times
    • Startup time has been drastically improved
    • HTTP 2/3 is now supported for API & asset downloads thanks to .NET 9, with default concurrent downloads being increased to 100
    • Linux now uses hybrid Linux-native .NET 9 architecture with only renderer under Proton for improved performance
    • Generally everything across the board is just faster now, some things more some things less, some HW will experience more, some HW less, but overall should be noticeable improvements!

New Features:

  • Added Help Screen to the dashboard to provide easy to access information about how to use Resonite (issue #1123, implemented by @aegis_wolf, @ryuvi, @rueshejn)
  • Added TryEnumToInt<E> & TryIntToEnum<E> nodes which can convert any integer type to/from enum with graceful fallback
    • These nodes can be used to convert integer types that do not match the backing type of the enum
    • When the value is out of range a fallback value is outputted
    • TryIntToEnum has optional OnlyDefined - when true, any integer values that do not map to enum values will also fail, even if they're in range
    • Old instances of EnumToInt/IntToEnum nodes are converted to these to fix breakage due to enum changes (reported by @.fulgens, @axel_el_gato, issue #5153)
  • Added ReflectionProbeMetadata which provides statistics about the probe (currently number of times the probe has rendered in OnChanges mode)
    • This info is also displayed in the inspector under the ReflectionProbe
  • Added native support for BGR565 textures with DX11
    • RGB565 textures will automatically fallback/convert to BGR565 on DX11
  • Added "studioNameLong" and "studioNameShort" as global localization attributes that can be used in any string (requested by @rueshejn, implemented by @probableprime)

Tweaks:

  • Made OnUnitCircle, InsideUnitCircle and OnUnitSphere random distributions uniform (based on issue by @yoshiyoshiyoshiyoshiyoshyoshyosh, brecert, @ohzee, issue #4142)

Locale:

  • Merged English locale updates by @modernballoonie, @zyro1331, @muppeq
  • Merged Chinese locale update by modimobeikete
  • Merged Chinese (Taiwan) locale update by @meowwei, msparkles
  • Merged German locale update by @muppeq
  • Merged Esperanto locale update by @sejden
  • Merged Russian locale update by @troyborg
  • Merged German locale update by @cameron5
  • Merged Korean locale update by @mirpasec
  • Merged French locale update by @baplar
  • Merged Japanese locale update by @kazu0617, @ginjake, @zozokasu
  • Merged Swedish locale update by @fuzzybipolarbear

Fixes:

  • A number of issues related to the generation of reflection probes have been resolved (implemented by @probableprime)
    • Client-Side Asset Variant Generation is now correctly thread limited based on your computer's CPU. It was previously unbounded particularly in Block Compression which is used for Reflection Probes.
    • Reduced the quality of BC6H & BC7 image compression in Asset Variant Pipelines from 0.6 to 0.25, this results in up to 50% reductions in the time it takes to compute these assets. All with no perceivable difference in visual clarity of those assets.
    • These were all found/reported in Baking reflection probes causes my game to freeze horribly and take almost 4 minutes to bake the probes by @modernballoonie, @zyzylian, @toxic_cookie, @sctanf, @jackthefoxotter, @bluecyro, @reddneko, @nytra, @989onan, @ohzee, gameboycjp, @foolishsnowmew, @uruloke, @kulza, @jonnyawsom3, @bd_, @rueshejn, SkywindKitsune, VirgilCore, @airride91, @ultrawidegamer, @rockstarraccoon and @.fulgens issue #1983
  • Fixed continuously colored/sized particle trails incorrectly initializing the initial point of the trail
  • Fixed stuck ProtoFlux breaking logic not working correctly, resulting in infinite freeze (based on report by @jvyden4, @colin.cat, issue #4878)
  • Fixed race conditions during initialization causing inconsistencies for encoding/decoding dependency types, causing some users to be unable to join certain sessions
    • This would affect sessions with certain datatypes, notably RefToOutput node (reported by @kulza, issue #5237 and cfin2222, @pyroboy, @nytra, @jackthefoxotter, @ultrawidegamer, issue #4408)
  • Fixed crash when user connected over TCP disconnects

Known issues:

  • Clipboard on Linux only supports Text, but not images & files yet
    • Files can be drag & dropped onto the window
    • You can import a single file by copying its path (on GNOME copying a single file should work for this too)