Search Unity

Coder-friendly alternatives to Adventure Creator, PlayMaker, etc.

Discussion in 'General Discussion' started by Tom163, Oct 10, 2020.

  1. Tom163

    Tom163

    Joined:
    Nov 30, 2007
    Posts:
    1,290
    I'm working on a fairly complex game and would want to not code things that have been done a hundred times already.

    So I've been looking at the various support assets, like Adventure Creator, PlayMaker, etc. and found they are full of useful stuff, like setting up click-to-move or interactable objects, save and load game, etc. etc.

    However, I despise visual coding and clicking on a hundred buttons when three lines of code would do the same thing.

    So I've been wondering if there is something similar to these tools, but made for actual coders, not beginners. Quite frankly: "make a game without writing a single line of code" is a turn-off for me. I WANT to write code. I just don't want to RE-write code that should be in a library somewhere.

    Is there such a collection of prefabs, components and scripts that'll just make my life easier, but not take the actual pleasure of writing code away from me? The Standard Assets have a tiny selection of useful scripts - something that expands upon that? Or a non-visual-spaghetti code alternative to things like Adventure Creator?
     
    meghanbe and Martin_H like this.
  2. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    Maybe is worth to take a peak on git repos, of open source projects.
    There are tons of hidden gems there.
     
    JoNax97 and Martin_H like this.
  3. TimmyTheTerrible

    TimmyTheTerrible

    Joined:
    Feb 18, 2017
    Posts:
    186
    There are some behavior tree addons that might be what your looking for.

    They come with basic nodes scripted for them, and you can easily program your own nodes that you can then link into a behavior tree node editor.

    I like them because now instead of creating a new component for every little thing , I need only add a behavior tree component. I can then make my code small little modular nodes that I can link in the editor and rearrange to create complex behaviors.

    In the end this is a bit like playmaker, but a bit more complex in how they operate and what they can do.
     
  4. Tom163

    Tom163

    Joined:
    Nov 30, 2007
    Posts:
    1,290
    I actually own and use Behavior Designer quite a bit. I agree that anything related to even simple AI can be done in BD easily. However, a lot of things aren't realtime in my game, and I don't want to have a hundred useless Update() cycles running all the time. That's why I'm looking for a more "integrated system" approach. I use a lot of Scriptable Objectes to track state, but I noticed that I am coding a lot of scripts that should really be part of some library.
     
  5. TimmyTheTerrible

    TimmyTheTerrible

    Joined:
    Feb 18, 2017
    Posts:
    186
    Your behavior trees won't use update at all if you uncheck start when enabled. I use a setup where entering a trigger starts a behavior tree, or raising an event from another scene or object starts the the behavior tree execution.

    Nevertheless if anyone else knows some good libraries I would love to look at them too. Always love learning from other peoples code :)
     
  6. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    Maybe it would help if you also describe this. Unity already does quite a bit to alleviate stuff that people have coded hundreds of times already. Just like Behavior Designer, there are quite a number of coding/system assets and as mentioned above, git repos that offer systems to help, but when you start with Unity, you start building all the code unique to your game. Some people have no need for Behavior Designer.

    So yeah, if you have specific needs for your game, it's probably better to call that out, and maybe someone can say, hey, this or that asset or git repo would help with that.

    Like, this is a start, but it's still too vague. You already gain quite a lot using SOs, that you would otherwise have to build yourself. Maybe the scripts that you are coding are just going to be part of your own personal library. Are you looking for something that already does this stuff?
     
  7. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    There's not enough information to give a specific advice. As the situation you're describing is very vague.

    A simplest option would be to make your own library. If you're writing a subroutine twice, put it into a library.
     
  8. Tom163

    Tom163

    Joined:
    Nov 30, 2007
    Posts:
    1,290
    I'm talking about basic things like "open this door when character walks through it" (trigger, turn prefab, wait, turn back) or "keep these character values persistent over scenes" or "trigger this sequence of things". Or character controls like point-to-click with a check if I'm click on the NavMesh or somewhere else. Conditionals ("this thing is only clickable if that parameter is set") and so on. The small building blocks that are non-specific enough that you re-use them.

    And yes, I may end up with my own library. I just thought that a hundred other people already did similar things, so why re-invent the wheel? I'm not so arrogant that I think mine would be rounder. :)
     
  9. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,205
    Closest to this that I can think of would be Game Creator.

    https://assetstore.unity.com/packages/templates/systems/game-creator-89443
    https://docs.gamecreator.io/
     
  10. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,639
    I also recommend Game Creator for being programmer-friendly. It's designed to hook-in code in many places. I'm currently working on a project with it. My only complaint is that the provided player character is pretty monolithic and not easy to modify the core functionallity.

    I wouldn't bother with visual scripting solutions like Playmaker and Bolt if you prefer traditional coding, because these are mostly just wrappers for C# and Unity's API. They don't really add anything vs coding from scratch. Game Creator is different because it has some rudimentary visual scripting, but it's also a game framework with many game features already implemented for you.

    I've never used Adventure Creator but (according to manual) it looks like it's also meant to be extensible through coding. You may want to read that section of the manual before you give-up on that option. Most of these game framework editor assets provide you with both options- code or no code, but they just emphasize the no-code aspect in their advertising.

    Also most of these sort of assets include full source code, so you can make whatever changes you want.
     
  11. Tom163

    Tom163

    Joined:
    Nov 30, 2007
    Posts:
    1,290
    Indeed, that looks like a fairly mature package with a good balance between ready-to-use functionality and too-much-handholding. Thanks!
     
  12. Tom163

    Tom163

    Joined:
    Nov 30, 2007
    Posts:
    1,290
    Will do that. At the moment, AC does seem to do a few things (like save/load) better than GC, but damn I like the quest and dialogue systems in GC. They seem much more advanced than what AC offers... aargh. decisions... :)
     
  13. FabDynamic

    FabDynamic

    Joined:
    Jul 31, 2017
    Posts:
    36
    I've been looking for the same thing as you for a while now.

    Another possible option is here: https://www.gamekitcontroller.com at first you will think it is just an FPS/TPS controller but actually the features and behaviors list is enormous (just keep scrolling down on that page to see all the features) and the reviews are glowing. It looks to have full source code and most everything is so well polished that its configurable via the inspector. There is no visual scripting or anything.


    P.S. Game Creator looks great for $65 but the Quests module seems to be another $60 which is a fine price but it surprised me. Ofc if someone has purchased game creator for $65 and can confirm that quests do or dont come with that $65 package, drop me a note.
     
  14. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    Sometimes coding solution does not involve writing code.

    What you describe, can be done using....

    AnimatorController.

    You'll need to write a single component that is attached to a trigger, and when triggered, it sets a parameter on a linked AnimatorController, using value and parameter name you specified. You'll only need to do that once, and this will control every single object that can be reduced to a trigger response.

    The complexity will be few dozen lines of code at best, and the rest will be editing timelines with no programming involved. You can also control object visibility with it, animate every parameter you can see in unity editor, hide/unhide prefabs and launch functions. All completely configurable on animation timeline.

    With networking things will get more interesting, but you can make some sort of "InteractiveObject" behavior, implement replication there, and have that boss animators.
     
  15. Tom163

    Tom163

    Joined:
    Nov 30, 2007
    Posts:
    1,290
    Sure, you can do many things in different ways. I don't use animations unless I need very specific control. Tweening the transform parameters is much more transparent and easier to access in most cases.

    But it's just some examples. I have many use cases that aren't animator things. Like switching cameras or point-to-click character control.
     
  16. DaveLHOz

    DaveLHOz

    Joined:
    Mar 11, 2015
    Posts:
    8
    FWIW, I use Adventure Creator for setting up interaction "hotspots" and other scene elements, but then I write a lot of my own code and then just use AC's Object=>SendMessage action to invoke it.