NOTICE: I'm doing a re-write! #202
FairlySadPanda
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hey all. If you're reading this you're probably here from the link on the frontpage of this Github:
This is sort of a blog post about where this project's at and what's going to be happening in the future.
So: this project's last stable release is 1.5.1. It's been around for a long time and has made it into some iconic worlds, like Owlboy's Great Pug and Spookyghostboo's Black Cat. It's extremely humbling that a project I basically adopted as a stubborn effort to keep the original prefab alive has managed to find itself into maps that everyone in VRC knows and loves.
However, it's been a long time since 1.5.1, and I've told a lot of people about a 1.6.0 release. What happened?
Storytime with FSP - the stalled 1.6.0 update
The intent for 1.6.0 was to update the physics engine to a later variant that was coded by the original developer of the pool table. This variant was somewhat modified and tuned by later contributors, and that work went onto the Pool Parlour table. I've been limping through maintaining the current physics system for a while, and when I discovered that Pool Parlour was up on Github with an MIT license, I was excited to do a backport.
The problem was, I didn't really understand that this work wouldn't be viewed well by some people, and I realised I'd goofed pretty badly when I finished the backport and started doing uploads to the master branch of this Github, as some of the feedback was "wow, you stole the PP code!". I think that reaction was justified, and I think the root of the problem was lack of comms between the variants. That's on me. What I should have done was, at some point, go "hmm, I should find out more about the PP maintainance history and not just go off the license. I could annoy people if they see this variant adopt that physics model that other people worked on." I didn't do that, and things ended up feeling very sour.
What also did not help was the wider development context surrounding VRChat at around this time. This was before any major layoffs - Merlin was still plugging away on Udon 2, both myself and my co-maintainer, Table, didn't have consistent time to work on the project, and 1.5.1 was stable enough to not require much/any work from me specifically. If Udon 2 was close, a 1.6.0 release would be quickly redundant, as Udon 2 was my signal to begin the 2.0 rewrite I've been theorizing about for a long time.
Basically, after I realised how I'd goofed, I did some more work on 1.6.0, which is up on this repository's master branch, but I was caught between not knowing when I'd be starting the Udon 2 rewrite, not knowing if a 1.6.0 release would cause more angry voices due to the backport, and so on.
Then VRChat began to look into mobile client releases. I discovered that the "desktop" UI that we've had since the early days was broken on mobile, with no good route to an easy fix. Suddenly 1.6.0 needed to have an all-new flatscreen UI.
Then Merlin got sacked, and then a lot of my friends and associates at VRC followed him out as VRChat realised that they were about to run out of money.
I'm a unionized games developer professionally. I don't like staff being punished for managerial mistakes. I really don't like my friends being fired. It was the last straw. It was my cue (pun intended) to basically step away from VRC stuff for a good few months.
The problem was, my mental health suffered. The UK election here came and went, I realized that I was basically seeing nobody other than work. So I decided to come back, and I actually started engaging with VRC's content again. Since coming back, I've watched a lot of games of people playing on VRCBCE 1.5.1 tables. Sometimes I mention "oh yeah this is my thing". But often I don't. People have nice times playing pool. They make and grow friendships. I also forgot how important games and activities are to create third place moments between strangers. As an autistic person, small talk is impossible for me - but talking about a game of pool? That's structure, that's a connection.
I'd forgotten that it wasn't just because "it's what I did" that I maintained this prefab, it's that I was doing a little part in making VRC a better place, where it's easier to make friends and hang out.
I also, by pure chance, ran into another pool developer at a Community Meetup just after I came back to VRChat, and they showed off some really cool stuff they've managed to get done using the Pool Parlour codebase.
This is ergo a bit of a plug for Sacchan and co's work: MS-VRCSA Billiards. You can find it here:
https://github.com/Sacchan-VRC/MS-VRCSA-Billiards
It has a really nice physics system and supports more game modes, including snooker, a game I've loved watching on the telly since I was about four years old. It's literally the best billiards game, and thanks to us having infinite space in virtual reality, the stupidly-huge table sizes are less of a concern.
Anyway. I'm back, re-energized, and I know that if I fail to make a good pool table there's definitely other good options people can take a look at now, so the risk is way lower.
VRCBCE News
Firstly: the current status of this project is stable. If you'd like the most stable variant of the table, grab 1.5.1 from the releases. If you'd like the more-experimental 1.6.0 development branch, you can pull from master here. It's unlikely that an official 1.6.0 will be released, but both 1.5.1 and the development branch will be kept working with VRChat as long as possible. That's a panda promise. 1.6.0 would possibly include a mobile-friendly UI, but I'd need to finish that, and... I've got a bigger project!
With Persistence released by VRChat, we now have more networking tools. The original goal of VRCBCE was to update the pool table we had in early Udon to UNU, the manual-sync overhaul of their networking. So, in that spirit:
To caveat: there's going to be a public development branch available of 2.0 this year, for all you world developers to check out and give feedback on. It will support US 8-ball only at first, and will support desktop, mobile and VR.
It's a near-total rewrite using Player Objects and other Persistence features. At the start, I'll be basing the physics code off of the 1.6.0 development branch here, which supports the cue ball leaving the table and so on.
There's going to be some major modifications to how the codebase works, and I want to keep 1.5.1 and the development branch here clean. As such, the work will be on a new repo. Until it's ready for VRCBilliards branding, it'll be a FairlySadPanda thing.
Once the code's up, I'll update this topic with where to find it, and the readme on the front of this repo too.
Some intended features
Just to go over some nerd stuff about the features:
What's not a feature
What won't be a thing currently is any relationship to Creator Economy. I'd like to tackle that with care and attention once 2.0 is more mature. Given this is the VRCBCE branding, a FOSS, MIT, "you owe us nothing, go nuts" model of development, we can never make any money off this, nor (IMO) should we, unless someone fancies throwing money at the Ko-fi for thank-you snacks.
However, with VRChat needing to make more money more quickly to stay afloat, I know that monetiziation of VRChat worlds is going to become more common. This has obvious repercussions for completely free assets like us.
To be clear, here's what's completely off the table:
Any "support us on Ko-fi" or "give us VRChat credits" links on the table assets you download from a VRCBCE repo. We are never going to monetize this or add an advertisement to give us charity to any release we make of a VRCBCE-branded table. There'll be a Ko-fi link on the readmes, we might extend that to including a VRC group you can donate to, but that's all. Anyone, including me or Table, could fork this and add that stuff for their own tables, but it'll never be on upstream whilst I'm a maintainer here.
Any support for hooking into a world creator's monetization, specifically on code downloaded from the VRCBCE repos. This one is trickier. I want to avoid directly encouraging people to monetize VRCBCE in their worlds, but given the license and the flexibilty I'm hoping 2.0 adds, we can't stop someone doing so. On balance, it's probably best for us to do it somewhere so it doesn't end up causing people to end up on a downstream with potentially toxic monetization practices encouraged. If we do make monetization options for the table, it will be elsewhere, specifically for those that know they want it. If we can avoid "pay to play" being everywhere, and keep access to pool tables as open as possible, creating fun and friendships in our big, shared virtual universe we call home, then that's worth more than a million credits, at least to me.
I am a firm believer that the job of a games developer is to create happiness, not build wealth. Helping people making friend and enjoy life over a game is the only payment I'll ever need. Hopefully this belief doesn't end with me living under a bridge. 😉
Wrapping up.
To everyone who's contributed to VRCBCE 1.x, thank you.
To everyone who's put the table in a world, thank you.
To everyone who's played a game of pool on it, thank you.
2024 has been rough. I want to end it on a high note, and I hope interested parties can come along for the ride.
o7,
Hannah, "FairlySadPanda" Dawson,
Co-maintainer, VRCBilliards
Beta Was this translation helpful? Give feedback.
All reactions