23/11/24 Notice: Keep an eye out for an all-new rewrite, VRCBCE 2.0! Blog post here about what's been going on: #202
A pool table for VRChat SDK3 worlds. Want to play 8 Ball, 9 Ball, or Japanese / Korean 4 Ball? This is the prefab for you! With the power of the Udon Networking Update, you can even have several tables in the same world without issue!
This prefab exists as a "Community Edition" of the original ht8b pool table. It simplifies the code a lot and makes it easier to edit. It is also provided under MIT, and the maintainers of this codebase commit to being open and inclusive to anyone who would like to modify the prefab, add additional modes, fix bugs, and use the prefab as a learning tool. We strongly encourage anyone to have a go modifying and/or contributing to this prefab!
This prefab has no limitations in terms of its use. It can be:
- Placed anywhere in the scene!
- Have any rotation!
- Have any scale!
- Be on a rotating platform!
- Used repeatedly, within reason.
- Used on both PC and Quest worlds (note that this prefab can be a little CPU heavy on Quest)
It's also 100% free to modify, re-use and re-distribute. Make it your own!
If you'd like to get in touch with the repo maintainers:
@FairlySadPanda on Twitter, FairlySadPanda#9528 on Discord
@Metamensa on Twitter, Metamaniac#3582 on Discord
Requirements:
- A project with the latest VRChat SDK3 Release installed in it
- The project also has the latest UdonSharp installed (specifically 0.20.3 as directly linked, we do not yet officially support the U#1.0 beta)
- The project also has TextMeshPro installed in it.
Recommended:
- CyanEmu for emulating locally
- VRWorldToolkit for general world development assistance
Installation Steps:
- Download the latest release's unitypackage.
- Import the unitypackage.
- Inside the VRCBilliardsCE folder, select any of the table prefabs and drag-n-drop it into the scene.
- Profit!
Unless it's urgent, please don't DM VRCBCE contributors asking for help!
The best way to get support is to create an Issue. You'll need a GitHub account for this, which takes less than a minute to set up.
Afterwards, click Issues at the top of this page:
Then click Create Issue.
Afterwards, add your bug report or issue into the box and click Submit New Issue.
DMing a contributor might get you a faster response, but writing an issue means that all contributors can see the issue, bugs can be tracked and referenced, and overall it's a lot easier to fix things!
The code in this project is written to look like normal Unity/C# code. C# has several standards (and teams tend to set their own) but for reference, refer to the Unity documentation, Unity example scripts, and Microsoft's best practice guidelines.
Generally:
- Put variables at the top of the behaviour.
- Avoid using underscore ahead of properties and methods unless it's a public method that needs to be non-RPCable for security reasons (an Udon-specific use of the underscore).
- Use camelCase for properties and arguments, and use PascalCase for everything else.
As VRCBCE is a complex multi-layered project, we've recieved help on it from many fronts over the span of its development. As the amount of people who contribute to this project increases, it is only fair to everyone involved that the group as a whole gets representation when being credited in worlds. The easiest and most inclusive way to credit us would be to credit the organization "VRCBilliards", or perhaps you could write "VRCBCE Team" or something. If you ABSOLUTELY insist on naming names: "FairlySadPanda & Table" works as a bare minimum, and it is highly recommended that you also credit the creator of the table mesh you are using as well (the name of the UI's creator is already included in the info section of each table, but it can't hurt to re-credit them as well!). Other contributors to credit can be found in the credits below.
The original creator of this prefab was harry_t. harry_t did (unsuccessfully) attempt to DMCA this repo off of Github, but didn't realize that they were releasing the exact same assets on their own Github as public domain. They are currently MIA after nuking their Github/Twitter. Despite this, it's only fair to cite them as the original source, and pay credit to the impressive bit of physics code that drives this entire prefab. They also made a small contribution directly to this repo.
🐼 FairlySadPanda - Maintainer, Lead Programmer, Networking, Refactoring
😺 Table - Maintainer, Designer, Optimization, General polish, QA
✨ esnya - UI, UdonChips implementation, misc. fixes
🌙 M.O.O.N - UI
🌳 Ivylistar - Metal Table
🦊 Juice - CottonFox Table
🦈 akalink - Classic Table, UI, Color Change shaders
🚗 Varneon - Optimization
🧙♂️ Xiexe - Original Forker, Early refactor work
🧙♀️ Silent - Filamented
🎨 Floatharr & Synergiance - Textures
💻 Vowgan & Legoman99573 - Misc. commits
🎱 Metaphira - Maintainer of the "Pool Parlour" fork of the original prefab that included drastically better physics. Our 1.6.0 physics rewrite is overwhelimgly based on their work and we're indebted to them.
harry_t - Original Prefab, Physics code