[Request] UCC 3.0

wuyan

Member
I'll just chime and ask for any performance improvements or options to turn off performance intensive calculations for optional features. We are working on a VR FPS game with projectiles and right now we have ~8 characters and the characters are pretty performance-intensive.
Yes, this is definitely a problem. I spent some time developing an AI system based on Opsive. Later, due to performance problems of UCC, we had to shelve and adopt other solutions.

UCC, as one of the best-selling solutions in the unity asset store, means that it will cover many types of games. I think UCC3 should provide some options or solutions that are not too difficult to solve this problem.
 

mkoala

New member
Since we're on September now and nearing the end of summer 2022, what's the current status of UCC3? From the previous months, I saw Opsive was hiring someone with machine learning skills (and I think someone with marketing skills?). Will we be having some kind of AI powered animation system similar to UE5? How close is the team to completing UCC3?

I was planning on integrating Fishnet networking with client side prediction for UCC2 but I've been hitting roadblocks lately due to not really understanding how the internal systems work. I was thinking of waiting for the UCC3 release and the networking integration but it seems like a Fishnet integration isn't planned.

So I have to ask, what networking libraries is Opsive planning to integrate with UCC3? Currently, there are 3 modern netcode libraries: Photon Fusion, Fishnet, and Netcode for GameObjects (currently no client side prediction; planned to be next year). I was thinking of purchasing the PUN Multiplayer Add-On to check how multiplayer is implemented there but I'm not sure.
 

Justin

Administrator
Staff member
what's the current status of UCC3?
We are in the final polishing phase. We should have more info by the end of the month. I have the announcement post ready to go but have been waiting until we have more of the final art in.

Will we be having some kind of AI powered animation system similar to UE5?
The machine learning project is separate and is ongoing. It's a really unique project and should be really beneficial to many indie developers.

I was thinking of waiting for the UCC3 release and the networking integration but it seems like a Fishnet integration isn't planned.
We want to get v3 out so will not have any of the add-ons updated with version 3 from the get-go. The existing add-ons will be the first priority though after the initial v3 release has settled down. I don't think that it'll take long to update since the core API hasn't changed too dramatically.

So I have to ask, what networking libraries is Opsive planning to integrate with UCC3? Currently, there are 3 modern netcode libraries: Photon Fusion, Fishnet, and Netcode for GameObjects (currently no client side prediction; planned to be next year). I was thinking of purchasing the PUN Multiplayer Add-On to check how multiplayer is implemented there but I'm not sure.
PUN will be the first since it's just an upgrade. @Pesadelo do Espantalho has a Mirror integration mostly working for v2 and will be releasing it after v3 is out. He also has offered to integrate other networking implementations so that's also exciting.
 

mkoala

New member
We are in the final polishing phase. We should have more info by the end of the month. I have the announcement post ready to go but have been waiting until we have more of the final art in.

The machine learning project is separate and is ongoing. It's a really unique project and should be really beneficial to many indie developers.
Can't wait for UCC3! That machine learning project has definitely piqued my interest :D

PUN will be the first since it's just an upgrade. @Pesadelo do Espantalho has a Mirror integration mostly working for v2 and will be releasing it after v3 is out. He also has offered to integrate other networking implementations so that's also exciting.
That's great! Looking forward to other netcode library integrations. Hopefully it comes with Client-Side Prediction since it's the bread and butter of Photon Fusion and Fishnet.
 

DavidC

Active member
A request/idea for UCC3.
An "everything and the kitchen sink" type purchasing option through your website. Could be done a few different ways (one payment upfront, another where you have to pay whenever an addon (ie climbing) are added, etc.)
For this option, all of the main parts, and integrations, for UCC and UIS can be downloaded together, instead of updating everything separately.
 

Justin

Administrator
Staff member
Unfortunately something like that makes it really hard to maintain. Each time one of the individual packages updates then the big package would also have to be updated and that can add a lot of extra time. We do have bundles that include the individual assets, but I don't see us ever including one package that includes every individual asset.
 

nathanj

Active member
Maybe a basic video on creating your own controller and adding basic abilities would be useful for helping people get started.
 

devomage

Member
As a UCC owner, I would like the ability to import any of the sub-assets. For example, if I only want 3rd person. From an asset-author perspective... this would be a great addition.
 

nathanj

Active member
@devomage

As an owner of both the first and third controllers I can def. say it is nice having the two separate. Maybe Opsive could treat UCC as a bundle where if you have the bundle you also get access to the individual installersz and likewise if you have the two packs you get access to the single installer.
 

Justin

Administrator
Staff member
It has been awhile since I looked at them but the last time I looked Addressables were just a way to load/unload data. There shouldn't be anything unique required on the controller side of things.

Version 3 does have a new class called CharacterInitailizer that allows to easily call Awake/Start on all of the controller classes within your own script which you may want to use with Addressables but other than that I don't see any specific support being necessary.
 
It has been awhile since I looked at them but the last time I looked Addressables were just a way to load/unload data. There shouldn't be anything unique required on the controller side of things.

Version 3 does have a new class called CharacterInitailizer that allows to easily call Awake/Start on all of the controller classes within your own script which you may want to use with Addressables but other than that I don't see any specific support being necessary.
I think there's a bit more to it. Although I haven't played around with it, the documentation does state that direct references to objects need to be changed to asset references. This would mean that all direct references in the UCC would need to be changed. I ask about Addressables because some games might be interested in allowing custom user content, such as through services like Steam Workshop. Currently, if a user wanted to change the sound effects for a ShootableWeapon for example, they wouldn't be able to use Addressables because the sounds use direct references to assets. The alternative here could be asset bundles, which is easy to implement without needing to make changes to UCC, but with Addressables, there would definitely need to be some changes made, hence why I asked about an integration package. There is a migration guide here:
https://docs.unity3d.com/Packages/c...0/manual/AddressableAssetsMigrationGuide.html

Also, allowing Addressables could also help with optimisation and improving memory efficiency. It's great that UCC3 is making using of DOTS and multithreading, allowing for Addressables could be another way to improve performance as well as another selling point.
Anyways, just thought I would throw this out as a suggestion :)
 

Justin

Administrator
Staff member
At the start of the year I created a prototype project using Addressables for our machine learning project. This is separate from our character controller but from that project I got a better idea on how Addressables work. For that project I was able to use Addressables on a component that hasn't changed in years. In your sound effect example you'd load the sound effect from the Addressable system and then assign it using the ShootableWeapon property. This way there doesn't need to be any changes.

It's great that UCC3 is making using of DOTS and multithreading,
Just to avoid any misconception version 3 does not use DOTS or multithreading. Behavior Designer 2 will use DOTS, but DOTS is nowhere near far enough along for a character controller with animations, particles, sound, IK, etc. Even with Behavior Designer I am waiting for DOTS to hit 1.0 since they are still making a lot of structural changes.
 
At the start of the year I created a prototype project using Addressables for our machine learning project. This is separate from our character controller but from that project I got a better idea on how Addressables work. For that project I was able to use Addressables on a component that hasn't changed in years. In your sound effect example you'd load the sound effect from the Addressable system and then assign it using the ShootableWeapon property. This way there doesn't need to be any changes.


Just to avoid any misconception version 3 does not use DOTS or multithreading. Behavior Designer 2 will use DOTS, but DOTS is nowhere near far enough along for a character controller with animations, particles, sound, IK, etc. Even with Behavior Designer I am waiting for DOTS to hit 1.0 since they are still making a lot of structural changes.
Ahh, I see. My apologies, I thought there was a bit more to it, but again, I only read the documentation and haven't tried anything for myself just yet šŸ˜… It's good that Addressables can be used easily with UCC, some assets like Photon Fusion are also beginning to use Addressables.

Also, for UCC3 I meant to say job systems, not DOTS. I remember another forum post mentioning DOTS integration for Behaviour Designer, which I'm looking forward to as well. So UCC3 won't use multithreading? I thought you were experimenting with job systems.
 

Justin

Administrator
Staff member
Unfortunately those experimentation didn't pan out with the jobs system. The jobs system API just isn't there yet in order to support all of the different features that the character controller supports. You can do basic raycasting, but when you start to bring in the different collider types into the mix the API doesn't provide enough support.

Whenever Unity does fully implement the jobs system API so it is at feature parity as the Physics API then it will be relatively easy for me to switch - the controller is setup in a way to better handle the asynchronous execution.
 
Unfortunately those experimentation didn't pan out with the jobs system. The jobs system API just isn't there yet in order to support all of the different features that the character controller supports. You can do basic raycasting, but when you start to bring in the different collider types into the mix the API doesn't provide enough support.

Whenever Unity does fully implement the jobs system API so it is at feature parity as the Physics API then it will be relatively easy for me to switch - the controller is setup in a way to better handle the asynchronous execution.
I see, I was looking forward to the job systems integration. Running lots of AI agents is resulting in a lot of CPU bottlenecking, mainly the animators are causing it. I was hoping that UCC3 would make use of job systems, given that now you can create animation job systems. Packages like GPU instancer are great and all, but our game aims to allow players to create custom content, so being able to change character meshes, textures, animations etc., so baking isn't the best option here. I do hope that job systems will be implemented in the near future though (y)
 
Top