Search Unity

uSurvival Official Thread - Unity Multiplayer Survival Asset

Discussion in 'Assets and Asset Store' started by vis2k, May 14, 2018.

  1. craftrap

    craftrap

    Joined:
    Apr 25, 2015
    Posts:
    29
  2. craftrap

    craftrap

    Joined:
    Apr 25, 2015
    Posts:
    29
  3. craftrap

    craftrap

    Joined:
    Apr 25, 2015
    Posts:
    29
    look at this original ı create new project and import
     
  4. craftrap

    craftrap

    Joined:
    Apr 25, 2015
    Posts:
    29
    @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....
     
    johny256 likes this.
  5. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
  6. ScottPeal

    ScottPeal

    Joined:
    Jan 14, 2013
    Posts:
    33
    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.
     
  7. johny256

    johny256

    Joined:
    Mar 3, 2015
    Posts:
    187
    YES! Add new animation system, Reload animation and function first person animated hands.
     
  8. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    2018.3.6
     
  9. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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
     
    Djayp and VE_GAME like this.
  10. ScottPeal

    ScottPeal

    Joined:
    Jan 14, 2013
    Posts:
    33
    Hey @vis2k

    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.

    from: Window->Navigation
    to: Window > ai > navigation
     
  11. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    Ok, thanks for letting me know!
     
  12. johny256

    johny256

    Joined:
    Mar 3, 2015
    Posts:
    187
    BUG
     

    Attached Files:

  13. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    Looks like you have Mirror in there twice.
    Try to download uSurvival again in a fresh project.
     
  14. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    V1.44 pending review! Maintenance update with many smaller fixes and improvements.

    Most importantly, the fall gravity was fixed: https://gyazo.com/073150ce2a2a41b989ad7ae08d88690d

    Other changes:
    • 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.lastCombatTime added
    • 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
    • Database.CharactersForAccount simplified
    • 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
    • Storage.OnDestroy simplified
    • 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
     
    Djayp likes this.
  15. craftrap

    craftrap

    Joined:
    Apr 25, 2015
    Posts:
    29
    ItemDropSpawner.cs How do we do it randomly? Does it work ? Just as DropRandomItemsOnDeath.cs
     
  16. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    Open the code and add some randomness to it :)
     
  17. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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)
     
  18. Djayp

    Djayp

    Joined:
    Feb 16, 2015
    Posts:
    76
    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.
     
  19. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
  20. play_unity729

    play_unity729

    Joined:
    Apr 18, 2018
    Posts:
    51
    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?
     
  21. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
  22. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
    Djayp likes this.
  23. craftrap

    craftrap

    Joined:
    Apr 25, 2015
    Posts:
    29

    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.
     
  24. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    Is the door NetworkIdentity a child of another NetworkIdentity?
    UNET/Mirror never supported that thus far.
     
  25. Refeas

    Refeas

    Joined:
    Nov 8, 2016
    Posts:
    53
    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.
     
  26. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    Thanks for letting me know, I'll take a look!
     
  27. craftrap

    craftrap

    Joined:
    Apr 25, 2015
    Posts:
    29
    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?
     
    Last edited: Apr 29, 2019
  28. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
  29. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
  30. craftrap

    craftrap

    Joined:
    Apr 25, 2015
    Posts:
    29
    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.
     
    johny256 likes this.
  31. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
  32. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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
     
    Djayp likes this.
  33. AndreasO

    AndreasO

    Joined:
    Sep 25, 2012
    Posts:
    90
    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.
     
  34. Refeas

    Refeas

    Joined:
    Nov 8, 2016
    Posts:
    53
    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.
     
  35. Kilonne

    Kilonne

    Joined:
    Nov 17, 2013
    Posts:
    17
    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
     
  36. Kilonne

    Kilonne

    Joined:
    Nov 17, 2013
    Posts:
    17
    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
     
  37. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    V1.49 pending review:
    • New character controller to fix all kinds of movement bugs
    • Sliding
    • Fixed fall damage not being applied to clients when in host mode
    • Upgrade to Unity 2018.4.0 LTS
     
  38. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
  39. Refeas

    Refeas

    Joined:
    Nov 8, 2016
    Posts:
    53
    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.
     
  40. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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 :)
     
  41. Refeas

    Refeas

    Joined:
    Nov 8, 2016
    Posts:
    53
    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!
     

    Attached Files:

  42. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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 :)
     
  43. Refeas

    Refeas

    Joined:
    Nov 8, 2016
    Posts:
    53
    A bit of misjudge from me, sorry. There you go. :)
     

    Attached Files:

  44. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    Thanks. Will put it on my list and look into it asap.
     
  45. Necron99

    Necron99

    Joined:
    Dec 18, 2016
    Posts:
    6
    Small bug: use the mouse scroll wheel to go to first person view, press TAB for inventory, voluland is headless in the inventory view.
     
  46. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    Thanks, will take a look
     
  47. Necron99

    Necron99

    Joined:
    Dec 18, 2016
    Posts:
    6
    Thanks. I'd also recommend adding this to Database.cs to prevent the data file from being locked by the editor.

    private void OnApplicationQuit()
    {
    connection.Close();
    }
     
    vis2k likes this.
  48. Necron99

    Necron99

    Joined:
    Dec 18, 2016
    Posts:
    6
    Also, disabling the CameraEquipmentAvatar camera while the inventory is closed seems to give a 4% or 5% boost to FPS.
     
  49. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
  50. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,304
    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.
     
    Djayp likes this.