Search Unity

Assets HeroKit (Easy Game Maker) [RELEASED!!!!!!!!!!!]

Discussion in 'Works In Progress' started by AntFitch, Nov 12, 2016.

  1. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Last edited: Aug 15, 2017
  2. radialapps

    radialapps

    Joined:
    Nov 14, 2016
    Posts:
    2
    For looks, A
    For productivity, B
    For me, I would definitely give productivity the priority.
     
  3. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Here is a WIP of the item editor where you add AI to your game objects. Critiques welcome! I'm not 100% cool with this design yet. (radialapps, I made a few changes that you might like...)

    [img removed]
     
    Last edited: Nov 19, 2016
    radialapps likes this.
  4. radialapps

    radialapps

    Joined:
    Nov 14, 2016
    Posts:
    2
    I like the idea of having different shades for different levels, so it looks good overall (though I kinda still prefer a light theme while working, this is good too).
    You could increase the size of the tab buttons (Herokit, #Scene and Game) a bit, so it would be easier to work with. Also the "Loop (general)" box look slightly too small to me (maybe a bit taller would be better).
     
    AntFitch likes this.
  5. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    The UI is getting closer to its final version.
     
    Last edited: Nov 25, 2016
  6. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    An updated version of the UI. We've finalized the general layout. Next we'll focus on the forms used for actions.
     
    Last edited: Nov 25, 2016
    RavenOfCode likes this.
  7. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    This is a small sample of features that already exist in HeroKit. There are dozens more, but to get the party started...
    • 100% open source, well-documented, high-performance code that is easy to modify and expand.
    • Organize data in sensible stacks, not messy wireframes and nodes that end up looking hideous if you need more than a few simple actions. Reads like code.
    • HeroKit Objects are not created on game objects like every other visual scripting tool we've tried. You can assign a HeroKit object file to as many game objects as you want. This is great if you need a horde of similar items in your game.
    • You can swap out the HeroKit object on a game object at runtime. This will transform your game object into a completely new item. No need to delete an old game object and instantiate a new one.
    • Are nested perfabs a pain? With HeroKit, you can attach a nested prefab, spawn it at runtime, and it will work fantastically. You can also customize how it spawns and more.
    • There are many more features that I'll write about soon.
     
  8. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Why would you work with this:



    When you could work with this:



    And your logic looks like this:



    Our team is having a blast working on this right now. The core is solid, super fast, and we're creating our action library for the general version of this tool. If you have a specific action you want, let us know.
     
    JamesArndt and RavenOfCode like this.
  9. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
  10. Xepherys

    Xepherys

    Joined:
    Sep 9, 2012
    Posts:
    178
    So what do the properties include? Is that where animators and controllers are configured? I see the Action takes a 'HeroKitAction' object type - but can you drop a C# script in for something like an OnDeath() event?

    I have a complex DamagePackage object that is used for combat that includes a variety of sub-objects. Would I be able to use the DamagePackage I've written in conjunction with HeroKit without having to rework the core?

    Also, will HeroKit work with mobs or only the player?

    Lastly, any chance you'd have a demo version with partial functionality for testing? I agree that working with tons of script objects is a pain, but I've mostly written editor extensions to make them less painful. The HeroKit seems like a pretty slick concept, but I'm 50/50 on whether I want to upend my workflow to try something new that may not work. :-/
     
    AntFitch likes this.
  11. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Default properties are ints, bools, strings, hero objects, actions, states, events. You can add any others that you want, but these are the defaults.

    Animator is configured in a state. You can create your own via the editor or drag in one from a prefab. Controller is configured in an action. We'll have some basic controller actions, or you can build your own. Each action has its own C# file. You should be able to simply copy and paste your controller into an action C# file with a few small tweaks.

    Yes. We have an action that lets you call any method on a game object. You can also call methods that have a return value or parameters.

    You should be able to do this. If you have a script (or scripts) that manage damage, link these scripts to HeroKit. This might require you to build a custom action.

    Yes. HeroKit objects are built so that you can control one player or a mob. And you can change the "who do I control" rules during gameplay.

    PM me and we'll chat. Beta testing is going to begin in 4 weeks.
     
    Last edited: Jan 16, 2017
  12. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    A snapshot of our State Editor. On this screen, you decide what your character should look like in different states. For example, you may want to use a different model for a character who is alive or dead. Whatever you use for the first state appears in Unity's scene view.


    To create visuals for your gameobject, you have options:
    • Use whatever already exists on the gameobject in your scene.
    • Drag a prefab into the editor and use the prefab.
    • Build the visuals from a template. We have a bunch of templates for you to use, but you can also build your own if ours aren't what you need.
     
  13. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,509
    It looks like you are making some FSM tool simpler than Playmaker, it looks cool.

    You can propose some specific Action named "native" that would call any Unity functions using reflection for example.
     
    AntFitch likes this.
  14. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Very good idea. We've added an action called "Call Method" that lets you call any public method in Unity. In addition, it lets you use parameters and a return value if they are needed.

     
  15. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,743
    This looks like teh jass editor
     
    Last edited: Jan 18, 2017
    AntFitch likes this.
  16. Xepherys

    Xepherys

    Joined:
    Sep 9, 2012
    Posts:
    178
    What is your expected Asset Store price?
     
  17. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Here are my guesstimate prices:
    V 0.x = $38
    V 1.x= $65

    Never seen this before, but you are right. This appears to be an editor for Blizzard's World of Warcraft. I'm not surprised our thinking is the same, as my background is in RPG and SIM games. The logic in these games is very complex and attempting to build this logic through the default Unity editor would be a nightmare for those of us who know how much easier it can be.
     
    Last edited: Jan 19, 2017
    Aiursrage2k likes this.
  18. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    We re-built the Survival Shooter demo with HeroKit. It was full of nested scripts all over the place in GameObjects and Models. Now, the game has five HeroKit objects that have replaced the clutter of dozens of scripts. The HeroKit Objets are: Controller, Player, ZomBunny, ZomBear, Hellephant.

    The HeroKit Controller alone has become quite powerful. It contains three monster spawners, all of the UI logic, and global variables used by all other HeroKit Objects.

    More to come soon.
     
    HeadClot88 likes this.
  19. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
    Is this only an AI for combat?

    Are you going to support AI for NPC? It means an NPC who walks around town and talks.
     
  20. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    No, it's way more powerful.

    100% yes. NPCs, enemies, treasure chests, doors, switches, enemy spawners... Any object in the game that is more than just a prop can be powered by a Hero Object. You can have one or thousands of Hero Objects in your game. You can control one or a swarm of them as the player. Or you can make them NPCs and many other things.
     
    Last edited: Jan 29, 2017
    Xepherys likes this.
  21. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    You can use HeroKit to power the logic behind the menus in your game. We created a HeroKit Object called Menu Controller that powers all menus in the game.


    To use interactive UI components like buttons, you simply need to add a Hero Kit Listener and attach the Menu Controller.


    There are Input Types that are not available for default UI components like double click.

    In other news, the first sample game for HeroKit is code complete. Next step = beta testing.
     
    siblingrivalry and Xepherys like this.
  22. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Imagine you have a game with 100 maps. On each map, there are 100 NPCs wandering around, each with
    their own stats, states, and events. Now imagine you have to move between maps. Keeping the player data isn't a problem, but what about those hundreds of NPCs who aren't coming with you? What happens when you return to a scene and need to chat with Farmer Bob about a dragon that ate his cows in another scene?

    Hero Kit caches your scenes when you leave them. So, when you want to return to a scene at a later date, it will be just the way it was when you left. And if you are creating a game that shouldn't load cache scenes (Match-3), not problem. We have a checkbox for that.

    You can also make your HeroKit Objects persistent. For example, this Master Controller is available in all scenes in the game. This is great if you need Global Variables.

     
    Last edited: Feb 17, 2017
    Cartoon-Mania likes this.
  23. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
    I want it.
     
    AntFitch likes this.
  24. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Awesome! If you have any questions, let me know.
     
  25. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    A snapshot of our dialog system. It supports choices, branches, localization, variables embedded in text, full control over the look of your dialog boxes. It's also open-source so that you can further customize the system. Because it's integrated into the Hero Kit workflow, you can do very, very complex things with your dialog system. And it's extremely flexible.
     
    Last edited: Feb 20, 2017
  26. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
    I was surprised. I thought this was merely an AI for combat. In fact, I always want AI like sims. Of course I know that sims are very complex. Actually, I do not want that. I want the NPC to move and work according to the schedule and condition. When the player approaches the NPC, they can talk. The conversation depends on the situation. Of course, the reaction to the player also changes.

    I want to ask. Can I expect a simpler AI like the Sims AI?
     
  27. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
    And does this provide a quest system?
     
  28. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Complex Sims and RPGs were the original target of the project, so 1000% yes. HeroKit is a full-game AI system. There are a lot of things that it does that I haven't listed yet. Your NPC situation would be easy to create.

    You can build a quest system in about 10 minutes. The architecture of HeroKit was designed so that you could build all sorts of unique systems for your game fast. I'll show you how to do this soon.
     
  29. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
    awesome.. but honestly I doubt this is possible.
    I want to see a demo soon.

    If done as you say it is revolution

    and I visit your facebook.. I think you love stonehearth

    actually I want AI like stonehearth

    Is such an AI possible in the first version?

    and Can AI vs AI combat?

    Is the release still in March?
     
    Last edited: Feb 22, 2017
  30. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Probably April. HeroKit was originally created three years ago for an evolution SIM we were working on at the time. It was a bit hackish back then, so we re-built it from scratch. It's much more powerful now. Is it powerful enough for what you need? Only time will tell.
     
  31. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
    I hope I can see the demo soon. You'll show a demo for the battle. But I want you to show the Sims like AI. Can I see the demo before release? I'm a little sad. You are making a really cool product. But people are less interested. It's because you do not get marketing. You have to release a great demo or video.
     
    Last edited: Feb 22, 2017
    AntFitch likes this.
  32. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    With HeroKit, we have actions to help you create an entire game. The Show Message action displays a message in your game and plays an audio clip if one is provided. Text and audio can be localized. Each message can have a title, portraits, and choices. You can use choices to start conversation branches, change variables, character AI, and more.

    Messages can contain rich text and variables stored in any HeroKit object. Or, if you would like to use another asset like TextMeshPro to incorporate advance text creation, you can do this with a custom action.

    We provide the default message box below, but you can customize the layout until it is unique for your game. If you are a coder, you can take it a step further and create a new Show Message action with only the content you need. HeroKit messages are easy to use and easy to change.

     
    Last edited: Feb 23, 2017
  33. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Today we added several camera actions. The camera can follow a game object, pan to specific locations in the game, and shake. Having fine-tune control over the camera should make it much easier to create cool movies and cut-scenes.
    • Follow Object with Camera
    • Stop Follow Object with Camera
    • Move/Pan Camera
    • Shake Camera
     
    Last edited: Feb 28, 2017
  34. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Today we added several actions for 2D images:
    • Show Image
    • Move Image
    • Scale Image
    • Rotate Image
    • Change Image Color
    • Change Image Alpha
    • Hide Image.

    Show Image displays an image of your choice above the content in your scene. Move Image, will move the image to a position over a duration. Scale Image will scale the image over a duration, Rotate Image will rotate the image over a duration, Change Image Color will change the color or alpha of an image over a duration. Hide Image hides the image when you're finished with it.
     
    Last edited: Feb 28, 2017
  35. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Today we finished up most of the actions related to audio. Here is the action list:
    • Change BGM / BGS / SE settings
    • Fade In BGM / BGS / SE
    • Fade Out BGM / BGS / SE
    • Play BGM / BGS / SE
    • Stop BGM / BGS / SE
    • Turn All Audio On or Off
    • Use Snapshot on Audio Mixer
     
  36. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Finished up a bunch of movement actions that should come in handy for NPCs.
    • Move Left / Right / Up / Down/ Lower Left / Lower Right / Upper Left / Upper Right
    • Move Custom Direction
    • Move Backward
    • Move Forward
    • Move Random
    • Move Toward Object (Pathfinding)
    • Turn Left / Right / Up / Down / Lower Left / Lower Right / Upper Left / Upper Right
    • Turn Custom Direction
    • Turn Opposite Direction
    • Turn Random
    A few more are needed for moving toward and away from objects in the scene. Tomorrow.
     
  37. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
    There is a suggestion in NPC AI movement.
    As I already mentioned, I would like to have an NPC moving according to the schedule.

    The NPC leaves the house and goes to the blacksmith. And the NPC goes to the restaurant. The NPC goes to the store. When the NPC sees another NPC, it talks. When the NPC sees the main character, he approaches the main character. The NPC talks. It is like this.
     
  38. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Absolutely possible. Thanks for reminding me that there is a pathfinding action that I need to add: Move to Position.

    For your scenario, I would create a hero object called NPC with these variables, states, events, and actions:
    • Variables:
      • Int 0: NPC Location (0=go to blacksmith, 1=go to restaurant, 3=go to shop)
      • Int 1: NPC AI (0=do daily tasks, 1=talk to other NPC, 2=talk to player)
    • State 0: Init NPC (no model so that it is invisible)
      • NPC Location = 0
      • Event 0: Timer
        • Action 0: Wait X amount of time
        • Action 1: Go to State 1 (unloads State 0, loads State 1)
    • State 1: NPC In Town (add model for NPC so that it is visible)
      • Event 0: Navigate to Blacksmith's Shop (runs if NPC Location = 0 & NPC AI = 0)
        • Action 0: Move to Position (Blacksmith)
        • Action 1: NPC Location = 1
      • Event 1: Navigate to Restaurant (runs if NPC Location = 1 & NPC AI = 0)
        • Action 0: Move to Position (Restaurant)
        • Action 1: NPC Location = 2
      • Event 2: Navigate to Store (runs if NPC Location = 2 & NPC AI = 0)
        • Action 0: Move to Position (Store)
        • Action 1: NPC Location = 0
      • Event 3: Track other NPCs and Player (runs if NPC AI = 0)
        • Action 0: Is NPC near another NPC? If Yes...
          • Action 1: NPC AI = 1
        • Action 2: Else Is NPC near Player? If Yes...
          • Action 3: NPC AI = 2
      • Event 4: Interact with other NPC (runs if NPC AI = 1)
        • Action 0: Move to Object (other NPC)
        • Action 1: Animate NPC (chatting animation)
        • Action 2: Wait X amount of time
        • Action 3: NPC AI = 0
      • Event 5: Interact with Player (runs if NPC AI = 2)
        • Action 0: Move to Object (player)
        • Action 1: Play SE (say something to player)
        • Action 2: Wait X amount of time
        • Action 4: NPC AI = 0
      • Event 6: Talk to Player (runs if player clicks on NPC)
        • Action 0: Move Player to NPC
        • Action 1: Show Dialog (could have branches, but not listing for brevity)
        • Action 2: Wait X amount of time
        • Action 3: NPC AI = 0
     
  39. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
    That's great.. I hope Hero Kit included example scene like this
     
  40. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    It will. We're going to have lots of small scenes that show you how to do specific tasks like this. We'll also have video tutorials.

    Also, finished up / cleaned up many actions today. Here is the list:
    • Player Controller A On / Off
    • Third Person Camera On / Off
    • Animate Move On / Off
    • Change Move Duration
    • Change Move Speed
    • Face Move Direction On / Off
    • Set Move Animation
    • Navigate Toward Object On / Off
    • Navigate Toward Position On / Off
    Tomorrow, I'll get back to some pain-in-the-*** actions that I've been pushing aside that deal with rotation.
     
    Last edited: Mar 3, 2017
  41. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    We've been searching high and low for the name of the design pattern that matches HeroKit. Model-View-Controller fit the best, but we couldn't find many references to it in the world of game development. With a bit more research, it appears that a lot of game developers call it the Entity System design pattern.

    These systems make developing complex games very easy, but if not implemented carefully, can have a huge performance hit.

    Here is a great article that sums up what HeroKit needs to achieve:

    http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/

    There are a few entity frameworks in the Unity app store. I used a popular one for a while until I discovered how horrible it was on the performance of my game and how little complexity it could manage. If all goes well, our team won't make these same mistakes.
     
  42. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    We're doing a live stream on Friday @ 10 AM PT. Details at the top of this thread.
     
  43. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    We're live streaming in a few minutes...
     
  44. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    290
  45. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    The first draft of the particle effects controller is complete. You can display a particle effect at a specific coordinate on the map or you can display it over a game object.


    A few notes:
    • We assume your game could have thousands of potential particle effects. Therefore, particles are created on the fly so that you don't have to attach 1000+ game objects with particle systems to each object in your game.
    • Particles are pooled once used. This dramatically helps performance. We won't instantiate particles over and over again.
    • If you attached a particle effect to a game object by hand and don't want us to generate a new particle effect for you, no problem. The particle effect system can play your pre-created particles. This is great for the performance of your game.
    • A particle that plays on an object can be attached directly to a hero object or to one of its children. You can also determine the offset for its position and rotation.
     
    Last edited: Mar 26, 2017
  46. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    881
    When will the beta start?
     
  47. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    As soon as the sample scenes are finished and the code is documented. A few weeks.
     
  48. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    881
    Alright, good luck!!
     
    AntFitch likes this.
  49. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    It took a few days, but we've cleaned up our original scene controller and made it much more powerful. Through drag-and-drop actions, you can do many things with the scene controller so you can focus on building your game logic, not spending weeks building a scene manager from scratch.


    Let's take a look at a few features of the HeroKit scene controller:
    • Load a scene at a specific location
    • Load a scene at a specific rotation
    • Move a hero object from one scene to another. Here are some specific settings:
      • Pick a new location for the object
      • Pick a direction for the object to face
      • Have the camera in the new scene match distance from object / camera in old scene.
    • An alternative to moving a hero object from one scene to another is to make it persistent. A persistent object will appear in all scenes. This is great for player characters, main camera, and UI elements. And there is an easy-to-use action for this.
    • When you leave a scene, all of your hero objects in that scene are saved so that when you come back, they are in the same position and state as they were when you left them. BUT if you don't want to save this data, there is a checkbox you can mark to ignore this step.
    • When you leave and re-enter a scene, all of your hero objects in this scene are loaded at the same position and state they were in when you last left the scene. BUT if you don't want to reload this data, there is a checkbox you can mark to load the default version of the scene.
    • If you are moving persistent objects (like the player) from scene to scene, you can check to make sure that you don't end up with duplicates of these objects (make persistent in scene A, go to scene B, return to scene A). Working with persistent objects is very, very easy.
    • Show fade out effect when you leave a scene.
    • Show fade in effect when you enter a scene.
    • You don't need to manually tell Unity which scenes you are going to use in your game. When you create a scene action, it automatically updates the Unity build settings.
    There are a few more things we want to add (stitch scenes together so it looks like you're running through one giant scene), but we want to make sure our base features of the scene controller is solid first.
     
  50. Starpaq2

    Starpaq2

    Joined:
    Mar 14, 2013
    Posts:
    30
    As a coder/scripter/programmer I would not necessarily need anything like this. However, your product based on what i see is quite impressive. The workflow for game design looks clear and easy to understand. I love products which help provide efficient workflows. I wouldn't mind trying to implement your product into my workflow for certain areas of development in the future. I'm not certain its anything new but its layout and approach catches my eye.

    Nicely done. I look forward to seeing where it goes.
     
    AntFitch likes this.