Search Unity

uRPG Official Thread - Unity RPG Asset

Discussion in 'Assets and Asset Store' started by mischa2k, Nov 24, 2018.

  1. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    big_precise7.png

    uRPG - the new Unity RPG Asset from the creator of uMMORPG.
    (Asset Store) (WebGL) (Chat) (Documentation)

    All the architecture was designed with simplicity in mind. The code is as short and as simple as possible.

    Screenshots:
    2018-11-23_menu.png
    2018-11-21_forestmonster_closeup.png
    2018-11-21_crossbow.png
    2018-11-14.png

    Features:
    * Friendly Discord Community
    * Uses Unity's new UI system
    * Monsters & Npcs
    * Run, Crouch, Crawl, Jump, Climb, Swim, Strafe
    * Third & First Person
    * Fall Damage
    * Levels
    * STR & INT Attributes
    * Scriptable Skills & Buffs
    -> [ Fully customizable ]
    -> [
    Supports ALL Skill Types ]
    -> [
    Passive Skills ]
    -> [
    Skill Trees ]
    * Harvesting
    * Crafting
    * Item Storage
    * Energy & Regeneration
    -> [ Health ]
    -> [
    Mana ]
    -> [
    Endurance ]
    * Melee & Ranged Weapons
    * Weapon Zoom
    * Scriptable Items
    -> [ Fully customizable ]
    -> [
    Supports ALL Item Types ]
    -> [
    Durability ]
    * Item Drops
    * Gold
    * Scriptable Quests
    -> [ Fully customizable ]
    -> [
    Hunt Monsters ]
    -> [
    Gather Items ]
    -> [
    Visit Locations ]
    -> [
    Supports ALL Quest Types ]
    * Scriptable Npc Dialogues
    -> [ Fully customizable ]
    -> [
    Supports ALL Dialogue Types ]
    * Interaction System
    * Great Blood Splatter Effect
    * Free Look Camera
    * Retargetable Animations via Mecanim
    * Beautiful 3D Models
    * Death and Respawning
    * SaveGames
    * 6000 Lines of carefully crafted C# Code
    * Platform Independent
    * Documentation with Tutorials

    Video:


    Changelog:
    • V1.0 [released 2018-11-27]
      • First release
    • V1.1 [released 2018-11-28]
      • Drag and drop added for Storage to Equipment and vice versa
      • Utils.Raycast/Linecast/SpherecastWithout layerMask parameter added
      • PlayerMovement: added canStandInWaterCheckLayers to ignore water layer when Raycasting for the EventUnderWater check
      • EventLadderExit added and is now checked only in Climbing state, instead of checking it in Update
      • UIQuests: forgot to remove the hotkey
      • UIQuests: removed unnecessary panel active check
      • Fixed skull stick item dropping the axe item model
      • UINpcTrading tooltip uses ItemSlot now so that {AMOUNT} is replaced in tooltip text
      • QuestDialogue UI shows the current quest progress if already accepted. Also fixed the {STATUS} part.
    • V1.2 [released 2018-11-29]
      • Sliding down slopes (try climbing a steep roof to see it in effect)
      • Fixed pf_fish_stick_01 missing pillar meshes (no more floating fish)
      • Use original boardwalk.fbx instead of decimated version again. Fixes the pier collider being way up in the air because Blender messes with it when saving even though it wasn't decimated.
      • Tree drag and angular drag adjusted so it doesn't fall and rotate as rapidly
      • BagOfCoins mesh scale set to 2 and collider radius increased so it's easier to pick up and see
      • Water layer set to 'Ignore Raycast'. Fixes a bug where items couldn't be picked if they were below the water surface. Also fixes skill effects colliding with water surface.
      • OnDeathRespawn also enables/disables colliders so that item drops inside a dead monster can be picked
      • Forest Monster drop radius increased for easier looting
      • Fixed invisible log walls having colliders but not showing the mesh
      • Fixed terrain_far_01 MeshCollider being disabled
      • Fireball speed increased a bit
      • Skill.IsReady checks CastTime now too. Fixes a bug where the skill key could be spammed and the skill cast in progress would be restarted over and over again
    • V1.3 [released 2018-12-17]
      • Water reflection color adjusted for a slightly stronger and more colorful effect
      • Water edge fade effect increased so it's less transparent at the shores
      • Trail Renderer added to Arrow
      • PlayerEquipment default categories adjusted
      • Upgraded to Unity 2017.4.17 LTS
      • SaveGame: Close connection in Load/Save to not block the file. Fixes a bug where a new game couldn't be created after loading an existing game on Windows.
      • Npc Dialogue: removed horizontal scrollbar from choices view
      • Energy overflow/underflow removed because it's not really needed in an RPG
      • Energy recoveryTickRate removed because it's not really needed
      • Attribute scripts moved into PlayerAttributes folder
      • Strength/Intelligence bonus calculations changed to 'percentage of max health/mana'
    • V1.4 [released 2018-12-24]
      • OnDeathDestroy component removed because it's not used anymore
      • SendMessage events replaced with UnityEvents for a 500-1000x performance increase when calling events. When upgrading, make sure to assign callbacks in the Inspector for components with events.
      • Energy overflow/underflow added again (RPGs often have swimming)
    • V1.5 [released 2019-01-11]
      • UsableItem: fixed inventoryIndex/equipmentIndex variable names
      • Health/Mana/Endurance bonus component caching improved so that prefab.health.max can be called without NullReferenceException (because Awake wasn't called for a prefab yet)
      • FSM.state simplified
      • Interactable.IsInteractable added
      • Mounts
      • PlayerLook: several improvements
      • Documentation updated (player modification tutorial)
    • V1.6 [released 2019-01-18]
      • Fixed horse license
      • Horse swim animation
      • Added EventDismounted to MOUNTED_SWIMMING state
      • Horse swim idle animation speed reduced
      • EventDismounted is now fired in all states, not only in MOUNTED. Fixes a bug where we couldn't dismount in MOUNTED_SWIMMING.
    • V1.7 [released 2019-03-21]
      • OnDeathRespawn: no redundant collider setting anymore
      • Upgraded to Unity 2018.3.6
      • PlayerMovement: removed unused capsule and ik fields
      • ShoulderLookAt component is now ShouldersLookAt on the main GameObject instead of the separate shoulders. Also applied several improvements from uSurvival.
      • PlayerEquipment left/rightHandLocation childCount check added to Awake, just to be sure.
    • V1.8 [released 2019-05-03]
      • Fix skull helmet defense tooltip
      • Update recommended version
      • Change .NET version to 4.X. Plugins/Sqlite/common/System.Data.dll isn't needed anymore
      • ShouldersLookAt: reset rotation before setting initial rotations
      • fix 'Kinematic body only supports Speculative Continuous collision detection' warning by setting Player/Npc/Monster/Projectiles prefabs to continuous speculative
      • Utils.IsNullOrWhiteSpace removed, NET 4.5 has string.IsNullOrWhiteSpace now.
      • PlayerAnimation: apply to all animators to properly animate skinned mesh equipment
      • Item/Quest/Skill: Net 4.X syntax for getters
      • Use nameof(function) for Invoke/InvokeRepeating/CancelInvoke
      • NavmeshPathGizmo renamed to NavMeshPathGizmo
      • Fixed NavMeshPathGizmo NullReferenceExeption after rebuilding scripts sometimes
      • Monster.startPosition is now set in Start instead of Awake, because that's what Start is for. Fixes a bug where runtime spawned monsters weren't respawning properly.
    • V1.9 [released 2019-05-05]
      • Player default inventory items are now configurable with amount by using ScriptableItemAndAmount type
      • EquipmentItem.Use reuses PlayerEquipment.SwapInventoryEquip function for proper validation and proper health > 0 checks etc.
      • PlayerEquipment default item reuses ScriptableItemAndAmount. Make sure to reassign your player prefab's default equipment items and amounts when upgrading.
      • Database converted to MonoBehaviour component that is added to the NetworkManager. This allows for future abstract Database type with different implementations like XML. It also allows us to customize properties in the Inspector (like Database file name) and to make use of MonoBehaviour functions like Update.
      • ScriptableItem/Skill/Quest/Recipe: check for duplicates when loading from resources. This allows us to use subfolders safely.
      • Moved resources items into subfolders
      • UI Crafting: show amount overlays in slots
      • Crafting with ingredient amounts. Make sure to reassign all recipe ingredients with their amount.
      • Fix player gravity calculation causing too rapid falls from edges and too much fall damage too early
      • Ground stick force to stick to rounded surfaces etc.
      • 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 20 to 13 to match building height
      • Crafting renamed to PlayerCrafting because it's a player component
      • DropRandomItemsOnDeath: simplified code
      • FSM component renamed to FiniteStateMachine for ease of use
      • PlayerMeta component renamed to Player for ease of use
      • MonsterFSM component renamed to Monster for ease of use
      • IKHandling: added OnAnimatorIK parameter for consistency with Unity's function
      • Interaction renamed to PlayerInteraction because it's a player component
      • Utils.Raycast/Linecast/SpherecastWithout: huge performance improvements by caching the backups dictionary
      • PlayerMovement: DEAD state to fix being able to jump while dead
      • Volund charactercontroller radius decreased to 0.2 to fit better
      • Volund prefab Endurance component: fix second drain state using CRAWLING instead of JUMPING. now jumping reduces endurance again.
      • 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.
      • Volund prefab: set Heartbeat AudioSource default volume to 0 so we don't hear a loud heartbeat sound upon joining the game
    • V1.10 [released 2019-05-06]
      • Character controller movement made significantly more robust, and fixed sliding.
    • V1.11 [released 2019-05-14]
      • New character controller. Make sure to replace your player prefab's CharacterController component with OpenCharacterController when updating manually.
    • V1.12 [released 2019-05-15]
      • Fix databaseFile variable not found error
    • V1.13 [released 2019-05-17]
      • Upgrade to Unity 2018.4.0 LTS
      • PlayerAnimation: removed unused lastVelocity and lastPosition
      • Idle turn animation for smoother player controls
      • PlayerAnimation dampening for Direction, and Dampening is configurable in the Inspector now. Makes Idle->Walk transition look a lot more smooth
    • V1.14 [released 2019-05-21]
      • Fix Camera destroy errors after stopping the game by removing PlayerLook.OnDestroy. This was only needed in uSurvival.
      • Removed unused Blacksmith Characters/Features folder. Removes several warnings too.
      • Movement acceleration for a smoother, less rapid feeling
      • Disabled invisible boardwalk collider near horse to fix strange movement direction when running over it
      • Removed _TerrainAutoUpgrade folder
      • Reduce footstep/landing sounds volume by -5dB
      • Fix mounted rotation speed by making it dependent on Time.deltaTime
      • 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.
    • V1.15 [released 2019-05-25]
      • Moved QE rotation code into a separate function
      • Disabled climbing acceleration for a better feeling
      • Set jumping max speed when starting to jump so players can't press the shift key to suddenly jump faster while in the air
      • Jog backward Animation added
      • Landing Roll Animation added
      • Move CharacterController in FixedUpdate instead of Update. Fixes a bug where movement speed would be significantly slower in builds. Fixes rapid twitching when sliding down some slides.
    • V1.16 [released 2019-05-29]
      • PlayerEquipment.TryUseItem doesn't call OnUsedItem twice, because uRPG doesn't use networking
    • V1.17 [released 2019-06-07]
      • PlayerMovement: remove unused camera field
      • Save and load y rotation too for a better feeling between sessions. it feels too strange when spawning while looking into the wrong direction. Make sure to delete the old savegame file when upgrading manually.
      • Set crawling to grounded transition to fixed duration for a smoother transition. otherwise it's too instant because the crawling idle animation is only 1 frame long.
      • PlayerEquipment: Replace Skinned Mesh Equipment bones if possible in order to follow IK if needed
    • V1.18 [released 2019-06-24]
      • Show PlayerMovement debug info in PlayerMovement.OnGUI
      • OpenCharacterController: groundedTestDistance made configurable and default value set to 0.002 and added comment. Fixes a bug where fall controller.isGrounded would constantly switch between true/false while standing on the Floor BoxCollider, even though it works fine with MeshColliders.
      • Utils.IsReachableVertically adjusts head distance checks by size/2 for a more realistic reachability. Fixes a bug where a monster could attack a player standing on a building.
      • PlayerMovement.EventLadderEnter added so that OnTriggerEnter doesn't start it no matter what. Instead the state machine takes care of it as it should. Fixes a bug where the collider wouldn't be reset when going from crawling/crouching to climbing. Also allows for underwater climbing now.
      • PlayerMovement: don't decelerate with run speed when starting to crawl while running. limit speed to the state's max speed. feels better for the gameplay.
      • PlayerMovement: .collider replaced with .controllerCollider, which is not affected by animations
      • Player animation controller: disabled HasExitTime for swim state exit transition. Fixes a bug where the swim animation would sometimes be played for way too long even after standing on the ground already.
      • Player prefab: underwater threshold set to 0.9 for a better feeling
    • V1.19 [released 2019-12-11]
      • Upgraded to Unity 2018.4.2f1
      • Monster MOVING state: if target is unreachable then stop movement before going back to IDLE. Fixes a bug where the zombie would be sliding to players sometimes.
      • Monster ATTACKING state: go directly to MOVING if target is too far away. It's more robust this way and avoids one unnecessary transition to IDLE.
      • Utils.IsReachableVertically updated
      • Monster collider field replaced with mainCollider, and added a CapsuleCollider (trigger) to the main Monster prefab. This is easier to work with for distance calculations like attack range.
      • Monster/Player: target collider is now found via GetComponent instead of GetComponentInChildren because all entities have main colliders now (instead of only having animated hip colliders)
      • Monster.EventTargetUnreachable: consider attack range too to fix a bug where a monster considers a player unreachable if he is out of attack range due to the latest maxDistance parameter in IsReachable.
      • Monster: remove EventTargetUnreachable. Always run as close to target as possible instead and only attack once we are in attack range and if reachable. Fixes a bug where a monster wouldn't stand idly if a player is behind a corner, only to follow it and stand idly again if the player moved out of attack range.
      • Monster IDLE/ATTACKING states: don't go to MOVING while the path is pending. Fixes a bug where the monster would constantly switch between IDLE->MOVING->IDLE->... if the target is behind a wall with no path to it, which would cause strange behavior.
      • Utils.IsPointInScreen helper function added
      • PlayerMovement.OnGUI: only show debug info if in screen. Fixes a bug where debug guis would be shown in wrong places.
      • Health component: avoid Sum to fix performance and GC
      • Endurance component: avoid Linq to fix performance regression and GC
      • Mana component: avoid Linq to fix performance regression and GC
      • Equipment.GetItemIndexByName: avoid Linq
      • Equipment bonus: avoid Linq
      • Monster AggroArea layer changed to new AggroArea layer that only collides with the Player layer. Improves performance because previously the AggroArea would collide with anything.
      • PlayerLook.raycastLayers LayerMask added and used in PlayerLook.lookPositionRaycasted. This way we can exclude the AggroArea layer and not raycast against it when doing melee hits etc.
      • PlayerInteraction uses PlayerLook.raycastLayers for consistency. This way items can be picked through AggroAreas too.
      • MeleeWeaponItem.SphereCastToLookAt: rename 'go' variable to 'player' for consistency with RangedWeaponItem
      • MeleeWeaponItem uses PlayerLook.raycastLayers for consistency. This way melee weapons can hit through the AggroArea too.
      • Combat: avoid Linq for performance and to reduce GC
      • CursorLocking: avoid Linq
      • Inventory: avoid Linq
      • PlayerEquipment: avoid Linq
      • Utils: avoid Linq
      • UIUtils: avoid Linq
      • Inventory.GetItemIndexByName: avoid allocations
      • EquipmentItem.category moved to UsableItem.category
      • Assigned item categories
      • Inventory.SlotsOccupied added
      • ScriptableRecipe.OnValidate: set ingredient amount to at least 1 after assigning a new ingredient.
      • PlayerStorageUsage: use look.headPosition instead of transform.position. Fixes a bug where we could open the storage but not modify slots because we were in PlayerInteraction's raycast range but not in range. Also makes interacting with storages above the player easier.
      • Fixed build warnings
      • Item cooldowns!
      • Renamed 'hotbarIndex' to 'equipmentIndex' everywhere
      • FirstPersonClipping uses a new HideInFirstPerson layer to hide meshes in first person. Main Camera clips this layer, Volund Prefab's Equipment Avatar camera shows this layer. Fixes a bug where the player head in first person would be hidden in the equipment avatar. Also improves performance because less draw calls and no material swaps are needed. Make sure to reassign the hideRenderers in the player prefab's FirstPersonClipping component when upgrading. Make sure to add the HideInFirstPerson layer when upgrading manually.
      • ItemModel layer created and assigned to all item models. Both main camera and player prefab's avatar camera show the ItemModel layer now. fixes a bug where the helmet wouldn't be shown in the equipment avatar unless in first person.
      • Equipment slots can now be dragged out of the window to drop the item to the ground
    • V1.20 [released 2019-12-18]
      • GUIConsole updated: usable with F12 hotkey, limit memory usage, etc.
      • Project Settings: disabled Unity analytics
      • PlayerEquipment.RefreshLocation: combined object creation with setparent
      • Player Equipment: set equipmentInfo amount to 1 immediately when assigning an item
      • PlayerInventory: set defaultItems amount to 1 immediately when assigning an item
      • UIShowToolTip: set text immediately to avoid a small empty tooltip being shown for one frame. can be reproduced with a low framerate and hovering over the inventory button.
      • Used CompareTag everywhere
      • UI: only build tooltip while tooltip is visible. reduces UI allocations by 10x and improves performance
      • Energy scripts moved into Energies folder
      • ItemContainer and Inventory/Equipment inherit from it
      • UIDragAndDropable copies image color too
      • FiniteStateMachine moved into Monster.cs and Mount.cs
      • MonsterAnimation moved into Monster.cs
      • MountAnimation moved into Mount.cs
      • PlayerAnimation code moved into Player.cs
      • abstract Entity class for Player, Mount, Monster to inherit from. For consistency with uMMORPG and to avoid GetComponent calls later
      • Monster.target changed to Entity
      • Added Harvestable component to Tree prefab
      • Combat uses Entity and avoids GetComponent calls
      • Monster uses target.collider instead of target.GetComponent<Collider> everywhere
      • Combat.onReceivedDamage parameter changed from GameObject to Entity to avoid GetComponent calls
      • Combat.onKilledEnemy parameter changed from GameObject to Entity
      • Added public component fields to Player class to avoid GetComponent calls later
      • Player.player changed from GameObject to Player to avoid lots of GetComponent calls
      • PlayerInventory.DropItem: only call GetComponent once
      • SaveGame.CharacterLoad: avoid GetComponent calls
      • UsableItem: use correct parameter name
      • UsableItem passes Player instead of PlayerInventory/PlayerHotbar to avoid lots of GetComponent calls. Also makes the code more elegant with less strange uses like 'hotbar.name'.
      • Interactable passes Player instead of GameObject as parameter to avoid GetComponent calls
      • ScriptableDialogue: GameObject parameter changed to Player to avoid GetComponent calls
      • ScriptableSkill: GameObject parameter changed to Entity to avoid GetComponent calls
      • ScriptableQuest: GameObject parameter changed to Player to avoid GetComponent calls
      • Fixed all build warnings
    • V1.21 [released 2020-03-12]
      • fix: OpenCharacterController had a bug where the character y position would increase every time we go from swimming to standing. resulting in the character floating in the air when doing it often enough. Also moved it all into the Scripts folder. Make sure to reassign the player prefab's OpenCharacterController component when upgrading manually. It can be found in the Scripts folder now.
    • V1.23 [released 2020-03-23]
      • CharacterController2k V1.1 - lots of improvements. Fixes a bug where jumping sometimes wouldn't be work after walking over tiny slopes.
      • Player prefab: sliding start delay adjusted to 0.1 (new default)
      • Wood textures tif to jpg to reduce asset size by around 200MB
    • V1.24 [released 2020-04-12]
      • CharacterController2k updated to V1.2
      • fix: underwaterThreshold set back to 0.7 from 0.9 to fix a bug where the mount wouldn't start swimming until way too late. This also caused a bug in uMMORPG CE where jumping in water with a horse would end up in a constant ping-pong between mounted swimming and mounted jumping.
    • V1.25 [released 2020-05-20]
      • fix: mounted swimming uses acceleration now https://github.com/vis2k/uMMORPG_CE/issues/11
      • PlayerMovement: removed custom acceleration/deceleration in all states. GetInputDirection now respects the GetAxis acceleration/deceleration by only normalizing when necessary, which gives a more consistent acceleration/deceleration in all states.
     
    Last edited: May 20, 2020
  2. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Just to be clear, this Asset is pending review. I will post here as soon as it was accepted by the Asset Store team, which should be in 1-2 weeks.
     
  3. HeadHunter2009

    HeadHunter2009

    Joined:
    Jul 3, 2012
    Posts:
    50
    Good job vis with new asset! It looks really good and can help someone to save a lot of time.
     
    mischa2k likes this.
  4. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Thanks mate!
     
  5. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    924
    Having a look at the docs right now, looks promising, I really like the clean approach with classes and items, looks really polished! :)

    Just wondering: let's suppose that at some point, because of some really bad planning of the designer, or because of the client's decisions, an uRPG user has to integrate multiplayer, either in part (eg: arenas), or fully (eg: coop campaign).

    is uRPG more leaning towards the cleanest single player approach possible, or it could also extend toward your other net-based assets, without having to rewrite everything from scratch?

    Or, it's just better to start with a multiplayer from the beginning? (also not an ideal solution)
    (I'm expecting a huge "depends", in the answer :p )

    (of course I hope and guess STR and INT can be easily extended with other attributes without touching the source code :) )

    What's on the roadmap? :)
     
  6. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    uRPG is now on the Asset Store!
    That was a fast one.

    Thanks.
    If you want multiplayer, check out uSurvival (most similar to uRPG) or uMMORPG. You could add multiplayer later on, but that would not be a fun task. (hence why I released uRPG instead of adding a singleplayer mode to uMMORPG or uSurvival too)
     
    NeatWolf likes this.
  7. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    924
    Yup, thanks, I now have a better understanding of the direction of the asset, (of course I already purchased your other assets, I was just curious to know if some bridging was possible or planned.)

    Have you got a user-accessible roadmap at the moment? I'm just curious to see which are the new features the asset is going to have in the near/far future :)
     
  8. tequyla

    tequyla

    Joined:
    Jul 22, 2012
    Posts:
    335
    Hello,

    there is dungeon instance, arena on dedicated server or same system from ummorpg with quick and dirty twink ?

    good job.

    T.
     
  9. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Progress: V1.1 pending review. A couple of bug fixes that were found after submitting.
    • Drag and drop added for Storage to Equipment and vice versa
    • Utils.Raycast/Linecast/SpherecastWithout layerMask parameter added
    • PlayerMovement: added canStandInWaterCheckLayers to ignore water layer when Raycasting for the EventUnderWater check
    • EventLadderExit added and is now checked only in Climbing state, instead of checking it in Update
    • UIQuests: forgot to remove the hotkey
    • UIQuests: removed unnecessary panel active check
    • Fixed skull stick item dropping the axe item model
    • UINpcTrading tooltip uses ItemSlot now so that {AMOUNT} is replaced in tooltip text
    • QuestDialogue UI shows the current quest progress if already accepted. Also fixed the {STATUS} part.
    No roadmap, sorry. I usually work on whatever I enjoy that day.

    This is single player, instances aren't needed because you are the only person on there. Same for dedicated server, no need to host it this time :)
     
  10. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.2 pending review:
    • Sliding down slopes (try climbing a steep roof to see it in effect)
    • Fixed pf_fish_stick_01 missing pillar meshes (no more floating fish)
    • Use original boardwalk.fbx instead of decimated version again. Fixes the pier collider being way up in the air because Blender messes with it when saving even though it wasn't decimated.
    • Tree drag and angular drag adjusted so it doesn't fall and rotate as rapidly
    • BagOfCoins mesh scale set to 2 and collider radius increased so it's easier to pick up and see
    • Water layer set to 'Ignore Raycast'. Fixes a bug where items couldn't be picked if they were below the water surface. Also fixes skill effects colliding with water surface.
    • OnDeathRespawn also enables/disables colliders so that item drops inside a dead monster can be picked
    • Forest Monster drop radius increased for easier looting
    • Fixed invisible log walls having colliders but not showing the mesh
    • Fixed terrain_far_01 MeshCollider being disabled
    • Fireball speed increased a bit
    • Skill.IsReady checks CastTime now too. Fixes a bug where the skill key could be spammed and the skill cast in progress would be restarted over and over again
     
    Neviah likes this.
  11. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    957
    @vis2k - How modular is uRPG's design?

    Is it relatively easy to substitute a different character/camera controller (one which manages animations, like ootii's Motion Controller), Pixel Crushers' Dialogue System and Quest Machine for the built-in dialogue and quest features, etc?

    I'm mostly interested in the RPG mechanics (stats, skills, status effects, etc) and inventory/equipment aspects of uRPG. While it's always possible to integrate different assets if one knows what they're doing (which I do), often I find that these comprehensive RPG kits make it more trouble than it's worth to do so (as in having to write some terribly inelegant and/or ineffecient code to get everything working together).

    From reading the docs it looks pretty modular, and I'll probably end up buying it anyway just to have a look. :)
     
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,699
    @TeagansDad - I plan to add Dialogue System and Quest Machine integrations for uRPG in the next couple weeks.
     
    Mark_01, mischa2k and TeagansDad like this.
  13. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    So basically its ummorpg with usurvival without unet / multiplayer part??
     
  14. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    It's very modular - everything is component based (more like uSurvival, less like uMMORPG).

    It's singleplayer so I suppose replacing the character controller is not too difficult this time. It's all in the PlayerMovement script.

    As for dialogues, I expected people to want to do that, so the current dialogue system is scriptable (based on ScriptableObject). In other words: you could create a scriptable dialogue type that pull its data in from any other dialogue system / visual dialogue tool / whatever. That is the theory however, note that I never tried any of the dialogue assets on the store.

    I try hard to find the most simple solution to everything. Replacing parts should be doable.

    If you need help or a voucher, let me know. As I said above, ScriptableDialogue should support any other system. Right now, there is a QuestsTradingCloseDialogue.cs dialogue that displays the dialogue text and choices from the public fields. You could add a similar class that pulls the text and choices from your dialogue system.

    It started off as uSurvival without multiplayer, I then added RPG stuff yes.
    There are several differences to uSurvival and uMMORPG though, like how Ammo works etc.
     
    TeagansDad and TonyLi like this.
  15. Neviah

    Neviah

    Joined:
    Dec 1, 2016
    Posts:
    235
    Are there any raycasted weapon types? Let's say I wanted to bring this into a more modern era with guns, would it be terribly difficult to accomplish this?
     
  16. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    It would be a lot easier. Just raycast in the scriptableitem and apply damage immediately. I do this in uSurvival too.
     
    Neviah likes this.
  17. Razmot

    Razmot

    Joined:
    Apr 27, 2013
    Posts:
    346
    Congrats on this nice assets, I wanted to evaluate quickly the documentation but ended up reading it all, because it's fun to read, with a lot of bananas (good source of potassium).
     
    mischa2k likes this.
  18. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Thank you.
     
  19. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33
    Hi, I'm developing a 2D Topdown RPG with online elements. Right now I'm looking for a solution to integrate an RPG stat system.

    Could I use uRPG for that?

    What about uMMORPG 2D?

    Can I use my existing system with it?
     
  20. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    If you want a 2D RPG with online functionality then 100% uMMORPG 2D. uRPG is neither 2D nor online, and adding multiplayer is very difficult for all games.
     
  21. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Progress: V1.3 pending review!
    • Water reflection color adjusted for a slightly stronger and more colorful effect
    • Water edge fade effect increased so it's less transparent at the shores
    • Trail Renderer added to Arrow
    • PlayerEquipment default categories adjusted
    • Upgraded to Unity 2017.4.17 LTS
    • SaveGame: Close connection in Load/Save to not block the file. Fixes a bug where a new game couldn't be created after loading an existing game on Windows.
    • Npc Dialogue: removed horizontal scrollbar from choices view
    • Energy overflow/underflow removed because it's not really needed in an RPG
    • Energy recoveryTickRate removed because it's not really needed
    • Attribute scripts moved into PlayerAttributes folder
    • Strength/Intelligence bonus calculations changed to 'percentage of max health/mana'
     
  22. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    Will swimming be improved...video shows him on top of the water. Will we have swimming underwater also?
     
  23. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Some day maybe. Want to get the existing features just right first :)
     
  24. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    320
    Do you have plan to support mobile? There is no controller for mobile and inventory and interface are not suitable for mobile.
     
  25. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    It definitely runs on mobile, but there are no mobile controls. You'd have to add them yourself, maybe take a look at the ones from Unity Standard Assets :)
     
  26. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    320
    You do not plan to support the mobile version separately, do you?
     
  27. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    I do not, sorry. But really, the touch controller from Standard Assets should go a long way there.
     
  28. jeroensdesign

    jeroensdesign

    Joined:
    Oct 6, 2018
    Posts:
    10
    Hi...
    Since yesterday i bought this asset but the first time i get full errors.
    i cannot play scene, but also when i add the prefab i get errors?

    Who can help me with this problem?

    Kind regards
     
    Last edited: Dec 18, 2018
  29. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    It would help if you post the errors :)
    Also make sure to use Unity 2017.4 LTS - this one definitely works.
     
  30. jeroensdesign

    jeroensdesign

    Joined:
    Oct 6, 2018
    Posts:
    10
    Hi Madam Sir

    I get three errors when i start the demo scene
    Minattribute is an ambiguous reference between unity engine an
    ambiguos reference between unityengine minattribute

    Is it possible to get a refund because iwant to add my own character andi not see option in the asset?
     
  31. Soulature

    Soulature

    Joined:
    Dec 27, 2014
    Posts:
    18
    vis2k,

    Thanks for the windows save fix. Concerning the removal of the over/under flows and tick rate... those are features I would like to keep in my core. I havent updated yet to the newest vs. so that I can review the changes. As a precursor, can you please denote if those changes were removed or commented out? And the complexity for me to carry them forward manually from the prior vs.?

    Many thanks!

     
  32. jeroensdesign

    jeroensdesign

    Joined:
    Oct 6, 2018
    Posts:
    10
    I use unity 2018 3.0.2f
     

    Attached Files:

  33. KeithBrown

    KeithBrown

    Joined:
    Apr 1, 2017
    Posts:
    191
    From the Documentation for the asset.

    Recommended Unity Version
    Right now, the recommended Unity version is Unity 2017.4 LTS. You should not use an older version because Unity is not downwards compatible.

    You can use newer versions at your own risk. uRPG is a big project that uses a lot of different Unity features, so whenever Unity introduces a new bug, we feel the effect very significantly. In theory, any newer Unity version should work fine if (and only if) Unity didn’t introduce new bugs, which is rare.

    During GDC 2018, Unity announced the LTS release cycle. LTS stands for long term support. Unity LTS versions are supported for 2 years and will only receive bug fixes, without introducing any new features (and hence new bugs).

    Words can hardly express how significant LTS versions are for serious game projects. You should absolutely use LTS at all times, otherwise your players will suffer from bugs and all hell will break loose.

    Also from the documentation.

    Modifying the Player Model
    1. Drag the prefab into the Scene
    2. Replace the 3DModel child object and set the Layer to Player again


    1. Replace the Animator component’s avatar with the new model’s avatar
    2. Reassign equipment locations (like the hand bone)
    3. Add ‘ShoulderLookAt’ components to the shoulder bones again.
    4. Apply the changes
     
  34. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Can you explain why they are important in an RPG?
    And sorry, I didn't know that anyone needed them. I can definitely add them back in if needed.

    Try 2017.4 LTS please :)
     
  35. Soulature

    Soulature

    Joined:
    Dec 27, 2014
    Posts:
    18
     
    mischa2k likes this.
  36. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    For the next release, could you add a "Delete Saves" button for the players to remove the save files from their computer.
     
    Soulature likes this.
  37. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    If you want to have enterable houses, this script works well with uRPG and uses the F key to open doors (no script changes needed). You don't need to have your doors animated as it opens via script. Just attach the script to the door, your player is already tagged correctly in uRPG to work with this script. https://sharpcoderr.com/blog/unity-3d-openable-door-tutorial I just set this up and tested it on two doors in uRPG and it worked fine (you may have to adjust the "Door Open Angle" (public) easily in Inspector. I had my own door models, so added the door model to the house, added the box collider to the model and set it as "trigger" and added the script from the tutorial and adjusted the angle in Inspector. Easy Peasy.

    If you want to do a Falloutish similar building system or item placement similar to Morrowind, you can use this free asset...https://www.assetstore.unity3d.com/en/?stay#!/content/84935 To save the position of these items, you can use this save system for $1. https://assetstore.unity.com/packages/tools/input-management/super-simple-saving-103679 I've tested it out building objects in-game and saved them using this save system. I haven't used it in uRPG yet, but plan on using it.

    If anyone knows of a good script for "enable / disable", let me know. In Elder Scrolls modding we often used "enable / disable" to turn on/off lights, "open/close" curtains, light campfires, etc. Would like to use that here...has a lot of in-game usages.
     
    Soulature likes this.
  38. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Feel free to join our discord (see my signature), there are more people who might want to hear about tips / share other compatible assets, etc.
     
  39. Soulature

    Soulature

    Joined:
    Dec 27, 2014
    Posts:
    18
    Many thanks for sharing! :)

     
  40. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.4 pending review, now with UnityEvents
    • OnDeathDestroy component removed because it's not used anymore
    • SendMessage events replaced with UnityEvents for a 500-1000x performance increase when calling events. When upgrading, make sure to assign callbacks in the Inspector for components with events.
    • Energy overflow/underflow added again (RPGs often have swimming)
    upload_2018-12-22_19-10-6.png
     
    Soulature likes this.
  41. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    After several days of research and testing, I was able to get a particle fire to turn on and off. Here is how I have it set up in Unity. So now you can light and extinguish a fire in-game. Below is the script. I have tested it in Unity with the uRPG kit.


    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. //Attach this script to the trigger collider (not a subcomponent)
    5. //Flames001 and Sparks001 are components of the fire particle system
    6. //and are subcomponents of a GameObject.
    7. //Credits below
    8.  
    9. public class Fireplace4 : MonoBehaviour
    10. {
    11.     bool open = false;
    12.     bool enter = false;
    13.     private Light FireLight001;
    14.  
    15.     void Start ()
    16.     {
    17.         //Set "Flames001" and "Sparks001" to "false" if you want them OFF at game start
    18.         //If you set the above to "false" you must turn off the light component of the
    19.         //trigger (not the trigger itself, just the light part) in the Inspector
    20.         GameObject.Find("Flames001").GetComponent<Renderer>().enabled = true;
    21.         GameObject.Find("Sparks001").GetComponent<Renderer>().enabled = true;
    22.         FireLight001 = GetComponent<Light>();
    23.     }
    24.  
    25.     void Update ()
    26.     {
    27.         if (Input.GetKeyDown(KeyCode.F) && enter)
    28.         {
    29.             GameObject.Find("Flames001").GetComponent<Renderer>().enabled = !GameObject.Find("Flames001").GetComponent<Renderer>().enabled;
    30.             GameObject.Find("Sparks001").GetComponent<Renderer>().enabled = !GameObject.Find("Sparks001").GetComponent<Renderer>().enabled;
    31.             FireLight001.enabled = !FireLight001.enabled;
    32.             open = !open;
    33.         }
    34.     }
    35.  
    36.     void OnGUI()
    37.     {
    38.         if (enter)
    39.         {
    40.             GUI.Label(new Rect(Screen.width / 2 - 75, Screen.height - 100, 150, 30), "F to light/extinguish");
    41.         }
    42.     }
    43.  
    44.     //Activate the Main function when player is in the collider
    45.     void OnTriggerEnter(Collider other)
    46.     {
    47.         if (other.CompareTag("Player"))
    48.         {
    49.             enter = true;
    50.         }
    51.     }
    52.  
    53.     //Deactivate the Main function when player is away from the collider
    54.     void OnTriggerExit(Collider other)
    55.     {
    56.         if (other.CompareTag("Player"))
    57.         {
    58.             enter = false;
    59.         }
    60.     }
    61. }
    62.  
    63. /*This script is based on scripts...
    64. https://sharpcoderr.com/blog/unity-3d-openable-door-tutorial by NotYourAverage and
    65. https://answers.unity.com/questions/753026/simple-but-not-easy-hide-a-plane-and-a-cube.html and
    66. https://unity3d.com/learn/tutorials/topics/scripting/enabling-and-disabling-components*/
    67.  
     
    Last edited: Dec 29, 2018
    Soulature likes this.
  42. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    This setup is for enabling objects like rugs, table settings...things that the player won't collide with. I haven't figured out how to initially turn off the collision (that would be good for enabling an entire furniture group like in Skyrim). So here's the Unity setup. Tested and works in uRPG.


    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. //Make a Trigger Collider near the model you wish to enable/disable
    5. //and attach this script to the Trigger Collider
    6. //Item may be "invisible", but collider is still there.
    7. //This script is best for enabling/disabling flat items like
    8. //curtains, rugs, framed pictures, water in a tub/sink, table settings
    9. //Credits below
    10.  
    11. public class Carpet : MonoBehaviour
    12. {
    13.     bool open = false;
    14.     bool enter = false;
    15.  
    16.     void Start ()
    17.     {
    18.         GameObject.Find("Carpet").GetComponent<Renderer>().enabled = true;
    19.     }
    20.  
    21.     void Update ()
    22.     {
    23.         if (Input.GetKeyDown (KeyCode.F) && enter)
    24.         {
    25.             GameObject.Find ("Carpet").GetComponent<Renderer> ().enabled = !GameObject.Find ("Carpet").GetComponent<Renderer> ().enabled;
    26.             open = !open;
    27.         }
    28.     }
    29.     void OnGUI()
    30.     {
    31.         if (enter)
    32.         {
    33.             GUI.Label(new Rect(Screen.width / 2 - 75, Screen.height - 100, 150, 30), "F to enable/disable");
    34.         }
    35.     }
    36.  
    37. //Activate the Main function when player is near the trigger
    38.     void OnTriggerEnter(Collider other)
    39.     {
    40.         if (other.CompareTag("Player"))
    41.         {
    42.             enter = true;
    43.         }
    44.     }
    45.  
    46. //Deactivate the Main function when player is away from the trigger
    47.     void OnTriggerExit(Collider other)
    48.     {
    49.         if (other.CompareTag("Player"))
    50.         {
    51.         enter = false;
    52.         }
    53.     }
    54. }      
    55. //https://sharpcoderr.com/blog/unity-3d-openable-door-tutorial by NotYourAverage
    56. //https://answers.unity.com/questions/753026/simple-but-not-easy-hide-a-plane-and-a-cube.html
     
    Soulature likes this.
  43. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    This setup is for switching items...like opening and closing curtains. Script is below. Tested and works in uRPG.

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. //Make a Trigger Collider near the model you wish to enable/disable
    5. //and attach this script to the Trigger Collider
    6. //Item may be "invisible", but collider is still there.
    7. //This script is best for disabling flat items and enabling another
    8. //ie, enable an opened curtain and disabling a closed one
    9.  
    10. public class Curtain08a : MonoBehaviour
    11. {
    12.     bool open = false;
    13.     bool enter = false;
    14.  
    15.     void Start ()
    16.     {
    17.         GameObject.Find("Curtain_08a").GetComponent<Renderer>().enabled = true;
    18.         GameObject.Find("CurtainOpen").GetComponent<Renderer>().enabled = false;
    19.     }
    20.  
    21.     void Update ()
    22.     {
    23.         if (Input.GetKeyDown (KeyCode.F) && enter)
    24.         {
    25.             GameObject.Find ("Curtain_08a").GetComponent<Renderer> ().enabled = !GameObject.Find ("Curtain_08a").GetComponent<Renderer> ().enabled;
    26.             GameObject.Find ("CurtainOpen").GetComponent<Renderer> ().enabled = !GameObject.Find ("CurtainOpen").GetComponent<Renderer> ().enabled;
    27.             open = !open;
    28.         }
    29.     }
    30.     void OnGUI()
    31.     {
    32.         if (enter)
    33.         {
    34.             GUI.Label(new Rect(Screen.width / 2 - 75, Screen.height - 100, 150, 30), "F to open/close");
    35.         }
    36.     }
    37.  
    38. //Activate the Main function when player is near the trigger
    39.     void OnTriggerEnter(Collider other)
    40.     {
    41.         if (other.CompareTag("Player"))
    42.         {
    43.             enter = true;
    44.         }
    45.     }
    46.  
    47. //Deactivate the Main function when player is away from the trigger
    48.     void OnTriggerExit(Collider other)
    49.     {
    50.         if (other.CompareTag("Player"))
    51.         {
    52.         enter = false;
    53.         }
    54.     }
    55. }      
    56. //https://sharpcoderr.com/blog/unity-3d-openable-door-tutorial by NotYourAverage
    57. //https://answers.unity.com/questions/753026/simple-but-not-easy-hide-a-plane-and-a-cube.html
     
    Soulature likes this.
  44. Soulature

    Soulature

    Joined:
    Dec 27, 2014
    Posts:
    18
    Many thanks!

     
  45. Soulature

    Soulature

    Joined:
    Dec 27, 2014
    Posts:
    18
    Thanks!

     
  46. blueFire

    blueFire

    Joined:
    Nov 27, 2010
    Posts:
    68
    Will giving players the ability to control an entire party instead of one character be added to this asset?
     
  47. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Not planned at the moment, you'd have to add that yourself.
     
  48. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    Will you be adding....
    ....the ability to read books and papers?
    ....a way for the player to easily delete saves (delete button)?
     
  49. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Reading books probably not. The interaction system is there, this should be doable if your game needs it.
    Deleting saves: probably yea.
     
  50. Sanaichi2115

    Sanaichi2115

    Joined:
    Dec 26, 2012
    Posts:
    4
    I have a question: for how long will this kit be supported?
     
    AkeosSurinami and RoyS like this.