#udon-showoff

1 messages · Page 4 of 1

trail snow
#

Just a notice here that the VRCBCE pool table is moving toward a new release!

slim peak
#

oh my god, it's been over 3 years since it was last updated

trail snow
#

I was um

#

very burnt out

#

ok

fathom igloo
#

a creator releases precisely when they mean to

trail snow
#

🙂

slim peak
# trail snow ok

oh sorry I didn't mean to come off as a criticism, I just didn't realise it had been that long

meager igloo
#

ooh, I like this, I'll test it out

fierce flare
#

is it more performant to use code or animator to move stuff?

#

like transform etc vs animator?

pale ocean
#

If there are expensive tasks behind it, then it is better to precalculate it via an animator

solid elbow
fierce flare
#

my chair is released

#

visit the demo world in game, search for AutoPosChair Demo

fierce flare
left sluice
#

I'll give it a whirl tonight 😉

exotic crow
# fierce flare

That gif that give me a very silly idea..."enchanted seats"
Like, you have the normal ones but also the "obviously fairy sized interaction" on a railing or whatnot but that would resize you when you seat, then scale back to normal when you leave. I gotta make that once you release a demo for other creators to mess with your chair... 🤣

fierce flare
#

it's released

#

yes you can try to make it lol

#

go to github link above

exotic crow
#

somehow

#

...I completely missed that link

#

🐸

fierce flare
#

lol

#

oh but, when you close to 20cm tall the avatar breaks, we saw that in testing

#

so cannot go too small, it's not the chair, its the avatar animations

exotic crow
#

not related to your prefab

#

I used to have a spiderMG avatar, it always broke at minimal size ye xD

#

I always had to put her at 0,4 or something

exotic crow
#

@fierce flare I have a little suggestion. You see how you have a cube to visualize the area of the chair in your world?
Maybe add one to your prefab, and make it EditorOnly since it isn't neded in-game. But at least the user wouldn't have to guess where the collider is.
It's small QoL that goes a long way to speed up the workflow

#

A bit similar to how portals have a "cube" object in their prefab

fierce flare
#

I see your point but I wanted to keep it basic, it may be QoL for you but personally I prefer to see more of the scene, but i can see how it is useful

#

it is rather minimalistic by design

exotic crow
#

Yeah but it's editoronly it's literally just debug view and won't make it in-game

fierce flare
#

so you can add it if you want

exotic crow
#

already did xD

fierce flare
#

but it wouldnt confuse a beginner who just wants a chair and is wondering what is this cube

exotic crow
fierce flare
#

huh, nicer looking than expected

exotic crow
#

I mean actually...since what's important is the "chair edge" maybe a quad would make more sense

#

the use is actually to line up the depths

#

bottom for where it touches the chair, and back for well, the back

#

calibration, if you will

#

they won't appear in-game afterward

fierce flare
#

i imagine for sofas, you might want to actually sink the cube into the cushion, to mimic real life sinking

exotic crow
#

that makes it super easy to move the object around without having to guess where the collider ends

#

Yeah the details depends on the creator of course

left sluice
#

Idk if possible but I like the little sims diamonds that appear when you get close to the seats to sit.

#

In just b club 4.0

fierce flare
#

yeah it is possible

exotic crow
#

I see a proximity check sphere, probably as easy as in "PlayerTriggerEnter" turn on the diamond, and on exit turn off xD

fierce flare
#

essentially a diamond shape collider in mid air, with proximity toggle it on and off

left sluice
#

Well the shape doesn't matter. You could have it be a seat icon.

It's just a nice touch that I saw just b did

fierce flare
#

yea

exotic crow
#

so we're back to making a cube visible, just a deformed one xD

#

but that's more of a "the user can customize" thing like you said

#

Does the interaction collider matter or only the "chair front" object? I could try to make it just to see how it looks

#

I mean for the calculations and positioning the avatar

fierce flare
#

well, the thing is, you can do any kind of customization in every world, it is up to the world designer

exotic crow
fierce flare
#

it's meant to be custimized is what i mean to say

exotic crow
#

ye

#

that part is just flavor so it make sense it's to the user's side

#

What I was talking about before this icon thing is QoL for calibration it's not the same cube xD

fierce flare
#

the interaction collider is only for clicking, it doesn't affect sitting positions

exotic crow
#

on hover, turn the icon on <w<

fierce flare
#

(idk how to do mouseover objects)

#

something to do with raycast? never touched it b4

exotic crow
#

maybe we should move to udon-general

fierce flare
#

ye

#

well

left sluice
#

For their thing, it's basically a 3D interact that then sits you in the chair. I don't think raycasts are even in the question

exotic crow
fierce flare
#

that is super easy, literally swap the collider with a diamond mesh collider and move it up a little

#

yea

exotic crow
#

yep xD

#

I still have to add the credits (main reason the whole world is still private) but I can publish and send the link in DM if you want to test your chair in action, on the moving vehicle

fierce flare
#

for the raycast i thought you meant something other than the interactive highlight appears

left sluice
#

Nah, if you haven't been to just b 4.0, check it out. Just a cute way to represent where to sit

#

I've low-key taken a ton of ideas from that world 💀

fierce flare
#

i went there once and poke around, found all the dolls and got a disappointing avatar XD

exotic crow
#

Uh...ok, sitting teleported me to spawn point and I'm stuck... 🤣

fierce flare
#

it is a very well made world tho

exotic crow
#

yeah we need to move to general xD

fierce flare
#

ya

fierce flare
#

while we are still on this topic

fathom igloo
#

oh this is beautiful

fierce flare
#

why thank you

loud matrix
faint charm
covert night
loud matrix
#

the usual...

deactivate the object
spawn a bunch of gibs in its place (optionally with random + inherited velocity)

#

the fractured glass is just a Cell Fracture (Blender Addon) advertisement

covert night
#

the broken glass is just enabled on break

twilit burrow
#

I made this udon script for switching postprocessing between PC-VR and PC-Desktop automatically for the player - it's free if anyone wants it 🙂 https://booth.pm/en/items/6645490

Axinovium Post Processing Swap is a simple UdonSharp script for VRChat that automatically switches between two Post Process Volumes based on whether the player is in PC VR or Desktop mode. This lets world creators fine-tune visual effects for each platform, ensuring the best experience for all

#

was finding it's actually quite hard to balance post processing for both as dark areas are much lighter in VR

#

and a lot of the post processing effects that look good in desktop look horrible in VR

azure mortar
stone summit
#

Wave function collapse online. Gonna need to make like... 100 tiles to stop it being repetitive though.

meager trench
faint charm
#

Maybe I will get to do that one day sooon

meager trench
#

well the proportions of the vr piano and that electric piano would have to match up perfectly

exotic crow
fathom igloo
#

the ones that work with a MIDI keyboard are pretty cool

faint charm
#

I’ve used midi supported software to stream piano audio into my mic and the delay has never been at a playable level

#

I want to hit a key and hear it instantly

#

Plus that piano has velocity support so it should theoretically sound exactly the same

#

Since my electric is the size of an upright, it’s stuck in a room that will never have a pc near it and I’d need to do wireless midi

#

I’d rather it just be in game :3

meager igloo
#

my keyboard is in a different room from my computer but I keep meaning to move things just to try this

#

but maybe I don't want to if the delay is bad

hazy trout
fierce flare
#

wow is it calculated in code?

hazy trout
slim peak
fathom igloo
#

the sound automatically played in my head

slim peak
#

XD

zenith imp
zenith imp
hazy trout
#

yeah it will be neat. I've had the udon runtime ballistics made for a long time now but was waiting for Udon 2 to bump up the concurrent projectile count closer to Monobehaviour performance.
The lag starts to get become noticeable at 120 projectiles being simulated at 20 hz, achievable when firing at 1200 RPM when the projectile life time is about 5 seconds. With Monobehaviour, my code got up to nearly 10000 concurrent projectiles at 120 hz before taking a performance hit while still maintaining over 100 fps.

#

the wait is too long and I want to move it forward

fathom igloo
#

you do know that Udon 2 was cancelled? Being replaced by Soba, which does not yet have any promises of significant performance increases

hazy trout
#

My lips are sealed

#

but the key word being "was" for waiting on Udon 2

fathom igloo
#

how mysterious

hazy trout
#

just wait for announcements

humble galleon
exotic crow
fathom igloo
#

no it was definitely a full cancellation and restart
but a lot of the goals they had initially for Udon 2 are being worked into Soba

scarlet rain
#

so do you plan on releasing a public package so folks (like myself) can implement your awesomeness?

zenith imp
#

@scarlet rain yes, I have beta testers right now. They are teaching me alot on how other people approach prefab packages.

scarlet rain
#

I'd be honored to be among those beta testors

solid ridge
#

I lost all my world files due to a package issue getting interrupted.
So here is my arcade as it was put up on the lab for public viewing with my Animatronics dancing to the beat, functional Arcade Games and the older version of my Highscore persistence, Fun food Props, and Go Kart Track. I've been able to recover everything but my code, the one thing I didn't have save in triplicate.
https://vrchat.com/home/launch?worldId=wrld_5de8a59e-2c93-4ec4-a380-b5030310c76a

Welcome to the fantastic RilyRobo's Family Arcade‚ a wonderland of Fun‚ M̸̍͑ủ̵̜r̷̒̋ḋ̴͐e̵̽̏r̷͔̆‚̶̃̔ ̷̊͌M̸̿̉y̷͛s̶̓̅t̷́͆e̶̋̀r̷y‚ and Exci…

cursive birch
#

More progress, more optimization. Currently it has support for VR StageLighting GI, LTC GI, and Unity Light Probes.
Friend got 8ms GPU time on 3070 mobile in VR in the world.

GPU particle cost is neglible. Most of the cost is AVPro video player blit and the water shader.

hazy trout
#

WIP sound testing facility for new suite of udon sound managers I am implementing. This one enforces the lawn

fierce flare
#

you gotta turn down the gain to like -15 rather than the default +15

#

if you are throwing sound sources to zero distance to listeners

#

or i will sue u

hazy trout
#

sue me.

fierce flare
#

fite me in vr court

hazy trout
#

I am willing to go to court over this

fathom igloo
#

I thought "oh is this like a sound system for the grass? hm I can't really hear it let me turn the volume up to max" 😭

fierce flare
#

rip

hazy trout
#

let these two brave souls be a warning to others

fierce flare
#

maybe u should add a red text warning next time

hazy trout
fathom igloo
#

it is very cool tho

#

simulating the sound delay with the speed of sound and whatever?

fierce flare
#

jesus you really gotta lower the gain by like 20 db

hazy trout
#

I would like to see you in court or move that discussion to #udon-general

fierce flare
#

delay is cool tho

exotic crow
#

your thing got everyone better than half modern horror games can dream of. Good! 🐸 👍

hazy trout
fierce flare
#

loud noise warning

worn coyote
#

I made an alternative way to do vehicles from stations, think it turned out pretty well so far. Really like how it lets you both walk around in vehicles while they're moving and meshes better with full body tracking

digital wasp
zenith imp
#

Thank you for everyone who helped me out here in this discord. Special shout out to @boreal nest, @proven totem, and @pallid smelt for helping my launch my first prefab/coding project.

I'm so happy players are enjoying my thing i made.

https://x.com/PeterJCasaey/status/1907677674115305862

People have been sending me clips of them seeing my RAT NPCs in worlds. I love this moment of hillarity. This is what I was aiming for.
Thank you so much for the reception. I hope to bring a new era to @VRChat and Social VR spaces where NPCs become more common!
#gamedev

#

My NPC system finally launched. I can't believe I've made it this far.

zenith imp
unique kettle
#

***It's time to speed up your hearts before you have a stroke. ☢️ ***

I present to you the first energy drink made, the name is "S.T.A.L.K.E.R."

When you click on the collider on the bottle opener, you will open the drink, you just have to bring it to your face and you will start drinking the drink.

There will be more of these types, and not only with drinks, but also with food, first-aid kits, and so on!

tight inlet
#

https://bsky.app/profile/did:plc:qjyvh6b4prbglv67nqep5ruu/post/3lm6ocgdess2m I did a racing prefab system that makes use of the VRC+ Drones :3

Introducing Drone Racing for #VRChat !

A FREE prefab for world creators to make courses and race with the newly added Drones for VRC+ users.

Along with it, a newly made world: Nightly Aero!
Prove your flying skills by racing through 5 different courses, compete with others and lower your times!

▶ Play video
frozen summit
#

Made a little prefab that logs all your players in the worlds FPS to your log file and a web page that parses the logfile so you can gather performance info for debugging world updates to see if things run better etc after you make updates.

stuck ingot
tight inlet
frozen summit
# glad wedge

I've got the site public for it so once i pack up the unity prefab that goes along with it ill put that on the page and people will be welcome to use it.
Just havent got round to that bit yet.

stuck ingot
#

I got inspired to learn how farm worlds were made after seeing quiet a few of them for space jam. So I spent a couple hours of my day yesterday to learn udonsharp instead of graph to make a approach on how seeds trigger plants and they go through their life cycle.

fathom igloo
#

the cube harvest will be bountiful this year

stuck ingot
#

Ngl the spacejam farm worlds were cool to see!

fierce flare
pale ocean
#

If you tried "Titan Farming and Fishing"

stuck ingot
#

oh ill check it out!

#

oh wait i think i seen this, this was for the jam! this was an inspiration to learn it it was really cool. I wanted to nerd out and thanks to you its pushing me to learn C#

pale ocean
#

Oh, well if you have any questions, lemme know

#

I was the person who wrote all of the scripts

stuck ingot
#

Absolutely! An after spending three days poking around it and learning serialization I can see how much a lot of work and thought has to go into making these farm worlds. Its complex fast.

pale ocean
#

The best thing to remember is resting a good foundation

#

Each plant I wrote was a member of PlantBehavior, which has OnPlant() OnWater() GrowthUpdate(long currentTime) OnComplete() and OnHarvest()

stuck ingot
#

are you pushing any sync or is it all local ive only gone to the world solo.

pale ocean
#

It syncs

#

There is a separate set of functions that run for the remote player (the player that lacks ownership)

#

Only problem is you can never go to another player's greenhouse

#

(use a drone to see it sync)

#

I plan on adding the ability to visit remote players greenhouses if we hit 500 favorites or 10K visits, whichever comes first

scarlet rain
zenith imp
quartz radish
#

yooo still not finished but i'm happy with the concept :3 everything just events other than cursor movement because InputLook is broken

white onyx
#

@mortal ingot
OK u may be mad
But I'm just messing with ya alr
I came to apologise tho
It's OK if u block

faint charm
#

?

stuck ingot
#

The cube harvest expanded...im trying to test how many plots will it take to clog my network...so far nothing yet...

boreal nest
stuck ingot
#

one interal network usage?

#

oooh you mean a patch fix for VRChat

#

i was like searching udon documentation for this for a second HAHAHA

boreal nest
stuck ingot
#

Gotcha 😄

#

it actually worked really well in testing i have some inconsistency with synced items and thats cause my code but over all it syced like 80% very well with no clogging.

zenith imp
boreal nest
# zenith imp Wait wut...I need details 👀

Somebody found that manual synced behaviors in large numbers still had a network cost associated with them even when they weren't doing anything. An engineer dug into it and found that the source of that cost was unnecessary and could be safely removed.

zenith imp
#

@boreal nest oh cool so this shouldn't affect my NPC's

rocky agate
#

Also syncing farming plots is incredibly easy so long as you don't care about late-joiners. Just make your "start growing" code fire off a network command to all users and let them grow in parallel across all users.

covert night
stuck ingot
pale ocean
#

If you do it right, there is no sync

#

The only sync should be at the beginning

#

And that is to take down the starting time

#

Record it as a long Zulu time

#

Then just get the time difference for the amount of growth

rocky agate
#

Nah, you don't even need that. All you need to sync is to know what plant is being grown, and how long it takes, and once it starts it can just chug along locally.

#

The only person you care about having it ready to harvest is whoever will be doing so, and they'll be able to do it when they see it's ready

hazy trout
#

Updated my tire friction calculations, it can now slip at the contact patch which can be heard through the transmission when I shift up at low revs from 2nd to 3rd, and 4th gear at the start of the video

stuck ingot
pale ocean
#

I use a bit wise operator on the int to flip the first bit if it was watered

#

The starting timestamp is only set when it is set to grow

#

So by technicality, I could just use it to know, but again, gamejam had to move fast

#

Either way, anything that is saved is also synced

#

Any time you RequestSerialization, ALL sync/save parameters are sent

#

Make as many “safety” limits as you want, what must be saved must be sync’d by design

exotic crow
# boreal nest Somebody found that manual synced behaviors in large numbers still had a network...

Oh...maybe that was this cost that made the server freak out and timeout accounts back when I made PixelCanvas, then xD

Past a certain number of players they'd be stuck in a loop of being kicked by the system as soon as they join the world, and reducing the number of tiles (which were stand alone manual sync udonbehaviors) made the max number of players being able to be in world go up...

#

1 player worked fine but since the main object was PlayerObject it instentiate for every new player, meaning a lot more of them existing as more players joins (if not that cost issue, it probably reached a hard limit of udonbehaviors by accident ^^")

gentle jackal
#

Hey, sorry to reply to an old message, but could you also send that to me please? Your work looks cool

zealous ravine
warped dune
meager igloo
zealous ravine
meager trench
#

opposed to the buses in vr field trip, this one's more interactive and uses a better vehicle system (sacc)
i also coded in some of the mechanics such as the door opening, interior lights, tire ambience and brake noises

meager trench
warped dune
#

or assign the rigidBody for that component; Though primarily SaccLiftBody is used for the Aircraft; I'd have you remove that if you're not using it

#

lesser headache, lesser overhead of a script trying to access something that's missing

meager trench
#

removed

meager trench
stone sonnet
misty gull
#

sum procedural terrain gen, very minecrafty atm but unintentional (love voxels 🙏)

meager trench
hazy trout
quartz radish
zealous ravine
hazy trout
#

An example of a low speed hack used in lower frequency simulation is smoothing or numerical integration of the slip ratio calculation. This is a good hack until you want to simulate smaller and lighter spinning objects that are connected to the wheel (engine, clutch, transmission, driveshafts), resulting in smoother angular velocities but incorrect simulation of these spinning objects.

quartz radish
toxic salmon
#

i coded that with visual scripting, i can show you the The node setup i done for it

opal solstice
solid ridge
#

Working on NPCs for my club world, Got my version of Spring bones working so the Hats and 'Assets' have physics

meager igloo
#

it's no fun to go clubbing alone

median crest
#

Unless you’re doing a bit of trolling

#

I once told the doorman at sunset that he should let me in because each of my atoms was formed in the heart of a sun billions upon billions of years ago

#

Needless to say, I got kicked

solid ridge
# zenith imp 👀NPCs you say?

Yes, been seeing your stuff. Big Fan! My plan is to have my clown girls serve drinks and being very interactive using Centauri's basic AI as a base with heavy customization. Wanted Phys bone style movement but couldn't find any assets that work and would upload to vrchat so created a modified version of SpringBones unitychan script in udonsharp

solid elbow
#

If you have that

solid ridge
#

I have wasted my week

#

I'm gonna take Dynamic bones apart and make my code better, with black jack and hookers

faint charm
#

Haven’t seen that reference in a long time 😆

zenith imp
solid ridge
#

And procedural Seed based generative maps for dungeons

timid aurora
zenith imp
#

But to get my npc stuff ready I have to model and animate my own thing.

misty gull
humble galleon
misty gull
fathom igloo
#

that looks awesome! what kind of stuff are you planning to have it do or support?

misty gull
faint charm
lime jay
sharp rock
humble galleon
#

Very cool

fierce flare
sharp rock
fierce flare
#

do u have bullet trails?

sharp rock
sharp rock
#

(at the beginning you can see bullets on the sky)

winter glacier
wary quartz
#

Is this the right channel for this?

twin depot
#

it features a music player i completely custom made

#

i had a very specific set of songs i wanted to play there, but i didn't want a whole video player, so i figured i'll just make my own music player entirely for this world

meager igloo
#

oh I forgot you did the duck world, it's amusing

twin depot
#

i've been wanting to make a revised version, because i made the original when i was still learning U#

#

haven't gotten around to it yet though, get a few other projects to do

#

also thanks :D

winter glacier
zealous ravine
meager igloo
#

ooh the grid snapping is cool

zealous ravine
unique kettle
#

**Today I released the long-awaited Stalker Anomaly game in alpha mode, where you can interact with objects, talk with characters, as well as take quests, and you can complete them, the achievement process (currently one, there will be more in the future) as well as a bunch of graphics settings. **

This is not the final version of the game, there will be more new game features in the future, such as a PDA, a day and night system, and more.

*At the moment, there are a bunch of bugs in the game, I'm trying my best to fix it all, while having little skill at it.. 🥲 *

https://vrchat.com/home/world/wrld_11796192-27c6-4d1d-8a41-58365acc00ba\

Launching the Alpha Test of the S․T․A․L․K․E․R․ Anomaly․ There are many bugs‚ the version is currently only for PC․ There are 14 days left until the end of Alpha Testing․

glass willow
#

cool little seed generator I made.

faint charm
#

I’m very curious what other ways there are to convert a string of numbers into usable data

glass willow
glass willow
#

got generation working !

faint charm
glass willow
#

only having to sync 9 pickups for all this is amazing 😭 (all seprate gameobjects for rooms)

misty gull
#

i was doing something similar to this abit ago lol, you could use a single synced 8 bit number or a string for faster syncing, hope to see what you do with your generation tho 👀

glass willow
cobalt swift
faint charm
twin depot
#

oh my god that looks so good

#

i cannot wait to see that finished

#

i love luigi’s mansion

sleek fable
#

But awesome work. 👍

cobalt swift
#

Hopefully i can get a decent demo published soon. just setting up fight events and a script for the common ghosts rn, also need to polish the flashlight/vaccuum system to be summoned and follow each player ;/

lofty flame
#

something kinda fun i tried a while ago, midi and debug log parsing in tandem allow 2 way communication between the editor and vrc. somewhat based on udon midi web helper

fresh reef
meager igloo
#

oh very nice!

hard sphinx
fresh reef
meager igloo
#

so far I've utterly failed to bake additive volumes, I keep having hard edges and no blending

fresh reef
#

i dont think blending works on additive volumes at all

meager igloo
#

yeah when I go into play mode it's an obvious square of light on the ground

fresh reef
#

just make sure your volume is bigger than the range of the light source

meager igloo
#

yeah - been trying but I don't want the thing to be like 50m

#

it's supposed to be a small movable light and so far I haven't been able to get it right. i guess keep trying.

fresh reef
# fresh reef little preview of what I'm working on using light volumes

https://vrchat.com/home/world/wrld_776c40b8-99fa-4dfd-8a86-cc708db710ef/info still a work in progress but you can now try it out for yourself on labs, avatar with light volume support heavily recommended

Your very own private equatorial island‚ featuring a lag-free configurable daylight cycle systemǃ --- This world supports VRC Light Volumes․ Use avatar shaders with VRC Light Volumes support for an e…

glass willow
#

little update from my previous posts ive added the following.

  • synced doors
  • a health and money system
  • rooms with walls
  • fixed up on the math behind the seed to doors
  • added weights for the rooms
  • special rooms for the 50th and 100th room
    ? now I'm working on "path-finding" for my entitys.
misty gull
#

i recommend A* path finding since its very dynamic and not that bad for realtime things 👀

marble spoke
hazy trout
#

Could we let them explore before trying to weigh in what could be the first few results of a search engine result?

I added runtime penetration for NPC projectiles and made same-object concave collision cases more robust for both my editor tool and runtime. Probably up to 10mm precision for concave colliders. First few pictures are from the editor-only tool, and the video shows some visual and audio effects for penetration.

proud hawk
meager igloo
#

Any suggestion about that? I haven't really had that do a whole lot yet, but I might not have tried hard enough.

#

I did see it in the docs and tried at least a little

drowsy orbit
misty gull
drowsy orbit
# misty gull doesnt vrc only have the navmesh and that is it or do we have access to somethin...

The only main thing we're missing are custom agents https://creators.vrchat.com/worlds/udon/ai-navigation/

AI Navigation allows you to create non-player characters (NPCs) that can intelligently move around the game world, using navigation meshes that are created automatically from your Scene geometry. Dynamic obstacles allow you to alter the navigation of the characters at runtime, while offmesh links let you build specific actions like opening doors...

proven totem
drowsy orbit
#

for example, here is my own patfinding code running in VRChat that uses Unity's AI Navigation as a base

misty gull
#

& that isnt using a navmesh? 👀

woeful wasp
#

i presume it's using a navmesh to provide paths, but then does its own custom logic on top of that

misty gull
#

i c i c, i mean if you want pathfinding for something like a procedural level i dont think that navmeshes would work (unless there is some way to make a navmesh during play that i dont know of)

woeful wasp
#

I don't know about doing that in Udon -- Unity can definitely update or generate navmeshes at runtime, though

misty gull
#

oh 👀 i thought unity couldn't do that ngl

#

would be cool if udon can

woeful wasp
#

Promising!

#

You can use BuildNavMesh and UpdateNavMesh at runtime

#

I'd have to actually test it in-game

#

but it's not obviously impossible, at least 😉

#

I've only used navigation in the editor so far

#

I use it to automatically generate signage for one of my worlds

misty gull
#

if you do test or figure something out please lmk as i would love to know about this stuff tbh

woeful wasp
#

an editor script asks for the fastest way to get to another part of the map and then spawns the appropriate sign

drowsy orbit
drowsy orbit
fierce flare
winter glacier
twin depot
#

my roblox-tycoon-like droppers work off an index system, and i just finished this mesh preview. it gets all the meshes of the children of the prefab you put in, and sets that slider's max value to the amount of children in the prefab's child count

#

so instead of setting the number and trying to remember which shape your dropper will drop, you get to visually see it!

#

2.5 hours for a small QoL feature :D

fathom igloo
#

that's awesome. I didn't know you could do that kind of stuff with the UI

twin depot
#

honestly neither did i, but then i saw the Polybrush package had a mesh preview in its editor window and i got an idea

woeful wasp
#

I built a little "Value" system to make it easier for me to make settings menus.

This is a FloatValue. I can subscribe to it to receive events when it changes, and I can point a FloatSlider at it to control it. Anything in the scene can reference it to read the current value.

#

Some values (like float values) include extra information to help style them properly

#

(gotta fix that text wrapping...)

#

i'll do custom sprites for the UI later

smoky sequoia
solid ridge
#

I didn't add Black Jack, but I did add slots and credits.
Upgraded my 'Hookers', I mean NPCs integrating an edited dialogue system and a persistent Affinity System so the world will track how much the girl likes you. And you can give her tips.
Made that stacker game I would see at walmart... idk why

#

I'm building a straight up dating sim with minigames

hazy trout
#

An overall view of my most recent gizmos for my custom tire physics. I'm not sold on the slip angle display shown as a red solid arc in front of the wheel, it should somehow stand out more by having better contrast instead of a red solid arc, or the editor should let me select which sets of gizmos are showing

timid aurora
#

How is the camera following the object in editor view? Or am I just missing something

proven totem
#

Shift+F will focus and follow the scene camera on the selected object. Any movement (outside of orbiting with Alt + Left Mouse and zoom with Alt + Right Mouse) will cancel the behavior.

timid aurora
#

Well that's useful

proper jacinth
twin depot
#

i've been wanting a custom array property drawer for so long, the default one is ugly

#

vowgan did a dev stream recently where he went over making something like that, and it helped me to make my own

#

although, how could i improve the foldout part of it? i want to be able to show and hide it, but having the text jump around is a little strange. i just don't know where to put it

meager igloo
#

oh that's nice, I've been making custom inspectors lately, that's decent

#

oh - though I'd still want the dropdown the default one has, to hide it when you have lots of other things in there too

twin depot
#

maybe i should just put the add/remove buttons below the name

#

it looks so nice in-line though D:

meager igloo
#

I like the x inline though, for larger lists.

#

Or you know, the delete button to work. Unlike in the avatar parameters list.

twin depot
#

alright i think this is overall better

#

since the text won't jump around when toggling the visibility anymore

meager igloo
#

Nice

twin depot
#

in case you, or anyone else, wants to check out the code

solid elbow
#

You're a saint

twin depot
#

i realized i forgot the array size showing when the array is collapsed, so i added that

high seal
lofty flame
#

kinda fun midi thing part 2; pushing audio data to the left client (this is frame-bound, hence the incoming rate being higher than the target rate) allowing continuous playback by continually assembling audio clips as data comes in

data is also propagated over network to the right client (sample rate 7.2khz, 8 bit depth)

in this case the left client is being fed pcm data from a resampler over time, but the idea would eventually be to feed it desktop audio if i keep working on it

fierce flare
#

23 KB/s? isnt that over the limit

#

I thought it caps at like 18

lofty flame
#

it's being pushed over midi to the local client on the left, not network

fierce flare
#

oh and the sound is from the left? or right?

lofty flame
#

i'm swapping which is playing with the volume sliders in the video, they both have audio, though the right is delayed because it's receiving data later over network

fierce flare
#

Suffering 1326

#

o_O

lofty flame
#

it's just queued events, but it's still pushing faster than playback is consuming the samples, so the right client can playback in realtime

fierce flare
#

huh, so it's streaming

#

cool but what is this for?

#

its cool lofi radio gadget but you need midi file added to the world? so not real time?

lofty flame
#

the original intent was to allow streaming desktop audio over udon network, it could also be used for drag and drop images/audio, though the bandwidth is prohibitive for advertising it to others (it'd take more than a few minutes for anything of real quality)

#

it's not a midi file in the world, you can push data into vrc over midi

fierce flare
#

oh ok

#

i wonder if this can be augmenting the player voice, like fill in the missing frequencies at higher ends that got compressed in voice

#

but it probably wont sync

#

wait, this can be a piano

#

or any instrument cos its midi

lofty flame
warm pewter
#

Yea I know midi's also used for syncing animations and music. Can sequence cues for specific sections of a song. Or trigger stuff off beat. Stuff that audiolink can't detect.

#

Anyway your audio-over-midi demo is totally cool!

green vine
drowsy orbit
#

neat

solid ridge
pastel moon
#

This is a character animation system I recently developed at udon. It uses ideas like motion matching to make it turn smoothly. It seems a bit simple for now, but I will work on it in the future!

exotic crow
#

Ok, that wall hop near the end was very good! all these transitions are looking really good

cobalt swift
#

whole project is a pain, but im liking how its coming along

fierce flare
#

you need some lighting in that room, i struggle to see in the dark

cobalt swift
fierce flare
#

ok fair enough

pallid smelt
lofty flame
#

my sorta jetpack world, it features what i'd consider my best positional extrapolation/sync. it's pretty physical in terms of how you have to control it, it's important to consider your position in the station

the 2nd video shows a perspective of what i'm actually doing because it's probably not super apparent (i'm using my hands for control)

there are also 2 vehicles moving on splines that circle the area. you can land on them and stuff (this swaps to relative sync, only when grounded);
you can see the extrapolation in effect near the end of the 2nd video, there's a yellow sphere trailing the player which represents an interpolated view (it might just be raw positions, i forget)

would love to see some people try it (i just really like flying here); it's pretty motion heavy and takes practice to get used to

https://vrchat.com/home/world/wrld_295e0ef4-9415-484a-8d5a-cea39878d288/info

boreal nest
#

wildly different control scheme, but similar mechanics

lofty flame
lofty flame
#

as a follow-up, i got to try the drones a bit and realized udon could access some things related to them; so i tried adding my own style of sync on top of them. at a higher rate as well as predictive

i'm really bad at flying them so i don't think i showed it off very well

coarse reef
#

I've been at this for like 10 hours now but I finally got it all working. it needs a lot of cleaning up to make things more seamless but it works.

player instancing. been working on this as part of a project to create persistent, instanced player housing in an RP world i'm working on. always thought it was impossible but clearly if you try hard enough nothing is impossible!

sharp rock
fierce flare
coarse reef
fierce flare
#

how do you hide them?

zenith imp
coarse reef
# zenith imp Im trying to wrap my head around what is happening. Or the use case. So players...

Basically.

The idea behind this is that i plan to set it up with a system that can spawn/position prefabs in a given space based on what 'room' you're in.

allowing a virtually infinite amount of rooms to exist in the exact same space.

this means i can make a tool that allows people to customize their rooms in-game and store the customization data to their persistance data this creating fully instanced, persistant housing.

#

this way i don't have to have a dozen identical copies of the same room in the world just to accommodate every player.

#

an example case of how this could be set up/used is say you have a map that's just 3 rooms, a lobby, elevator and a hotel room
that elevator can just be a loading zone that shifts people inside the elevator around the various instances.
thus, you have a world. that is 1 lobby, 1 elevator and 1 room. yet every player there can have their own personal room there.

zenith imp
coarse reef
proven totem
#

I imagine it's similar to how Thad's Home of Cuddles works with it's own custom station based separation. Players not in your environment are locally placed super far away via a station.

proven totem
#

ig you are also aware of the weird issues that come with that unfortunately? people with common avatar addons may not be able to use their avatar features and ofc all avatars to be used with the system require some Animator with an Animator Avatar on it.

#

changing avatars can also cause some weird things since they are exited and restationed during the process.

#

Prints, Stickers, and now Items (open beta) will also break the illusion as well.

coarse reef
proven totem
#

sounds awesome for that!

coarse reef
#

altho i've not ran into any issues regarding animators/avatar interactions. only thing i noticed is that if your crouching when you enter the walk in zone things get a bit wierd.

bright fiber
#

Still got the shader to do for the SV selection... but i'm so glad I made it this far, for something I thought was impossible to do 😄

bright fiber
covert night
marble spoke
faint charm
#

This wouldn’t be too hard to do but it would probably take a lot of your network data

marble spoke
#

oh i did not read that lol.

drowsy orbit
#

so when it comes to stations, any way to put a remote player into a station without requiring the local player to be in a station?

covert night
#

Its like teleports, you gotta make them use it on themselves

drowsy orbit
#

so yah, the local player would still need to be in the station

#

Unfortunate

drowsy orbit
#

you just said only a local player can control if they are in a station or not, right?

covert night
#

Oh, well yeah but it doesnt have to be the one to press a button or whatever

#

You can send UseStation through a networked event or synced variable method

drowsy orbit
#

I was hoping there would be a way to hide remote players without requiring everyone to be in stations for that

covert night
coarse reef
pallid smelt
humble galleon
#

This is great advise ^

#

And it's pretty much what I do in Far Citizen for the scene index.
I also use desynchronized stations to reposition remote players in that world.

coarse reef
# pallid smelt I'd use an int for "room ID" instead of a bool here - that way locally you can r...

Not what i meant with that. but yeah there is an additional vlaue for the room id, the bool in general isn't even actuall a bool. it's just me using the immobalized state as a hidden/shown toggle. right now i was manually syncing the player position and all that but i realized that with the severely simplified usecase of this setup over it's original purpose there's no need for me to do all that.

pallid smelt
#

ah icic

coarse reef
#

since i'm not actually offseting the player when they are visible, only when they are hidden. there was no reason for me to move them around. so i can just mobalize them when they should be visible.

#

didn't think about it until today tho

smoky sequoia
unique kettle
warped dune
ruby blade
dry wolf
solid ridge
#

Working on a 2d Adventure arcade game like Binding of Issac or the 2d Zelda Games hence using gameboy Zelda as a style test base, meant to be a multiplayer dungeon crawler so you can play alone or together getting random items and fighting enemies and bosses, real early but happy with this early Test

winter glacier
hazy trout
#

Volumetric tire contact vs the traditional single raycast tire contact

zenith imp
hazy trout
zenith imp
lofty flame
#

short video recording and sync- running it on player objects in this case; kinda fun, but a lot of data

zenith imp
hazy trout
zenith imp
#

@hazy trout idk, like im not an audio guy, but the whole world and engine sounds felt so layered and "correct" if that makes sense. I don't have the terminology to express what I liked about it.

hazy trout
#

That is probably due to the singular engine sound clip matching the vehicle's RPM. I then do some realtime raycasts to the surroundings to adjust the reverb parameters of the audio source. For observers they do additional calculations such as occlusion from buildings and reverb adjustment by distance

#

here is a direct example from a mentor showcasing some of these audio effects https://fixvx.com/niko_stenberg/status/1072841877525794816

I tried some tricks to get some sense of space into the soundscape. The car as a whole has mixer effects applied based on distance and occlusion. Individual sounds can have directional attenuation. What do you think? 🗣️👂
#gamedev #indiedev #unity3d #vehicular #audio https://t.co/UjnRT1pTph

▶ Play video
glass willow
# glass willow little update from my previous posts ive added the following. + synced doors + ...

Little update from my project, i lost a little flare but finally decided to work on it again. i added dynamic loading and a FULLY working door system that i can add on to setup entity spawning. also i decided to use a "pathfinding" that roblox games like doors would use. in the future im most likely going to use Unity's built-in AI Navigation system w additional pathfinding code on top of it.

proven totem
#

(not udon specifically but best channel i found to post this)
Just recently released Open NID: https://github.com/BobyStar/OpenNID

An open source utility tool to easily manage Network IDs for VRChat worlds. Fixes the whole issue of dealing with IVRCSDKPreprocessSceneCallback failing because of a scene change creating an ID conflict.
https://bsky.app/profile/bobystar.craz.co/post/3lsplpnl7pc2n

Just finished Open NID's release. A new open source tool to help get past that pesky "IVRCSDKPreprocessSceneCallback" error from the VRChat Worlds SDK.

Can automatically fix Network ID Conflicts upon Build! And manage your Network IDs in a Scene.
github.com/BobyStar/Ope...

meager igloo
#

ooh

drowsy orbit
meager igloo
trail crypt
pallid smelt
#

So, coming from #udon-showoff message I decided to try and implement a full audio codec (QOA) for audio compression. The project has died since I found MIDI at high data rates to make the game too unstable for me to want to keep going on with it, but I have since posted the code in its current state to https://gist.github.com/TapGhoul/bc7f0d9095aebbc2ef6f766ee1a56586

The compression ratio is about 4.9:1, dropping the filesize down to about ~20.2% of the original size in raw PCM. In other words, 7.8MB down to 1.6MB.
The audio is encoded at 25000 Hz mono, but it can easily handle much higher than that and will retain quality - the lower quality was based on the intent to do MIDI + netcode, but alas.

hoary nimbus
#

Every day the drumming world grows stronger lol. Been learning more about shaders and optimisations. Keep learnin frens 💪

meager igloo
#

I wonder if there's a world that takes input from a MIDI drum kit. Even if I know it'll be laggy.

#

... and that my drum kit and gaming computer are not in the same room.

#

oh hey I really like the effects you have there

hoary nimbus
meager igloo
#

Yeah I know the keyboard worlds work, I keep meaning to drag my keyboard into my office and test it for real

dark violet
#

Can any1 tell me how to compile Udon...or help me with compilation errors?

meager igloo
tulip apex
#

1:1 recreation of Minecraft Beta 1.7.3's terrain generation with cubic chunks (WIP, ignore the lack of features and broken biome spread, and mirrored terrain)

#

Every seed including classic ones like Glacier, gargamel, etc generate exactly the same including the distance effects, there are some bugs right now but that's just because i'm moving stuff around optimizing it

fathom igloo
#

at first I was like "why is there a random Minecraft screenshot in the VRChat Discord..."
very impressive work

tulip apex
#

The only thing that's not gonna be 1:1 is the world size of course since you can only store like, 100kb of save data iirc

#

So it's probably gonna be like the console edition old worlds

#

Or just show a screen with a top-down view of the world before you generate it so you can choose which area you want to use

#

The player movement isn't 1:1 but there's not much I can do about that afaik

drowsy orbit
#

Is the save-data consideration because you're wanting to allow live-editing of the terrain as well?

tulip apex
#

you already can edit it

#

you can break and place different block types

drowsy orbit
#

cool cool

tulip apex
#

for the save data i'll just save the modified blocks and regenerate the terrain

humble galleon
tulip apex
#

yeah sure

faint charm
#

👀

#

Casually witnessing history over here

covert night
#

👀

tidal thistle
median crest
compact moss
faint charm
solid elbow
#

For worlds

faint charm
solemn oasis
warm pewter
solemn oasis
stone summit
covert night
#

ive done that for a roleplay event, was really fun indeed

tidal thistle
solid ridge
#

DDR style arcade machine test, using the chair to play using WASD but there are colliders for the foot pads for full body, currently using a step map generator that uses the beat of an audio file to generate the arrow pattern, each song has a variation of difficulty for testing and the player can set difficulty which just skips a number of step based on the lower difficulty

#

And 2 players should work, just need to fully test that

solid ridge
high seal
prisma tinsel
hazy trout
#

Engine stalling feature with delayed manual ignition. The ignition input is also bound to the throttle for convenience.
My public worlds currently have instant engine ignition via throttle if it stalls, and I want it to be impactful to gameplay in the future by having the engine stall be more detrimental to time based activities

warped dune
#

EditorXR...
VRC SDK...

Yeah, clearly ClientSim does not like it but it works.
Basically testing stuff out in Editor.

proven totem
#

i'm guessing with the unity OpenXR plugin?

#

oh. maybe not since it doesn't look like hand controllers are being used.

warped dune
proven totem
#

Oh... have not seen this in a long while!

warped dune
proven totem
#

i mean just enabling the XR stuff you're required to have with the VRC SDK already gives you "a" view. you have to add a component to the camera for it to track with the hmd tho.

warped dune
#

I wonder; I might look into it

proven totem
#

I've been doing some experimentation with... ClientSim... for sometime now... Been sitting on something for a while, should prob just showcase it at some point.

proven totem
# warped dune 🤔

It's called a Tracked Pose Driver. if you want something really, really basic just check the Initialize XR on Startup in the Project Settings > XR Plug-in Management and add a Tracked Pose Driver to the ClientSim Head object in Playmode.

warped dune
hazy trout
tidal thistle
gusty snow
mighty plinth
misty gull
twin depot
#

no way it's maxwell the cat

solid ridge
twin depot
#

i love custom inspectors

#

i get to have structs without actually having structs

warm pewter
twin depot
#

separate arrays, figured it would be simpler

#

i added debug info too, so you can see the internal arrays

#

i haven't used data dictionaries yet

woeful wasp
#

that's a good idea!

drowsy orbit
#

wouldn't work with references, however

covert night
#

And class “structs” also can be using [System.Serializable]

#

Makes very clean and easy to set up inspectors

drowsy orbit
#

Really? I'll need to look into this

covert night
drowsy orbit
#

lol

covert night
#

Remind me if you didnt find how to by then

#

It was so easy, didnt even need custom inspector for it

#

Made an ability list with ints, strings and all

#

Been a few months tho

drowsy orbit
#

oh you're talking about Merlin's U#

covert night
#

Yep

twin depot
#

i don't get to try udon 1.2

misty gull
#

udon 1.2?

lofty flame
#

it's very nice having explicit types

i had some issues with performance using it recently though, like i had list where i iterated a few elements every frame. it became very expensive to interact with the list itself

i'd still use it for things i don't do often though

woeful wasp
#

i haven't tried the List/Dictionary replacements yet

lofty flame
# woeful wasp i haven't tried the List/Dictionary replacements yet

the other useful thing is data structures, you can do like new SomeDataClass() and hold data structures in a collection, rather than storing things in sequential datatokens within a datalist within a datadictionary which requires like a lot of indirect accessing because of datatokens

(so things end up being less verbose and more explicitly typed, which i find less error-prone)

woeful wasp
#

oh yeah, that's the main thing I use it for

drowsy orbit
#

I imagine that U# to Soba conversion is going to be harder if you're using Merlin's U# unless Merlin is able to make their own conversion stuff.

proven totem
#

not sure why it would be. afaik Soba Programs (based on the Dev Posts) will be using C# sources and should be about as open as U# 1.2b, if not more. If anything it's probably more prepared for Soba than base VRChat provided U# 1.0

drowsy orbit
#

The roadmap does mention migration tools as a specific thing that needs to have focused work put into it, which implies the process won't be that simple. Maybe that's more specifically a UGraph thing?

proven totem
#

maybe, tho i imagine the "difficult" part of the migration is replacing all scene references and prefab references (if they are going that route)

#

otherwise i imagine it's just changing the usings and class inheritance (and also UdonSharp Assembly References if that's being used)

#

what i feel is that i don't think there is much of a difference between the two version of UdonSharp in comparison to a hypothetical Soba Program migration
they both have C# source files which will likely be the main thing migrated

drowsy orbit
#

Oh yah... U# prefabs are very janky....

covert night
#

He’s been very active at patching new issues that come up and this one would be significant

proven totem
#

i just want to see my parse log file menu option be implemented in the VRChat U#

#

it's in Merlin's U#

#

it's fairly simple and just lets you give the UdonSharp console analyzer a log file to nab exceptions from like if they were executed in clientsim

covert night
# proven totem it's in Merlin's U#

Are you talking about the thing that raises an exception in the unity console if you have it open while a running vrc client gets a udon crash?

#

If thats it, then youre right it is very useful when witnessing a bug firsthand in an instance

proven totem
#

exactly

covert night
#

Yeah

proven totem
#

tho it's so you can use it with any log file, not just from your client

covert night
#

Sensical

proven totem
#

so you don't have to read through someone's logs manually for an exception

#

tho obv it's only as useful as when people have Udon Debug logging enabled specifcally

#

otherwise it's a generic exception message which is enough for getting an idea on what broke

median crest
zealous ravine
#

made my star too strong just casualy yoinking my spacecraft out of all orbits XD

median crest
#

Definitely needs some textures and i dont even want to think about proper lighting yet. But here is my World so far, each of these is a randomly generated room.

twin depot
median crest
#

On an unrelated note, if I’m able to move around, light probe groups at runtime I could make some very cursed zones where the players are lit horrifically incorrectly

twin depot
#

nope, moving lightprobes after they’re baked does nothing

#

they have an API with methods to move them during runtime, but i believe they are not exposed to udon

#

you can move VRCLightVolumes though, as long as Dynamic is enabled on it

median crest
#

Hmmm interesting

errant epoch
hazy trout
#

I was testing an 80 kg rider made of rigidbodies attached to the vehicle and the body moves left and right for leaning. I don't think VRC's handheld camera had this use case in mind on the bottom right of the video

sharp rock
#

Was able to pull off somewhat decent thermal scope by using modified UniSight shader and cameras (unfortunately). Since it's integrated to my WIP gun system, thermal scope can change color modes by clicking on it.

#

(The UI in the scope is fake vrcCrying )

winter glacier
normal dirge
#

✨ PROGRESS ✨

Still some issues that need fixing.
Kinda scared about making a full fledged system of manager scripts.
It's eventually going to become an extraction shooter with persistence for the inventory.

stoic juniper
#

https://x.com/gokonic4/status/1963022531176300615?t=U2kazIcNrZyyykPcJiOVmg&s=19 making a fully functional dragon ball world, just some scripts i created including a newly made flying script mimicking a dragonball game

Added A Lock-on and Quick Teleport Feature.

#VRChat #VRC #VRChatPhotography #VirtualReality #VR #Gaming #VRGaming #VRChatWorld #VRChatCreator #VRCCreator #NewVRChatWorld #VRWorlds #VRChatWorldCreators #Unity3D #Unity #VRChatSpotlight #VRChatAvatar #DragonBallZ #DragonBall

faint charm
#

So many tags @_@ this is why I could never use twitter

#

Flight & movement look really smooth and fluid!

stoic juniper
#

😂I didnt know which tags to use so I just asked chat gpt

winter glacier
#

it's lacking a couple of things like inserting ranges

#

can't really remember the others of the top of my head

normal dirge
#

Still some issues, but the combat system is progressing further

plucky pelican
#

only for Android: Meta Quest / Pico4

faint charm
#

I will never understand why this dude posts pictures of the world name instead of direct world links

#

3rd time this year 😂

plucky pelican
covert night
#

Advertizing your world this way isnt gonna be very effective

plucky pelican
frigid bronze
#

I think he's just saying you should use a link to make it easier...

marsh quartz
#

Working on a procedurally generated waterslide world using shaders. Udon for the physics, but everything is rendered as you go.

faint charm
#

backrooms af

covert night
marsh quartz
# covert night Wow! Im interested in the technical details if you wanna talk about it

I’m still working on the udon side of things but the general idea is to use a simplified version of the slide signed distance function to generate a normal vector underneath the raft/tube and have it more or less track the inside of the slide, applying a bit of gravity and forward motion. The SDF is just a hollow torus with the top cut off, and since the function is defined everywhere, not just along the surface, I believe I should be able to make the motion very smooth and continuous. Much simpler and realistic than using a mesh collider I think.

#

As far as the player control, I would like them to be able to shift weight side to side to affect how they take the corners. Maybe even gamify it into a race, like bobsled.

#

The layout is based on the Truchet algorithm, and is on a square grid right now, but I may try hexagonal as well. It may be a bit more relaxed.

faint charm
#

RNG mario slide race goes hard

#

Please, keep it up 🙏

crimson grail
#

so much left to do but Can almost make a croissant I've been at this none stop

marsh quartz
#

I have moving nice looking water now, and a vector to show the direction and speed of flow. Added a bit of color for fun.

solid elbow
#

No way the infinite ikea slides

marsh quartz
#

Trying some new coloring and water with better refraction. Not physically accurate yet, but close. At least up to the first bounce.

tidal thistle
safe adder
#

I've been working on a little Liquid Mixing system! There's a few quirks I still gotta work out with it, but I'm hoping to get it finished very soon. maybe I could make a fun potion mixing world for halloween Or just another bar world for ppl to mess around in lol

meager igloo
marsh quartz
#

I got the basic physics working on my slide. No friction or control over anything though, just gravity, so it's wild. Please ignore the buggy water.

meager igloo
#

haha, much flailing

tropic gust
keen forge
#

Sick

glass thorn
#

that's so stupid good.

steep bluff
tropic gust
#

Oh, you're welcome! ❤️

lofty flame
#

i've been working on a runtime editor style thing recently

the ui is very minimal and hard to use without knowing how it works a bit, but the system actually does the thing it describes

it's the result of a lot of my accumulated learning to actually make it in a sane way that can be expanded on. the key concepts would probably be serialization, netcode and persistence

everything defined is synced and persisted, all players can contribute to editing (players can select and manipulate the same object at the same time if they felt like it)

some of the naming i used is similar to resonite, as the concept is very similar

safe adder
twilit solar
narrow oar
solid elbow
twilit solar
tulip apex
#

Got the lighting system fully working and 1:1

#

Still working on moving it to a fake compute fragment shader

boreal yoke
#

aight here me out...that ^ as a tabletop sized area in a world that you can terraform with friends and maybe roleplay tabletop games like warhammer 🤔

faint charm
#

I’ve made a hexagonal level generator before but couldn’t figure out how to program the game I wanted around it 😔

twilit solar
hoary nimbus
tight inlet
#

After more than 2 years, I was able to finish this Action RPG World!
I hope to reuse this framework to make a PvE focused game at some point :3
https://youtu.be/QtGOjDcGSjo

Welcome to the Battle Squareǃ An Action RPG PvP Game where you fight friends in this fast-paced combat world with lots of Classes and Game modesǃ Unlock over 70 cosmetics‚ achievements‚ and rackup stats․

YOU CAN PLAY THIS FOR FREE IN VRCHAT! RIGHT NOW!

https://vrchat.com/home/world/wrld_8c4f43da-c0c0-41a7-baa3-bedc30e38048/info

What ...

▶ Play video
narrow oar
tight inlet
#

Thank you so much ^^

glass horizon
#

I made a little game based on Boomerang Fu to play with my younger siblings and decided to make open source since it was such a pain to develop. I published it yesterday so it is currently still in labs but here's the source: https://github.com/IdreesInc/Shuriken-Showdown
And here's the world: https://vrchat.com/home/world/wrld_b4e39cd7-9a79-4b8e-9669-689c8bb3535d
Hopefully the networking logic in particular helps someone else since that was the most challenging part!

GitHub

A VR party battler game inspired by Boomerang Fu. Contribute to IdreesInc/Shuriken-Showdown development by creating an account on GitHub.

Up to 8 players can duke it out in this open-source party battler inspired by Boomerang Fuǃ Collect upgrades‚ dodge shurikens‚ and get the most kills to winǃ Shuriken Showdown is now available for be…

ivory kestrel
glass thorn
#

It's definitely cool from a creator perspective (I'm curious how you managed to get the data into VRChat), but I just don't see this particular application of it being fun.

hazy trout
#

A ghost replay system that records at 20hz for a 19km road layout, and a non-linear spline based waypoint system for getting the time difference between the current and past laps. This way drivers can race against their previous or best lap for the car.

fierce flare
twin depot
#

oh i didn’t even think about that actually, i just saw it working and it was cool

dim geode
twin depot
covert night
tight inlet
#

Thank you deblob 💙

raw crow
ivory kestrel
#

(actually now I forget if it's point clouds or like a depth map, but it's something like that)

drowsy orbit
#

Labs works in very weird ways. I think even if you have the best world in the game you'll still struggle to get it out of labs without manually boosting it.

#

As long as a world is in labs it'll get almost zero visibility

slim peak
proven totem
#

something that i've tried too is if it gets stuck in community labs for a long time (like more than a month) i unpublish, change the thumbnail a bit and publish to community labs again so it gets a new start

drowsy orbit
#

I've also heard that having friends hang out in your world can help a lot

#

Time spent in world might matter as much if not more than visits

proven totem
#

i think that helps primarily because you are encouraging some activity for public instances by being there yourself

#

i've noticed i could go to one of my worlds and if i spend enough time there it's almost bound to have some random player pop up, especially if it was recently published/updated

#

helps more with friends

#

there is also just the self advertising you could do by going into a public instance of a more relaxed public world and asking players to check your new world out

#

helps more if the world is similar to another existing world that players are active in.

hoary nimbus
#

Not much but it's honest work. WIP Working on a dynamic animation system & automated 2D card game (ignore the card textures, they're just temporary while testing).

hoary nimbus
proven totem
#

simple thing to have on the side that lets you get approximately where the VRC ui pointer is in Udon

hoary nimbus
proven totem
#

define native UI

hoary nimbus
#

looks like it does from the video 😄

proven totem
#

it should work for anything that is a Canvas and has a VRC Ui Shape component (should be same requirements as VRChat's UI interactions)

#

but you can interface with it in Udon to get a Ray for raycasting your own elements

#

like what i'm assuming you are doing for Desktop

hoary nimbus
#

Yeee pretty much. I've got base class for generating the ray and handling the mouse pointer, etc. Then two classes one for VR & one for Desktop to just define the ray origin and directions for it

#

Want the Desktop version to be fullscreen using another camera so it's like a normal game outside of vrchat

#

but ty ty for the suggestion, i'll give it a look over ❤️

twin depot
#

it was fun to solve the little challenges it presented.. like when it spawned 5000 balls in one second and crashed unity instantly

faint charm
twin depot
#

i tried playing it on my phone a couple days ago only to legitimately have an ad every 30sec, so i decided "fine, i'll do it myself"

faint charm
#

Even better if its synced so people can watch each other play

twin depot
safe adder
humble galleon
safe adder
# humble galleon Nice! Will this be available anywhere?

There's 2 worlds on VRC that use the system currently:
https://vrchat.com/home/launch?worldId=wrld_b2592fa6-b39f-4c38-8997-b750ee12ab08
https://vrchat.com/home/launch?worldId=wrld_6ccc5e40-0af7-43c5-937a-8c5d1ab7c4a2

And the system itself is for sale for other world creators on my Gumroad (link to that is in my Linktree on my bio, idk if I'm allowed to send it here vrcTupDead )

winged galleon
#

made a little debug ui for my world (uses my custom api)

winged galleon
#

it's a little slow rn

glass thorn
#

What is it for? Remote world/inter-world management?

winged galleon
glass thorn
# winged galleon Yeah kind of. I have a central dashboard that I can easily update settings per-w...

I had no idea you could communicate between worlds. I thought I would have to try to update some common database, then download that common state from individual worlds (and maybe that is what you're doing). I hadn't considered what's possible with something like inter-world API.

I haven't really gotten close enough to player data / persistent data to try anything like that. Could be cool for special, global "player did a thing!" events.

proven totem
winged galleon
#

All from my dashboard, eliminating the need for rebuilds to change things that would be changed a lot.

glass thorn
#

That is really smart. I haven't delved at all into managing worlds post-upload. I'd be really worried about losing player data somehow, so something like this for minor data-level updates is brilliant.

winged galleon
#

db api go crazy

#

The thing is, I don't know if many people will recognize how much goes into this. As far as I know, something on this scale has never been done before.
If only the devs saw these crazy things I do

solemn oasis
# winged galleon The thing is, I don't know if many people will recognize how much goes into this...

For the average user, unlikely to notice since they're not really familiar with that stuff. I had my own per-user settings persistence system in the avatar search world back in 2023 long before proper persistence was a thing, and almost no one noticed lol.

But that's what udon-showoff is for. Very cool idea, and well done 😎

I am curious though, how do you handle the fallback case of if the user doesn't have untrusted urls turned on? Just run with the default values in the world? Or do you have a less frequently updated static copy of the data on a trusted host like GitHub?

winged galleon
# solemn oasis For the average user, unlikely to notice since they're not really familiar with ...

It just goes off default values. I'm using a modified version of Udon, so I can make non-behavior classes, and I have made a helper class that allows me to specify a config key, and a default value.

For any of the text, it's just filled with read text that says "PLEASE ENABLE UNTRUSTED URLS". It auto refreshes the config every 10 seconds, so that they don't have to rejoin.

The GitHub idea is actually smart, but my system just wasn't designed for it.

#

I also have a debug console in the game, so I can easily see where it fails.

drowsy orbit
#

I imagine that's how that Tower of Babel world worked

drowsy orbit
drowsy folio
#

Had a project I've been working on for too long, and finally got it rolling, the Hero Script System https://youtu.be/Vor0wK0GUbc

Welcome to the Pre-Release for the Hero Script System! I've been developing this a long time in order to make a tool to pave the way for my future projects, as well as give people the ability to use them in their own worlds! Come check out what it has to offer~!

~Check it out on booth: https://heroesnfools.booth.pm/items/7631255
~Any feedback y...

▶ Play video
#

vod shows bunch of what's in it, but its a modular based system that allows sloting in/out many different functions, as well as adding a configuration based scripting system to make it easier to customize. I hope to get it functionally capable of running somthing like a Dark RP or GTA RP kinda world

#

rn main bits i have are items, ways to hook into various vrchat functions, persistance along with other ways of handling data, along with various values that can be stored in players, items, or in world with complete sync

lofty flame
#

i've been working on custom networking lately, this resembles working with something more akin to client-server

it's pretty far into networking territory and i don't think i did it justice with this long boring video, but maybe people who like networking will find it interesting anyway

drowsy orbit
#

pretty neat!

#

I've created systems that instantiate the non-networked elements (for example the renderer) of networked object, but this goes quite a bit beyond that

faint charm
#

That’s really neat!

drowsy orbit
# lofty flame i've been working on custom networking lately, this resembles working with somet...

So the networking is done via events, right?

If so, I've been thinking about it and I have a couple of questions:

How does it handled people joining the world in a staggered manner? Does it restart the sync for everyone? Does it split up the rate among everyone? Does it put people into a queue?

And I presume you have your own system for choosing the host that is separate from VRC Master system, right? If I understand the docs for Master correct, event-passed networking can desync if you rely on master.

lofty flame
drowsy orbit
#

nod nods

twin depot
#

i wish networked instantiation was simple, if it was then i could make my current project actually succeed

faint charm
#

I just started writing generalized scripts out of my current instantiable-item system yesterday… I’ve got one more script to set up for that today then I can send it over so you can understand how/why it works? 👀

lofty flame
# twin depot i wish networked instantiation was simple, if it was then i could make my curren...

the premise of network instantiation isn't too difficult, with known prefab types and a central source of identifiers, you can refer to objects on anyone

i.e. "hey everyone, spawn this object with this prefab type and give it this identifier." now everyone has an object they can refer to as the same instance

the difficulty (in my opinion) comes from late join handling and modularity

the systems i've seen people use are generally rigid/specific to their object types, which can be hard to extend/maintain. my handling resembles working with something more like a network library, in that i can implement arbitrary network behaviours without any specific handling or knowledge of what they are on the manager level

that's the part i feel requires decent understanding to design

lofty flame
faint charm
# lofty flame i'd be curious how you handle it btw if you're interested in sharing

Just a suuper simple implementation of your same description, sync the spawning of an item prefab and add to an array then give that item an ID equal to its index on the array, then sync a string on your PlayerData for left or right hand grabs that includes the itemID and its pos/rot offset from your hand bone so others can use that synced string to “attach” that itemID to the hand

#

Synced string has extra space for pos rot velocity that is re-synced on drop so everyone drops the item and throws it in the exact same direction as the original player for perfect (enough) physics

lofty flame
faint charm
#

I don’t like syncing new data every frame, this system avoids that by using the original calculated offset + itemID to position it anywhere the player goes without clogging the network data

lofty flame
#

yeah using synced offsets is much more efficient for pickups, i believe it has some difficulty with hidden avatars and potential oddities with swapping avis, so i tend to avoid it personally, but it is very efficient

faint charm
#

It looks horribly offset when their avi is hidden yes 😂

winged galleon
#

Here's a chopped-down, sorta merged version of my dev talk posts in my server. If you want to see the full thing, the link is in my bio (kinda hard to fit so much info into one message lol).

My most recent world may just seem like an empty room, but it's actually full of a lot of technical surprises, and challenges.

My goal was to create a configuration system that updates in (almost) realtime, which allows me to change anything in my world from a dashboard without updating.
There are a few challenges with this. Firstly, VRChat has a hard, global limit of one request every 5 seconds. This means that it's impossible to make a truly realtime system, and the room's entire string downloading limit gets backed up with requests when you try to download something elsewhere. This is also very performance heavy, not only on the game, but also the server, due to the way in which it was designed. The instance owner downloads 11kb of data every 10 seconds from my API (which runs on a slow laptop), and then syncs it to every other player in the instance, causing major lag spikes. I tried to reduce this by only pulling everything when changes are detected, and that would work, if it actually detected changes in relations (my database uses a lot of those). The more stuff I added to the config blob that it downloaded, the worse the latency got. Last time I checked, there was around 1 and a half seconds of latency, which is absolutely horrible.

I wanted to implement user linking, but designing a system for that would cause a whole set of issues on its own. I then discovered this system called "VRCLinking", which supports adding custom JSON data into the config that it downloads. I asked the dev about rate limits, and he actually offered to lower down my cache time, so that refreshes were faster. I haven't tested this in an actual world with numerous people in it yet, as I will have to rewrite my framework to support it, but in theory, it should allow me to keep everything in sync with a maximum of ~15 seconds wait time while everything syncs to the world.

This will basically allow me to not only do the cool stuff that I was already doing with the world, but also control certain aspects of the world with Discord roles!

The existing API system (based on PocketBase, an open source all-in-one database and API solution) was lacking many features required for the realtime system that I was designing, so a lot of (potentially inefficient) workarounds were used to make it possible, which included clever rerouting, custom raw JSON modification, and an ungodly amount of huge custom database queries. This caused the system to sometimes get clogged up with requests, and it was hard to add new features without getting a headache.

The recent updates have introduced a new "sync server" that allows me to integrate my existing system into VRCLinking for easy account linking. The first version of this was done by hammering both my database, and VRCLinking's API with requests every 5 seconds, resulting in absurd bandwidth usage. The second version still spammed my database with requests, but introduced a hashing system to reduce the requests to VRCLinking's API by only posting data when it was changed. The third version (which is live now) subscribes to a "Realtime SSE" channel on my database, so the sync server gets notified when data changes, without having to constantly request it. This is still a bit unstable, as my server likes to kick random sessions off for some reason (still debugging the cause of that), so data may not be sent if it was changed in the process of a forced reconnect.

#

.
There was maintenance that just happened with my server which was due to me adding custom JavaScript functions to my API, which automatically sort the data directly, reducing the need for a large amount of database queries at once. Instead of querying the database for each relation (or link to another table), it queries it all in one go, then filters out the unused or old values that don't need to show in the final result.

All of this increases the efficiency of the system, as less requests are made overall, and less bandwidth is used while processing those requests, due to them being smaller.

Here are some random screenshots of my progress in no specific order (I'll send more later when I find them):

#

If you read all my yap, thank you lol.

meager igloo
#

I did, and it all makes sense 🙂

#

Nice work

solemn oasis
#

While it's still not realtime, any reason not to use image requests in parallel to reduce the time between requests from 5 -> 2.5 seconds? The max size is smaller (16 MB of data per request if using raw pixel values), but otherwise it's useful for speeding up both sending and receiving data. Even easier now that we're getting the ability to distinguish between the request types in the main release soon.

#

For VRCanvas, I cut down on bandwidth by generating whole frame snapshots of the data on the server every 5 seconds, alongside a diff frame which only contained offset values relative to the previous frame. Clients only get the whole frame when they join and then once every 5 minutes, or when they place a pixel. Otherwise they just request the diff frame, which is usually just a few hundred bytes. Obviously a bit different with JSON data, but the same principles could apply with just providing data that's changed on one endpoint, and the whole structure on another for joins and resyncs.

gaunt night
solemn oasis
gaunt night
#

That is strange. But good to know.

lofty flame
#

i've been adding support for network object parenting. i wasn't sure about adding it at first because it wasn't part of the original plan and i had limited use for it. i decided to make a test case for it that made a bit more sense. on the host this example looks like a trigger enter or exit that sets the parent, it happens to handle the case of objects in a cart pretty well

it does require some specific handling on the interpolation side remotely to swap out the working values upon parent change; when space switches between what is effectively world space and cart space. otherwise it's pretty straightforward

solid elbow
#

Actually a really cool project. Do you ever plan to make this open for others to use or do you have some use case you're building it all for/wanna share the end goal?

tacit bronze
#

have been working on emulating early 80s LCD games, by porting the mame drivers to udon

lofty flame
# solid elbow Actually a really cool project. Do you ever plan to make this open for others to...

i've been feeling restricted under vrc's networking model. there's a lack of true central authority and no network instantiation. pooling and PlayerObjects just don't scale at some point or work for certain things (hard limit and fixed ownership respectively.) i got to the point where i felt i could try making an alternative

i'm considering making a public version eventually, but i'm new to releasing public facing stuff and it's not especially user-friendly as i don't know editor tooling or codegen. it also isn't a great fit for vrc's drop-in, drop-out style. it strictly cannot change host, but maybe some would consider that acceptable for more advanced logic (it may be hard to explain to players though)

there's not a real end goal, i'm currently using it for personal samples to figure out what things are working or what i need to add

winged galleon
#

Just gotta keep within that 100MB limit

glass thorn
# lofty flame i've been feeling restricted under vrc's networking model. there's a lack of tru...

I encountered this a few months ago and ownership management was a nightmare. I thought "maybe everyone who makes a cool world goes through this and I'm just dumb", but transferring entities between players is painful for me. I think it'll still work out, but just when you think you work the bugs out, they come back full force in a real VRC instance.

If you manage to come up with some kind of accessible framework, the barrier to entry for making more engaging worlds would lower dramatically.

lofty flame
# glass thorn I encountered this a few months ago and ownership management was a nightmare. I ...

i think it's really glossed over in the context of vrc because it's just the norm, but it really does take a lot more effort to make what i'd consider correct networking

i think it adds up a lot across different logic

i was making a mining style thing, you go hit large rocks, ores pop out, rocks respawn eventually

in distributed authority that's not very straightforward to manage

if you want the resulting ores to be synced, they need to be pooled and you need to route through the master anyway to avoid race conditions. this is with the premise of not using player objects simply because they can't be interacted with on other players in a normal way (picking them up wouldn't be easily possible for example)

rock cooldowns have to be synced in some way so anyone can query and see if a rock should be respawned if they're the authority of it

hitting rocks/determining who gets ore from the hits isn't straightforward. if you use the default vrc style way of ownership transfer it's even more convoluted than routing to the master imo

it's so much random complexity across things. and it doesn't really exist in a server scenario

the master can randomly become unresponsive or change out so it's not strictly reliable, but i end up having to use them regardless because it's still better than swapping ownership in a lot of cases. so it's like this worst of both worlds thing where suddenly you have to account for this central figure randomly disappearing at any point

like to present the alternative; in a server-based system with instantiation, it's trivial to determine who the host should allocate mined ores to from incoming events. there's no strict requirement for pooling or hard limitations. it's trivial to run a rock respawn cooldown on the host, with no concept of that needing to be networked, just the resulting fact that the rock is there or not there. like i can actually just consider the logic of the systems, it's not this weird "what if someone randomly has to take over now"

i've had a lot more fun just implementing logic without those issues, it's the most amount of item types i've made in any project i think. though i wouldn't consider it approachable to the average vrc creator that's maybe more familiar with the distributed authority concepts

sorry for the rant lol

glass thorn
#

no worries, haha. It's nice to have someone who has also suffered this to commiserate with. I feel like after I make this world, I won't make things in Udon anymore and I'll be like an anime character taking off their hidden body weights. Standard Client/Server will feel luxurious.

Your rocks are my fish. I divide the world up into zones, each with a "ZM" who spawns from the zone pool, so not all pool spawns are through World Master (WM). For scalability, fish use a standard prefab then "polymorph" into different species/variants by swapping the mesh, texture, and material at "spawn", so I can get away with ~256 pooled prefabs per zone. I think if I had to do rocks, it would be a zone-level ownership thing, and the ZM would determine who gets the ore based on RPC calls, then spawn a pooled "item" prefab, polymorph to rock, grant ownership to first striker. Maybe naive.

Yeah, world master (or ANY) player just logging off is another obstacle. If a player dares to log in, enjoy your world, and log out, then they have done the forbidden and your world will be punished. We should just incentivize players to never log out, but having an "orphan management" framework (for managing those lost items from logouts) seems to work. Just have to be careful of handing off state and re-initializing it when World Master logs out and everything is yeeted to the new WM.

Yeah, I can't wait to be done with Udon.

lofty flame
glass thorn
drowsy orbit
#

I know I had a lot of difficulty with what seemed like a fairly simple task: the ability for two players with different decks to be able to draw cards that are pickupables that can then be picked up and interacted with by either player.

Think I finally found my solution:

local player determines they need a new generic pickupable card object and requests one from a central authority player (with a backup to resend the request to a new central authority if the previous one leaves)

the central authority finds a generic pickupable card object not in use and not recently handed out and sends that object's id to the requesting player

the requesting player then claims ownership of that card object and sets its networked values to indicate it is in use and also what type of card it is (the card type is then used to instantiate the rest of the card)

lofty flame
#

some pretty recent testing i've been doing in extrapolation and origin shifting

all of these include 2 clients. in the helicopter portion, the right client is piloting (i don't think it's very apparent)

rotund cave
#

Making a Sims-Like starting with build-mode. Works and syncs up okay so far. 🙂

#

Still planning how I should handle roofs.

hushed tiger
rotund cave
#

Outside of that, there will be 'snap points' that I'm going to add so that the player can for example, add a window to a window frame.

That won't be using the same cached structure system as this.

lofty flame
rotund cave
hazy trout
#

Multi-section tire temperature by storing neighboring indices in the Editor and then looking them up at runtime to transfer heat to neighboring sections

hazy trout
tacit bronze
flat trellis
#

i'd pref speaking in dm though I rarely check servers.

lofty flame
faint charm
#

I love it :3

lofty flame
drowsy orbit
keen forge
twin depot
#

just thought i'd share another cool custom inspector i made, cause i find making a bunch of automated stuff with buttons to be really cool (also, the colors can be changed dynamically with my theme picker, i just have it red and green for christmas)

meager igloo
#

Custom inspectors are fun

twin depot
#

it’s especially nice learning editor scripting, because of all the automation you can do

#

like, instead of having to go through and type all that information, or drag in all those different references from the hierarchy, i just tell the code to locate everything for me

#

and i can even load my sprites from the assets, so i literally don’t have to do anything except type the description and name for my duck cells

meager igloo
#

Oh right, ducks, now I remember

ripe bear
hazy knot
#

been working on an intercom system that plays your voice across multiple speakers throughout the city in real time. This video is of a person with a voice changer using the system in real time

humble galleon
dire oriole
#

🙏 Please give us more tools related to the player transform so we don't have to do stuff like this.

fierce flare
hazy knot
#

In this case, she's using FL studio and creating her own voice changer. I sadly can't tell you exactly what's in the secret sauce but she spends a lot of time perfecting these

#

She also just sounds like Ellen McClain which makes mimicking the voice a lot easier

tired nebula
#

I created a course to create a multiplayer game with VRChat and Unity. https://www.yourvrexperience.com/🎮-learn-to-build-a-multiplayer-vr-game-with-unity-vrchat/

🎮 Learn to Build a Multiplayer VR Game with Unity & VRChat This course is a hands-on introduction to programming, multiplayer systems, and game development through the creation of a real multiplayer VR game. Students learn by building, testing, and improving a complete project using Unity and VRChat. Expand the sections below to explore who

smoky lava
quasi jolt
dire oriole
quasi jolt
severe lichen
#

Procedurally placed obstacles for my racing game island marathon, everytime you restart the race, the obtacles shuffle around the track, instance owner and other players can see the exact placement using a networked seed

smoky lava
#

cool!

#

I want to do that for my game too

glad wedge
#

This project has taken a lot longer than I wanted it to 😅 Might be the one to finally push me into U# over graph

I made a image compression script for udon. The source image on the left is 768kb lossless, the right image is only 114kb total~

It takes an input image then:

  • Splits it into Y Cr Cb
  • Make the Cr / Cb half resolution
  • breaks each channel into blocks
  • determines a max and min value for each greyscale block
  • determines if each pixel in the block is closest to the max, min, or one of the two inbetween values
  • packages four pixels at a time into a single byte (2 bits per pixel, based on above) in an array
  • Sync each channels bytes, and accompanying min/max byte arrays
  • Does it all again in reverse on the client to build an image.

So for my example output, it's using

  • 64kb in value data for Y
  • 16kb in pallet data for Y
  • 16kb color data for each Cb & Cr
  • 1kb in pallet data for Cb & Cr
    = 114kb total~

You can scale the blocks up and down for each channel which is fun to play with~ Thanks @sharp yacht for pointing me on the right direction here

meager igloo
#

in udon, so like, at runtime in the game?

#

huh, neato

steady gazelle
#

neat, sounds similar to dxt/s3tc/bc. what's the use case, make world sizes smaller or just for fun? if for world size, how does it compare to crunch or just normal dxt?

warm pewter
glad wedge
#

@steady gazelle / @warm pewter exactly~ I want to use it to sync images across clients in udon, I'm building a world centered around taking and sharing photos~ and I've never been very satisfied with the polaroid "take all photos client-side and hope it looks the same for everyone" solution.

I started closer to BCn compression, where you pick two colors as the pallet, but choosing those colors required really intensive processing, so I ended up doing a more jpeg-y approach~

Even with my compression, a 512x512 image could take 10-20 seconds to sync from client to client... so every bit counts~ I'll have to build some waiting into the game~

glad wedge
faint charm
#

In my experience polaroids aren’t client side only- I see on polaroids what the other player took, not what I would see in my end? 🤔 unless I misunderstood phrasing

solid elbow
#

Usually yeah, they're what you see, just taken from another player's pov, but that's not always what the other person sees especially in busy scenes where syncing isn't exact. I think this approach can enable exactly what the other sees similar to prints. It might be handy to see what they see especially on a different platform

faint charm
#

Oh weird, didn’t know it had trouble in heavy instances

solid elbow
#

I mean. Things in motion aren't synced exactly. Only at rest are they the same for everyone eventually

keen forge
#

And Im pretty sure they're talking about the in world cameras not the vrchat plus one

faint charm
#

I see other people’s views when they show me polaroids

#

I have everyone disabled 24/7, polaroids show me what THEY saw when I get them

#

I’m very confused about all this because I swear I see their perspective, not mine

glad wedge
keen forge
covert night
#

well done

solemn oasis
glad wedge
# solemn oasis How's the time performance of the compression and decompression for images of va...

Like his long it takes the program? Not great! But not unbearable.

All my tests have been 512x512 since that's the max I'll use for my game.

In desktop mode my computer hangs for a second or two on encode and then again on decode. It might be a little worse in VR

Certain jobs here could probably be good fits for some kind of compute shader, but I'm ok taking the L for now and having people crash out a little

drowsy orbit
solid ridge
left sluice
#

cute

winter glacier
glad wedge
winter glacier
glad wedge
#

that's for 512x512 which is the most I would want to send over the network anyways ❤️

fierce flare
#

just wondering if you can divide it to run in batches, and run each batch in the next frame or a predetermined delta time, so it wont freeze

glad wedge
solid ridge
covert night
drowsy orbit
covert night
#

what would be the benefits of doing it by runtime?

#

aside from playerobjects

ashen tide
#

I made a fully custom piano networking with batching and time syncing
Everything you hear went through the VRChat network
The player with the sound (right) is not the one playing (left)
Apologies for the bad playing my hands were sore

I'm planning to add a 100% accurate mode which buffers the audio by 1 second to guarantee time accuracy of every input, at the cost of more network usage... And 1 second latency

rugged brook
ashen tide
drowsy orbit
hallow brook
#

I was finally able to get a set up to create a "database" to be able to reference at any point during run time. This will essentially allow me to pull data about any monster/card type and return all the respective data for them. This just shows the name and the associated ID with it. Research points would be tied directly into playing to unlock more cards and to progress for single player runs with permanent upgrades

drowsy orbit
drowsy orbit
hallow brook
drowsy orbit
# hallow brook I think I have something similar to this. Since I have a default game object wit...

Well to clarify, the goal of the external database was to support VRC Persistence. That is, no matter the changes I made in my scene and project, the UIDs saved to a player's Persistence Data would always point to the same cards.

The system is also designed in a way where to add new cards to the external database I just need to click a button in my editor, never needing to hardcode stuff in my scripts.

twin depot
meager igloo
#

you could do that, sure

hallow brook
#

So my goal will be to create, lets say an enemy that when it spawns during the game it will be able for reference the ID of the card the player casts, then check the database for the base stats, then create a new GameObject of the respective with all the updated stats during a game

#

It would be so much easier if I could use a constructor though 😭

drowsy orbit
drowsy orbit
#

Planning to release this as a VCC package in the coming days

fierce flare
#

Please make a mechanical keyboard simulator so we can try out different keys... in vr

timid aurora
drowsy orbit
drowsy orbit
#

Now going to use it in a world project of mine so I can get a feel of how it works in practice and will make updates as needed.

hoary nimbus
#

[WIP] I am but a humble shepherd, gaze upon my fluffle.

Experimenting with shaders and ZTest/ZWrite to handle unit UI and highlighting through objects. Also featuring bit of AI Navmesh stuff and a little bunny model I made, using blendshapes so every bunny is unique. No real project for this yet? maybe a pet sim or rts idk lol

fierce flare
#

Awwwwwww

drowsy orbit
#

Made contact clickable UI buttons where the contacts will resize themselves to the size of the UI button

fierce flare
#

why capsule shaped?

drowsy orbit
#

that and spheres if you want to count them as a separate thing

hallow brook
#

this showcases the map loading for the tower defense I am making. essentially it loads from a long array of ints with the associated tile id

hazy trout
#

I have added a feature for my projectiles to be able to spawn more projectiles. Submunitions, explosion fragments, recursive projectile spawning are now possible.
There are also coefficients that I came up with that tweaks the bias of fragments being spread out horizontally or centrally

#

So now it makes more sense to hide from artillery! We can see that one of the fragments can still penetrate 3.6mm of rolled steel at 500m

drowsy orbit
#

neat

hazy knot
#

Okay but now make each submunition spawn more submunitions

hazy trout
frigid bronze
hazy trout
#

can't wait for the "shrapnel for every explosion" update

covert night
fierce flare
hallow brook
drowsy orbit
fierce flare
#

lol

#

yes, but for world author

drowsy orbit
#

the world author is allowed to make and advertise an official group for the world

drowsy orbit
fierce flare
#

automatically with consent

drowsy orbit
#

Where is the consent obtained?

fierce flare
#

at world entrance

drowsy orbit
#

Ok, so why even have the "moderators"? Why not just have at the world entrance the rule of "you agree not to be on the ban list to use this world"?

fierce flare
#

because that would become preemptive

#

and preemptive is not allowed by guidelines for whatever reason

drowsy orbit
#

But this system is preemptive. It is applied with preassigned specifications without choice on the users part outside entering the world.

fierce flare
#

this system is deterministic but not preemptive, well the rules of any world are prescribed without anyone's choice outside the world and they always have the choice of leaving the instance if they decline (which is their only option for any world)

#

There is no rules about rules, it can be anything the world author decides as long as it is not "inflammatory" like the guideline describes

drowsy orbit
#

If a person makes an instance and then is joined by someone who is on the ban list, will the person get automatically banned without choice of anyone involved because of actions not taken by that user in the instance outside joining the instance?

fierce flare
#

No, because that person would be instance owner, and instance owner has immunity from the list (also, instance owner also becomes the "built-in" moderator as part of VRChat function)

#

(and the "moderator" on this system)

drowsy orbit
#

I'm talking about the person on the ban list who joins the instance

#

What action would the banned person have taken to get banned?

fierce flare
#

They will be instabanned by a moderator, if one is in the instance. If there is no moderator, no action is taken

drowsy orbit
#

No, what reason was the banned person banned?

fierce flare
#

The action would be failing a Vibe Check by moderator

drowsy orbit
#

How does your system determin that that person should be banned

fierce flare
#

By a name list issued to moderators and instructed them to instaban

drowsy orbit
#

So the banned is manually performed by the moderator?

fierce flare
#

No, it is automatic

drowsy orbit
#

And is the name list preemptively in the world?

fierce flare
#

preemptively in the world <--that is gibberish

#

...what do you mean?

drowsy orbit
#

"Preemptively moderate users by using a static or dynamic “block list” or similar systems"

#

You are applying moderation on users via a block list, correct?

fierce flare
#

yes

drowsy orbit
#

Please, just use an official group instance. Don't design a system that could only possibly be allowed if you successfully torture the meaning of a single adjective to the point that VRC staff allows the violation just so they don't have to argue it with you.

fierce flare
#

if it is allowed, it is allowed, if they ban the hackers (officially) then all of this is unnecessarily I agree

#

anyhow I asked the official team to check the prefab, lets see what they say