|
Post by shadex on Jul 17, 2017 16:18:45 GMT
was going to send a message but I may as well post here for everyone else, I've just received my new Oculus Rift kit, so I was going to step away for a week or two while I have loads of VR fun and wait for this addon to release, but now work is going to take my PC time away so it looks like I won't be back until mid September! By then there should be a stable release of this quest addon and THEN is the time when I will make a scratch build RPG video tutorial series showing you how to make a full blown RPG with little coding skill using the template and addons. until then I'll only be sporadically checking out the forums and replying to stuff unless I get a nice chunk of free time or vr sickness Good luck with the release tharindu, I can't wait to get stuck into it! That's sounds cool. It's going to be really interesting as far as the impact it will have on the indie scene. It's one area where the big companies have little to nothing on the indie dev's. I still keep thinking of the "bumping into the sofa" problem Kinects had. When you get back from your VR "testing", i'd love to hear your thoughts as far as what parts of it enhances the experience and what parts take away from the experience. Either way have fun!
|
|
|
Post by shadex on Jul 17, 2017 16:46:20 GMT
The trends sound basically like a diminishing returns system with an adjustable logarithmic scale. It's a great way to do it. It looks really good. Judging by what i've seen and what you've said I would add: 1) Point based distribution system for attributes. On level up, give the player points. spend those points through an interface to upgrade stats. 2) Stats that effect base damage, melee dmg, movement speed, Change in animation (higher dex changes roll to a flip) 3) XP splitting in case you have Companions. They should all be fairly simple, like increasing movement speed or changing a dodgeID based on stats, and easy to implament, and i think it would make your leveling system feel much much more complete. most modern RPG systems, especially in the west, use a version of hte point disbution method, all have stats that effect the character more then stamina and health (except BoTW) and XP splitting should return the person who killed (last hit) if its setup correctly. I love the logarithmic scales because it can allow for infinite leveling. I love that you put in events for everything, as it's easy to tack on additional systems without having to worry about Update, especially in something as infrequent as leveling. All in all it looks really good.
|
|
|
Post by tharindu on Jul 17, 2017 19:31:41 GMT
The trends sound basically like a diminishing returns system with an adjustable logarithmic scale. It's a great way to do it. It looks really good. Judging by what i've seen and what you've said I would add: 1) Point based distribution system for attributes. On level up, give the player points. spend those points through an interface to upgrade stats. 2) Stats that effect base damage, melee dmg, movement speed, Change in animation (higher dex changes roll to a flip) 3) XP splitting in case you have Companions. They should all be fairly simple, like increasing movement speed or changing a dodgeID based on stats, and easy to implament, and i think it would make your leveling system feel much much more complete. most modern RPG systems, especially in the west, use a version of hte point disbution method, all have stats that effect the character more then stamina and health (except BoTW) and XP splitting should return the person who killed (last hit) if its setup correctly. I love the logarithmic scales because it can allow for infinite leveling. I love that you put in events for everything, as it's easy to tack on additional systems without having to worry about Update, especially in something as infrequent as leveling. All in all it looks really good. True, I am not using Update at all to update stats. It's all event driven. Stats that effect base damage, melee damage, movement speed I think I can do. I think the animator thing is also possible if it's just setting a specific ID. See all you need to do is add a stat and then handle it; The stats that can be added are countless. I will probably keep xp splitting and the point based stat system through UI for a different version though. If I start on that I am pretty sure I won't be able to finish the documentation and put this out xD I have already strayed way far from a simple quest system to containing a lot of scripts that would actually act support this as a mini RPG system.
|
|
|
Post by shadex on Jul 17, 2017 21:44:42 GMT
The trends sound basically like a diminishing returns system with an adjustable logarithmic scale. It's a great way to do it. It looks really good. Judging by what i've seen and what you've said I would add: 1) Point based distribution system for attributes. On level up, give the player points. spend those points through an interface to upgrade stats. 2) Stats that effect base damage, melee dmg, movement speed, Change in animation (higher dex changes roll to a flip) 3) XP splitting in case you have Companions. They should all be fairly simple, like increasing movement speed or changing a dodgeID based on stats, and easy to implament, and i think it would make your leveling system feel much much more complete. most modern RPG systems, especially in the west, use a version of hte point disbution method, all have stats that effect the character more then stamina and health (except BoTW) and XP splitting should return the person who killed (last hit) if its setup correctly. I love the logarithmic scales because it can allow for infinite leveling. I love that you put in events for everything, as it's easy to tack on additional systems without having to worry about Update, especially in something as infrequent as leveling. All in all it looks really good. True, I am not using Update at all to update stats. It's all event driven. Stats that effect base damage, melee damage, movement speed I think I can do. I think the animator thing is also possible if it's just setting a specific ID. See all you need to do is add a stat and then handle it; The stats that can be added are countless. I will probably keep xp splitting and the point based stat system through UI for a different version though. If I start on that I am pretty sure I won't be able to finish the documentation and put this out xD I have already strayed way far from a simple quest system to containing a lot of scripts that would actually act support this as a mini RPG system. AnimationID's are simple, just add a new parameter to the animator as an INT, name it WhateverID and change the values via code. If dex > 15, RollID =2, else RollID =1, then you just add the condition in the animator with a flip vs a roll. Everything but the dmg i've done and are pretty quick little projects. I figure it will save you a ton of time and explanation as i am betting it will be a commonly requested feature.
|
|
|
Post by tharindu on Jul 17, 2017 22:15:59 GMT
I agree but I prefer not to directly make changes to the Invector animator to be honest. Because adding a new ID in itself is a modification to the template which I try hard not to do. Instead I will expose a way to do this programmatically. You're right about this being a collection of small scripts. This only took me a little over three hours to think a bit and implement.
|
|
|
Post by tharindu on Jul 18, 2017 16:58:37 GMT
Okay so I got the melee base damage, movement speed and setting specific animator ID values incrementally on level up or actions. For animators you can specify a parameter name, a parameter type and such. You can even trigger animations on level up and such because I've left options to specify if the animation's a trigger and such. An example use case, let's say you want different animations to play when the character levels up. You can add two animator stat trends one for parameter levelupTrigger and one for parameter levelupID. First one for levelupID will be set as incrementable on levelup so if you have many levelup animations, each time you level up the levelupID will be incremented by one (different animation). the second one will be set as a trigger and it'll be called after evaluating each stat. So the animation will be triggered. Updating movesets are also possible since at the end of the day that too is an animator parameter. But apart from this, it gets really difficult for me to push the stat system to not intefere with invector code. I could write few quick and dirty methods to grab the weapons from inventory and change their attack IDs and such, but when you go down the line, there's a lot of dependencies you're creating for your addon and there's no separation of code. For example if you look at the equip code you'll see that it pulls up a vItem object ( Scriptable object ) and realizes the stats like damage value then and there. So where am I going to apply the new stat ? certainly not in the vItem since it's a scriptable object. How am I going to make it work with the save system ? How will I apply these when I reload the game ? Raises a lot of questions .So I need to think of better ways to keep the stats separate, and the code that utilizes the stat separate all while keeping the controller clean. A clever design will take some time and I don't want to do it before releasing the addon. So for now I guess this is it.
|
|
|
Post by shadex on Jul 19, 2017 19:15:57 GMT
Okay so I got the melee base damage, movement speed and setting specific animator ID values incrementally on level up or actions. For animators you can specify a parameter name, a parameter type and such. You can even trigger animations on level up and such because I've left options to specify if the animation's a trigger and such. An example use case, let's say you want different animations to play when the character levels up. You can add two animator stat trends one for parameter levelupTrigger and one for parameter levelupID. First one for levelupID will be set as incrementable on levelup so if you have many levelup animations, each time you level up the levelupID will be incremented by one (different animation). the second one will be set as a trigger and it'll be called after evaluating each stat. So the animation will be triggered. Updating movesets are also possible since at the end of the day that too is an animator parameter. But apart from this, it gets really difficult for me to push the stat system to not intefere with invector code. I could write few quick and dirty methods to grab the weapons from inventory and change their attack IDs and such, but when you go down the line, there's a lot of dependencies you're creating for your addon and there's no separation of code. For example if you look at the equip code you'll see that it pulls up a vItem object ( Scriptable object ) and realizes the stats like damage value then and there. So where am I going to apply the new stat ? certainly not in the vItem since it's a scriptable object. How am I going to make it work with the save system ? How will I apply these when I reload the game ? Raises a lot of questions .So I need to think of better ways to keep the stats separate, and the code that utilizes the stat separate all while keeping the controller clean. A clever design will take some time and I don't want to do it before releasing the addon. So for now I guess this is it. Man that's awesome. I don't think you need to push it much farther then that as far as the leveling goes. That covers Str (dmg), Dex (movement speed), Con(health/Stamina). A bit confused on the 2nd part. are you talking about strength requirement's / level requirements in items? Cause you can simple add an attribute to the enum called (level requirement), then in Melee Manager on the OnEquip(), just add that in the giant If statement, since it's already using enum attributes on the condition check anyways. Otherwise not sure what your talking about.
|
|
|
Post by tharindu on Jul 19, 2017 19:58:37 GMT
You're absolutely right, but I am trying my level best to not edit the controller code. The sole reason being I am trying to avoid the kind of patch problems people have with the other RPG addon. I want the updates from invector to go as smoothly as possible for the user without the addon getting in their way. After all the controller has to come first haha.
|
|
|
Post by tharindu on Jul 19, 2017 22:25:59 GMT
Melee Weapon Stats Imlpemented ^_^b No change to controller. Let me know what you guys think.
Update : Stats added for Shooter as well. Only Min Damage, Max Damage.
|
|
|
Post by rolfy on Jul 22, 2017 7:25:49 GMT
Real interested in purchasing this when you release, mostly I am at the point of requiring persistence across scenes as the player would return often to a central Hub which all other scenes branch off of.
Am I correct in assuming that scene saving would be stored and returning to that scene anytime will load previous changes such as destroyed entities remain gone, damaged entities will still be damaged and any pick ups won't be respawning ?
Thing is I would require areas which gates or doors could only be open with a lever from the other side then allowing the player to use shortcuts etc. To access newer scene loading areas. The player soon gets bored if they have to travers the same route every time to get around so it would be important for me to get parsistence across scenes.
Everything else about your quest system looks like a must have for me as it would save trying to get a bunch of different systems working in together and this looks like a pretty comprehensive package, all in one.
This is the only kind of thing that makes me leery I am not a great coder and totally unfamiliar with C#. I can usually get handle on an existing script and make changes from there, how difficult for a novice like me would this custom code be?
|
|
|
Post by tharindu on Jul 22, 2017 8:12:48 GMT
rolfy hey man glad you're interested. Let me try to answer in point form. Loading games 01. Static objects that are always present in scene and that only require an active or deactivated state to be saved. Yes state would be preserved. 02. Any object that will be destroyed. You need them to be placed using my spawner script. The spawner will maintain if an object was destroyed etc. Works with InVector's current ai. 03. Item pickups, must be destroyed after pickup and instantiated using the spawner. Currently trying to see if I can instantiate and maintain item pick up states without resorting to a spawner everytime. Also working on saving the current state of the object if it has an animation. Custom code 04. The bit about custom code is if you want to save any other extra data other than hp on an ai or the active or inactive state. For instance let's say your ai has a field like mana that's not currently there, you need to do some modification to at least two classes to fix that. If you want to save a completely new monobehaviour (for instance if you're using a completely different ai solution) , you will need to write a class with variables you want to save and another that contains the details of how you fetch that data and how you set that data after loading. The reason for having to do it through custom code is because I wouldn't know what other third party asset someone intends to use and what properties they would want to save. It's not exactly difficult but it will be challenging if you don't code at all. I highly discourage using the addon if you can't code at all :( I would have to implement something like easy save if I had to support non coders and that would be an entirely different asset if I did. Would be better if I can post on how to do one such thing I haven't implemented the state save on the vendor. It'll be a good chance for me to show that off.
|
|
|
Post by rolfy on Jul 22, 2017 8:33:35 GMT
As you know I have been looking at scene loading recently and found that any player states such as weapons equipped and inventory items etc are persistent across scenes and I was kinda surprised by that, maybe it is something you guy's expect as you understand the inner workings of both the engine and the controller better than I do.
Do you think I would be better off with something like EasySave which I reckon has a simple save template as part of the package as well as the more complex stuff? I believe it works in much the same way as your method with attaching a script to any object you want to save properties for in the scene on either checkpoint or game pause etc. At the moment I am only concerned with retaing the state of pick ups etc, you don't want to come back to a scene to find all keys, health opened doors etc in the start state. I really like all the other stuff you are putting into this and reckon I could get a lot of use and inspirational ideas for game play and most of all as I say it bundles it into one package. Not to mention the TPC compatibility. It can take me a bit to get a full handle on what is going on under the hood but usually have one of those Aha! moments and it all falls into place for me so maybe I could handle it:)
It might well be that your Quest system could be one of those things that help me learn simply cos I have to.
Whatever I think your doing an awesome job and hope you get a crap load of sales with this one.
|
|
|
Post by tharindu on Jul 22, 2017 11:47:27 GMT
As you know I have been looking at scene loading recently and found that any player states such as weapons equipped and inventory items etc are persistent across scenes and I was kinda surprised by that, maybe it is something you guy's expect as you understand the inner workings of both the engine and the controller better than I do. Do you think I would be better off with something like EasySave which I reckon has a simple save template as part of the package as well as the more complex stuff? I believe it works in much the same way as your method with attaching a script to any object you want to save properties for in the scene on either checkpoint or game pause etc. At the moment I am only concerned with retaing the state of pick ups etc, you don't want to come back to a scene to find all keys, health opened doors etc in the start state. I really like all the other stuff you are putting into this and reckon I could get a lot of use and inspirational ideas for game play and most of all as I say it bundles it into one package. Not to mention the TPC compatibility. It can take me a bit to get a full handle on what is going on under the hood but usually have one of those Aha! moments and it all falls into place for me so maybe I could handle it:) It might well be that your Quest system could be one of those things that help me learn simply cos I have to. Whatever I think your doing an awesome job and hope you get a crap load of sales with this one. As long as you run this line of code DontDestroyOnLoad(whatever) Whatever wouldn't be destroyed when you move from scene to scene. But it is just not enough for persistence. For instance you close your game when you're in a different level, but you can't load back from the said different level, and your items will be lost to you when loading. I support that out of the box. I implement a checkpoint system where in you can place a checkpoint in the environment and if you walk through it, the game would be saved. If I understand correct, easy save simply allows you to decide what variables to save and load from objects that you want saved through a gui interface, which is the highest usability factor as opposed to mine and it is strictly oriented for that job, just saving . What I have here is more oriented towards providing something that works out of the box with InVector so you can use it if you want. You also have the choice to not use the save system and use the other stuff like the experience system. As of now I am working on the saving the state of the item pick ups. I should have been able to do it today but there's an island wide power cut over here lol as soon as it's back I'll work on it and probably send along a video to you so you can decide. And you're right, at one point you really do need a bit of programming. You're super good with your artwork and all. Make the best of that by learning a bit of scripting too.
|
|
|
Post by G 4 greatness on Jul 22, 2017 16:38:52 GMT
any news on expected release ? though take your time make it the best
|
|
|
Post by tharindu on Jul 22, 2017 16:55:53 GMT
any news on expected release ? though take your time make it the best Hopefully it'll be sent to the asset store by the end of August.
|
|