• I haven't updated my project files for this since mid-November, and there is obviously some renewed interest in this, so I'll try to get it updated for ORK 2.10.1, TPC 1.3.6, and unity 5.5 by the end of this week.

    Anybody who wants the source files just needs to send me a PM to request them.
  • And I've completed the update. PM me for a link to download the files.
  • Hi Keldryn - interested in your move to Ooti from Opsive, you mentioned it integrates better - can you elaborate on the details of why you chose one over the other?
  • @Wanderer - sure, no problem.

    Ultimately, it comes down to ootii's Motion Controller having a more modular architecture than Opsive's TPC, and also having a less restrictive design when it comes to extending the code via inheritance.

    TPC's classes have a lot of private methods and fields (which are not accessible by any classes that inherit from them); while Justin is very willing to change those to protected or public, he prefers to only do that when there are specific needs to do so. Most of the classes through the various ootii products, on the other hand, use protected fields and protected virtual methods quite extensively. The classes also expose more public fields/properties by default as well.

    It's not a huge deal to change fields or methods from private to protected/public when I need to, although it is a bit of a pain when updating to a new version of TPC, as I need to go back and make all of those changes again. It's also a pain to have to request that those changes go into a future version, as I found I was continually working one version behind. This all makes it more trouble to share the integration scripts, as even if I give step by step instructions as to what code changes to make, there will always be a number of people who can't get it to work right.

    When it comes to modularity, TPC certainly allows you to use the character controller on its own. However, if you want to use its weapon and combat system (hit detection, apply force when hit, animations that adapt to what weapon you're using), you also have to use its health component and its inventory system. TPC's inventory system is fine for shooters or action games, but it doesn't work well for RPGs. And its inventory system requires you to set up each weapon in the game on each character that can use it at design time. Essentially, it enables and disables the weapon set up on the character prefab at runtime. I looked into building some sort of "weapon injection" system where I could set up a prototype of each weapon type and then overwrite the mesh, colliders, and other features with values from the Viewer Prefab set up in ORK's Weapons data, but it would be a fair bit of work. With Motion Controller, I can let ORK's Equipment Viewers place weapons at runtime and then easily bridge that with the combat system included in ootii's weapon motion packs (Sword & Shield for melee).

    As a general rule, Motion Controller does its thing and then gets out of the way. The assumptions that it makes really only affect my code and systems design when I'm building a "bridge" component to integrate with it. TPC's assumptions, on the other hand, create much larger ripples and force me to design around those assumptions. That's what software engineers refer to as an "opinionated" framework. ORK is fantastic, but it is also very particular about how it wants a lot of things done, and I'd rate it as fairly opinionated as well.

    Bridging a pair of fairly opinionated frameworks was causing me no end of headaches. There wasn't anything impossible or insurmountable; it was just proving to be more work than I thought it was worth. The integration with Motion Controller is a much more smooth process.
  • @Keldryn makes sense on the preference, thanks for the detailed explanation.
  • You're welcome!

    I'd also like to clarify that this only applies to TPC v1.3x.

    TPC v2 should be addressing all of these issues, but that's still several months off.
  • ORKsive is a great idea.
    I make top-down RPG, with both of this systems. And it's making me a lot of trouble. I really need more tutorial, more information, and more example, to figure how it works.
    I really appreciate every initiative like ORKsive.
    Can you make something for Assetstore, or make some tutorials for us? Or go to Patreon and start community crowd funding.
    Anyway. Grate Job Keldryn. The example looks really nice.
Sign In or Register to comment.