A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by vis2k, May 14, 2018.
yeah ı send u https://i.hizliresim.com/nQ4M3g.png
look at this original ı create new project and import
@vis2k please stop mirror updates.We are want new features, and revert old version 1.41. I Want old version 1.41. You still work mirrors. We need new features. maybe fixed animation system . Add reload animation and distance damage system. shotgun raycast vs....
Mirror is like the engine of the car, where uSurvival is the car.
Getting new wheels is sure nice (a new feature), but doubling the engine's horse power is way more important in the long run.
Which 2018 version is know good to work with the release from yesterday. Would like to start a new project and take for a test drive.
YES! Add new animation system, Reload animation and function first person animated hands.
V1.43 pending review!
NetworkManagerSurvival: password salt is now configurable in the Inspector
Chat: use different text prefabs for different channels. This way the color, font type, background, etc. can be different for different channels.
PlayerChat: ChatMessage class converted to struct to avoid GC
Database converted to MonoBehaviour component that is added to the NetworkManager. This allows for future abstract Database type with different implementations like MYSQL. It also allows us to customize properties in the Inspector (like Database file name) and to make use of MonoBehaviour functions like Update. MAKE SURE TO MODIFY DATABASE ADDON HOOK FUNCTIONS TO NOT BE STATIC ANYMORE WHEN UPGRADING.
Database: add index on 'account' for 'characters.account' to avoid full scans when loading characters in CharactersForAccount function
Database: online string code moved into separate function
Database: character.online field is set immediately after joining the world already. Otherwise it would only be set after the next CharacterSave call, which could easily take another 5-10 minutes.
Database: accounts.created DATETIME added for statistics
Database.IsValidAccount improved and renamed to TryLogin
Database: characters.online is now an INTEGER (0 or 1), and characters.lastsaved DATETIME added. This is more cleaner than writing the datetime as string only while online, and allows for lastsaved time checks even while offline.
Documentation updated (recommended version)
NetworkProximityGridChecker: force hidden doesn't need to add own connection anymore after latest Mirror change
Use out variable inline declarations
List.FindDuplicates extension added
ScriptableItem/Recipe: check for duplicates when loading from resources. This allows us to use subfolders safely.
Moved resources skills into subfolders
Mirror reverted to the version before the Asset Store import bug
The PDF document in the latest version needs a quick change for the new location of the NavMesh baking under Modifying the Environment & Terrain page.
to: Window > ai > navigation
Ok, thanks for letting me know!
Looks like you have Mirror in there twice.
Try to download uSurvival again in a fresh project.
V1.44 pending review! Maintenance update with many smaller fixes and improvements.
Most importantly, the fall gravity was fixed: https://gyazo.com/073150ce2a2a41b989ad7ae08d88690d
UIPopup singleton added
UI Crafting: show amount overlays in slots
Crafting with ingredient amounts. Make sure to reassign all recipe ingredients with their amount.
Combat Disconnect delay prevents players from fleeing combat by disconnecting immediately. Player.allowedLogoutTime + remainingLogoutTime based on lastCombatTime added. NetworkManager only logs out the player after that time. UI quit button shows tooltip on clients too.
Mirror updated to latest version (Weaver Unity.Cecil replaced with Cecil, Stack Overflow fix, OnDeserialize GC removed)
UI: move latency to background so it doesn't show when hovering the quit button
Fix player gravity calculation causing too rapid falls from edges and too much fall damage too early
Only use y direction for fall magnitude. Fixes a bug where fall damage would be applied when jumping into a wall horizontally.
default fall damage reduced from 15 to 13 to match building height
Combat.RpcOnDamageReceived renamed to RpcOnReceivedDamage for consistency
Combat.onReceivedDamage event renamed to onReceivedDamageServer because it's a server event
Combat.onClientReceivedDamage added in case it's needed by addons or other components
Construction component renamed to PlayerConstruction because it's a player component
Crafting renamed to PlayerCrafting because it's a player component
DropRandomItemsOnDeath: simplified code
FirstPersonClipping: remove unused DisableWeaponDepthCheck field
FSM: remove unused functions
FSM component renamed to FiniteStateMachine for ease of use. Reassign the ZombieAnimation component's Fsm field if necessary.
PlayerMeta.localPlayer simplified: points to ClientScene.localPlayer.gameObject now
PlayerMeta: Destroy simplified
PlayerMeta component renamed to Player for ease of use
BattleRoyaleSphere: simplify code
ZombieFSM component renamed to Zombie for ease of use
Hydration: simplified code
IKHandling: added OnAnimatorIK parameter for consistency with Unity's function
Interaction renamed to PlayerInteraction because it's a player component
NetworkManagerSurvival.IsConnecting syntax improved
Extensions.FindIndex isn't needed anymore, it's in Mirror now
Structure component added to PaletteStructure in order to keep track of all structures at runtime
NetworkManagerSurvival.Save uses Structure.structures instead of FindObjectsWithTag to greatly improve saving performance
NetworkManagerSurvival.Save: avoid expensive .ToList calls by passing the IEnumerable to Database
NetworkManagerSurvival: use public override for OnApplicationQuit and OnValidate
Utils.Raycast/Linecast/SpherecastWithout: huge performance improvements by caching the backups dictionary
ItemDropSpawner.cs How do we do it randomly? Does it work ? Just as DropRandomItemsOnDeath.cs
Open the code and add some randomness to it
V1.45 pending review
NetworkTransformRubberbanding: removed 'Some' compression level for consistency with Mirror's NetworkTransform
Utils Float packing functions removed. Use Mirror's built in FloatBytePacker instead.
PlayerAnimation: use left jump leg by default, instead of using no jump leg
Mirror updated to latest version (2019 support)
I had bad luck updating from 1.43 to 1.44 while a clean project works nice. It brokes the character selection, I was unable to choose a class. I tried to re-import but it brokes it more. I made a clean project, I won't try to bug fix it, just to let you know. Thanks for everything btw, I love your asset.
I'm trying to implement "real-time" melee. I looked at BS Melee Combat System and I'm looking for a way to get something like "Markers" work with Mirror. If anyone have a clue, I'm pretty interested.
Please open a new empty Unity project with 2018.3.6 and then download uSurvival from the Asset Store. That should work 100% of the time.
I just recently (not too recently) bought this asset I still don't have too much time to check it, I'm a graphic designer, not a game developer, but I want to create something to get fun with friends or give a general idea of how this type of frameworks works, I have a main question that I don't know if somebody already ask for it:
The game have any cloud save system? I mean if I join a game and I leave it's possible to come back and still have everything I build and own?
There's any safe zones where the users can hang around without receive damage from other players?
Mobile compatibility? if doesn't have that what plugin you recommend for this?
If anybody already use this assets to create a game what tip would you give to monetize this kind of survival or what I can implement to do it? the game already have something like that?
There's any armor builder on the game?
Like I say I still don't check the assets that I bought, but I have this questions, and if it's not implemented, there's any chance or possibility of have this on the future?
The server saves everything in a database, so when you come back tomorrow your character is still there.
It will run on mobile, but I am not sure how you would do your controls there. That part is up to you.
V1.47 pending review
New Movement synchronization: works perfectly smooth now, even while jumping
Server interpolates movement now too, this way it's easier to hit players that are running. Previously they would do warps between positions.
PlayerMovement: DEAD state to fix being able to jump while dead
Previously movement synchronization was the weakest part of uSurvival. Now it works really well and it's perfectly smooth all the time.
The doors on the screen work well. But when I add a door to the screen, I encounter this problem. What is the problem? I will already adding networkmanager prefab list. Donf forget this is not EBS.
Is the door NetworkIdentity a child of another NetworkIdentity?
UNET/Mirror never supported that thus far.
Hello, @vis2k. First of all - thanks for this great asset that really helped me to understand the Mirror networking concepts and for your continued updates.
However, I discovered a problem regarding the gravity calculations after the 1.44 update. The character is now triggering the landing event rapidly on uneven grounds such as terrains, slopes, etc. Tested both on your clean project (try walking on the battlebus roof) and on my modified one, where I use terrains. You can notice this by hearing the landing sound in rapid succesion. Increasing the stick to ground force didn't really solve the problem.
Thanks for letting me know, I'll take a look!
There is no such problem when the door is placed in advance.How should I use it? I cannot interact when I place the door separately.Not work client. only work on server.
Example: Shack another structures, Door another structures different 2 another networkidenfty <-- You mean this?
There is definitely no way to have a networkidentity as child of another networkidentity.
One solution would be a DoorPlaceholder GameObject that simply Spawns the Door in Start() if GetComponent<NetworkIdentity>().isServer.
News: uSurvival is on Unity's Madness Sale: https://assetstore.unity.com/packages/templates/systems/usurvival-95015 Grab it while you can, this will be the cheapest price in a while!
Please stop trash updates.
THAT ARE NO FEATURES.
1. No have backpack system
2. No have kill info(Who killed who)
3. Item spawner only 1 item example players go to same house looting some items
4. No have storage system.(Need player planted.)
5.No have build system need with door lock system.
6. Animation system very ver mixed.
7. No have example armors,dress,legs,gloves need example gears
8. No have shotgun raycast, no have grenade, or c4.
9. No have distance to damage system.
10. Please change this system name URPG.
uSurvival is like a car. It's sure nice to add additional features like heated seats or a backup camera, but in the end of the day, what really matters is the engine. My focus is always on getting the existing features and the networking perfect first.
If you launch your game, it's better to have a small set of 100% working features than a large set of features with lots of bugs in them.
V1.48 pending review:
Volund charactercontroller radius decreased to 0.2 to fit better
Logo file updated. Doesn't show UNET anymore.
Volund prefab Endurance component: fix second drain state using CRAWLING instead of JUMPING. now jumping reduces endurance again.
Fix poster flickering by moving it further out of the wall
PlayerMovement: JUMPING state renamed to AIRBORNE so it can be used for falling too
PlayerMovement: EventFalling is checked from all states, and EventLanded is only checked in AIRBORNE state. Fixes issues where the landing sound and falling animation were played when walking down tiny cliffs like stairs. Also fixes a bug where the falling animation wouldn't be shown for other players unless they jumped (not if they just well).
PlayerMovement: scale CharacterController collider at runtime to fix a bug where someone could fire above a crawling player and still hit him, because the CharacterController collider was still in standing pose.
PlayerMovement.Update: remove old code SetDirtyBit code. NetworkTransformRubberbanding does that now. This way we don't always set self to dirty if not idle.
Volund prefab: set Heartbeat AudioSource default volume to 0 so we don't hear a loud heartbeat sound upon joining the game
Hey, thank you a lot for this great example implementation! I just purchased it today and it works very well.
There's one little thing I noticed when I tried it with two PCs. The player look direction is synced but it is very choppy in contrast to overall movement. It almost looks like it is not interpolated. I haven't studied the whole project code yet but I thought I'd ask here if this is intentional or maybe an oversight / bug.
Edit: I've tested this on LAN so ping shouldn't play a significant role here.
Thanks for improving the movement/falling system! However, the issue I described is still present. It is much less noticeable now, but still there - character is sporadically set to Airborne state when walking down some slopes. Try generating some basic terrain and walki on it for a while, you'll notice couple of fall events being triggered there. I tried increasing gravity/sticktoGround and also played around with the character controller settings but to no avail.
BTW, I know this should probably be put in Mirror thread, but since it affects uSurvival as well - I found a pretty signifficant CPU bottleneck in NetworkIdentity while profiling my project. I use couple of hundred networked objects (trees, rocks, etc.) and the most CPU-demanding operation is NetworkProximityGridChecker's Update method (taking tens of milliseconds), being pretty much the only CPU-heavy operation. I ran deep profiling and found out it is not the grid checker itself, but rather the NetworkIdentity.RebuildObservers method, which also uses GC allocs quite a bit.
Looking for Usurvival as I read it is more advised in case of first/3rd view controller
Do you guess it would be possible (or hard or not) to use another controller with this asset? Like Game Kit Controller?
I also read somewhere, if I remember well, that it was not really possible to use World Streamer or Sectr with it, and that it would be better to use only one map tile, even a wide one than several? In my case it would be problematic since i will probably use several terrains with one island...
Would you have suggestions about it? Thank you
Searching more about it in this thread I found Sector must work, loading terrain from the server then using sector in local side. I thought it was to be done on the server side, and then would have been more difficult to do. Good news so.
But I also read loading multiple scenes is not possible. While it's understandable for a survival style game, it is not more difficult for a MMO where we could have a town with several houses, every of them linked to a new instance to load and explore the inside? So does it mean it's not possible or that it is but limited by the size of the terrain on z axis, so for exemple maybe difficult to have 2 dungeons and a large amount of interior scenes? How to deal with this? Thanks
V1.49 pending review:
New character controller to fix all kinds of movement bugs
Fixed fall damage not being applied to clients when in host mode
Upgrade to Unity 2018.4.0 LTS
Airborne while wlaking bug is fixed in latest version, thanks to the new character controller.
Can you post your profiling results please? Ideally deep profile.
I recommend trying V1.49 with the new controller. It's a lot better already - as in: fundamental issues fixed, even though it could still use some better animations/transitions for smoothness.
Any controller that you want to use needs to work over the network and with Mirror - which pretty much limits it to the uSurvival controller anyway.
Thanks for the update and for letting me know, I'll check it out ASAP!
Regarding the NetworkIdentity performance, one of your Mirror contributors actually opened a pull request mentioning this about a month ago and I think it could improve things after it's properly tested and patched up. If you still need a deep profile tho, let me know.
Paul's pull request is for NetworkProximityChecker.
The Grid checker isn't in Mirror, it's only in my Assets and it's about 30x faster.
Yes, please post the deep profile
Here is the screenshot from the profiler, all the visible CPU spikes are due to the NetworkProximityGridChecker.Update.
I checked a little bit into Paul's PR and it seems he touches the NetworkIdentity.RebuildObservers method to optimize it as well, reagrdless of proximity checker in use, so it might have something to do with it - he recycles the observers list to reduce GC.
BTW, the movement revamp seems like it fixed a lof of the problems, so thanks!
Please click on the arrows so I can see the full path. Right now I only see that something in OnRebuildObservers uses 47% CPU time. I can't tell you what it is unless you expand the arrows
A bit of misjudge from me, sorry. There you go.
Thanks. Will put it on my list and look into it asap.
Small bug: use the mouse scroll wheel to go to first person view, press TAB for inventory, voluland is headless in the inventory view.
Thanks, will take a look
Thanks. I'd also recommend adding this to Database.cs to prevent the data file from being locked by the editor.
private void OnApplicationQuit()
Also, disabling the CameraEquipmentAvatar camera while the inventory is closed seems to give a 4% or 5% boost to FPS.
Rendering isn't cheap
If you can go without that feature then definitely disable it. I doubt there are many ways to speed it up though.
V1.50 pending review:
Fixed floating boxes
Fixed flickering poster
Idle turn animation
PlayerAnimation dampening for Direction, and Dampening is configurable in the Inspector now. Makes Idle->Walk transition look a lot more smooth
Movement acceleration/deceleration for a less rapid, smoother feeling
Reduce footstep/landing sounds volume by -5dB
Rotation via QE keys while walking so the player can be rotated without the mouse, only with the keyboard. This makes it more fun sometimes.
Database.OnApplicationQuit closes the connection to prevent locking.
Another important character controller update. It feels very solid now.