Mirror Networking for UCC Add-on

chrisk

Active member
Hi, Matt, it's been a while since I wrote.
I hope things are going good with the integration.
However, I figured integrating Mirror into UCC is much harder than it originally thought as with all other network projects. ^^

Anyway, I'm still eagerly waiting for something to test.
Since it's going to take a bit more time, how about you make it available as is now so that we can get some ideas?
I really like to take a look how the integration will look like. I hope the integration is seamless without much workaround.
Thanks for the great community work.

Cheers!
 

Matt

Member
Alright, it's been way overdue and I know you guys have been expecting updates and whatnot from me. I'm sorry to disappoint as I've let you down. I'm just going to give a somewhat brief summary of what's going on.

Basically, I'm working on this add-on by myself. I've had some other developers that I've contacted assist me briefly but they've been caught up with their own stuff. One of the assistant developers doesn't seem to want to search the add-on files for lines I've prefixed "TODO" in the repository, so it just adds extra stress on me because I'm somewhat expected to copy paste the code chunk or explicitly throw them a link to the code that's yet to be implemented. I'm not shaming anyone, but the current setup is a mess and I'm going to address that.

As for the add-on itself, the base files are designed around UCC 2.1.7 and have only just recently been updated to 2.1.9 and the latest PUN2 version. I have also been needing to get in touch with Justin as there's a lot of code in the hot path that can possibly be taken out benefiting his PUN add-on as well as mine, but if he doesn't want to, that's his choice. I'll try to optimize the network add-on to avoid any burns on the code hot paths. UCC 2.1.9 has changed a bunch of stuff in the network layer and I need to update the add-on code to handle that. That said though, I don't think I'll have the add-on ready in time for UCC 2.2, so you'll be stuck on the version below the latest and greatest (oldstable).

Fully server authorizing UCC is pretty much going to be asking the impossible. There's a lot of stuff in there that has to be adapted to a server authorative system. So the add-on will be a hybrid, some parts client authoritative, but some essentials will be server authoritative. The PUN add-on code that I'm reading, interpreting, and then writing my own implementation for Mirror.

If you've seen my YouTube videos, I've already got a working prototype of UCC on Mirror architecture running. However, one problem there is that some abilities aren't being started (ie. HeightChange still throws errors) when players spawn. The animator works alright and things correctly get set using NetworkAnimator, but abilities seem to be special. I'll be looking into that.

There's also IRL shit that I've gotta sort out before I get back to developing this add-on. That includes sorting out business accounting (which I will not discuss here), dealing with clients' drama (protip: stay away from overseas web design firms, they are the worst), being effectively immobilized because I damaged my transport (tree stumps, oil pump and sump pump. What a wonderful combo) and other programming contract work.

I am falling behind the 8 ball a lot recently and it's been a mad scramble to keep afloat - as well as back to back IT support call outs. This add-on was one of the many thing that's fallen on the backburner.

So, if you made it this far, I appreciate your patience. I am slowly getting back up to speed. Things should get better from here. I hope to have progress to show in the next week or two.

- Matt
 
Last edited:

chrisk

Active member
Hi, Matt,

It's a daunting task to get networking to work. Besides naming stuff, networking is one of the hardest in game programming. I really appreciate your efforts and I hope you succeed.

Looking at UCC PUN integration, it's written with client authoritative architecture in mind and I have no doubt that Mirror will have different requirements than from PUN.

This is where I'm a bit worried, just like the new inventory integration, in order to have a clean integration, UCC needs some changes and it's impossible without Justin's support. I think Mirror is far more important than PUN and Justin once mentioned about having BOLT(or Mirror) networking stack after PUN. I originally pushed BOLT because it's server authoritative architecture but Justin decided to go with PUN instead.

I can give many reasons why PUN is inferior/problematic but Justing wanted to go with what's more popular at that time. I can't blame him. Right now Mirror is gaining the popularity quite fast and I think it's likely that it will surpass PUN in the near future.

I just wanted to ask Justin to give another chance to take a look at Mirror integration after 2.2 releases. Now that there is someone (you Matt) taking the responsibilities, and the least I expect is that Justin to give you the full support to make the integration seamless.

I hope it works out for the benefit of the many.

Cheers!
 
Top