HeadClot's Recent Forum Activity

  • You do not have permission to view this post

  • Just make a three.js plugin

    Hey Ashley - Got a question -

    With the Construct 3 editor be rewritten from scratch will there be a "multi-layout editor" or similar in C3?

    I am asking as I deal with very large layouts (Scenes/Maps) on a daily basis in other engines and I need a way to deal with them elegantly in Construct 3.

    I can provide examples if needs be to show what I mean.

    Thank you for your time,

    HeadClot

  • This looks amazing.

    Just curious do you plan on releasing the .CAPX for others to learn from?

  • I had made before.

    It separates transfer logic into dedicated condition. So that I guess it could make behavior trees. (I had used main FSM and sub-FSM before,)

    Awesome!

    Keep me in the loop

  • I think the problem here is two-fold:

    1. Dynamic loading would be a difficult thing to 'streamline', as is Ashley's wont with most features (and thank goodness, as that's what makes C2 so usable).

    2. Moreover, most users wouldn't ever touch these features. I would estimate 95% of people would go 'cool! I can build GTA now!'...and that would be about it. Building a game huge enough to need such features is a tough wall to climb all by itself.

    So it's probably hard to justify spending a bunch of time adding such features.

    Still...it would be really, really great to have an internal behavior like 'nickname'. That would come in very handy.

    Honestly I think I can agree with this.

  • rexrainbow -

    Ah Ok,

    So from my understanding - Behavior Trees just a very simplified Hierarchical FSM but it allows logic to be reused in a highly modular manner.

    So for example - You would have code for Idle in one script, Suspicious in another and Attacking in another. But you would call them in a certain order. Your AI does not go from Idle to attacking straight away.

    Your AI needs to be suspicious first before attacking.. That said I could be wrong.

  • HeadClot

    Unfortunately Ashley feels that layout asset management should only be his responsibility. He feels that loading and unloading assets would confuse newer developers and they would complain. The complaint being that this would 100% create popin and popout issues. However this pop in/out is normal and require zone buffering and level design to avoid players seeing pop in/out. however since that requires people to take that into account in design and would be a more advanced development feature, Ashley for that reason has elected to not allow it. So yeah. We have made the request. but I doubt it's one we will see it until it more of the community becomes vocal. But C3 may allow better developer control to do so anyways. It's just a matter of seeing what comes from C3.

    hmmm...

    I am going to be brutally Honest -

    That really turns me off from even buying C3. If you fear new people will complain. Tell them to go and read the documentation.

    If at all possible give the advanced users options to enable what we want to load and unload in our scenes via Sublayers or whatever.

    Also -

    I was reading some where that multiplayer was not a big success in C2 and may not be included in C3. Is this true?

    I cannot remember where for the life of me i read this.

    I might buy C3 when more details become available but not sure yet.

  • So rexrainbow asked me via PM what is the difference between FSM (Finite State Machines) and Behavior Trees. I was unable to reply due to the spam filter and thought this would be better suited for an open forum discussion.

    [quote:3bqwqc4m]On the Unity Forums SteveB asked an interesting question: why a behavior tree and why not a finite state machine (PlayMaker)? According to some, the age of finite state machines is over. We aren't going to go that far, but we are going to say that a finite state machine should not be the only AI technique that you use in your game. The true power comes when you combine both behavior trees and finite state machines together.

    Before we continue, we want to point out that finite state machines are by no means required for behavior trees to work. Behavior trees work exceptionally well when used all by themselves. The CTF and RTS sample projects were created using only behavior trees. Behavior trees describe the flow of the AI whereas finite state machines can be used to describe the function.

    [quote:3bqwqc4m]Behavior trees have a few advantages over finite state machines: they provide lots of flexibility, are very powerful, and they are really easy to make changes to. But they definitely do not replace the functionality of finite state machines. This is why when you combine a behavior tree with a finite state machine, you can do some really cool things.

    Lets first look at the first advantage: flexibility. With a finite state machine (such as PlayMaker), how do you run two different states at once? The only way we have figured it out is to create two separate finite state machines. With a behavior tree all that you need to do is add the parallel task and you are done - all child tasks will be running in parallel. With Behavior Designer, those child tasks could be a PlayMaker FSM and those FSMs will be running in parallel. In addition, lets say that you also have another task running in parallel and it detects a condition where it needs to stop the PlayMaker tasks from running. All you need to do for this situation is add an interrupt task and that task will be able to end the PlayMaker tasks immediately.

    One more example of flexibility is the task guard task. In this example you have two different tasks that play a sound effect. The two different tasks are in two different branches of the behavior tree so they do not know about each other and could potentially play the sound effect at the same time. You don't want this to happen because it doesn't sound good. In this situation you can add a semaphore task (called a task guard in Behavior Designer) and it will only allow one sound effect to play at a time. When the first sound finishes playing the second one will start playing.

    Another advantage of behavior trees are that they are powerful. That isn't to say that finite state machines aren't powerful, it is just that they are powerful in different ways. In our view behavior trees allow your AI to adopt to current game state easier than finite state machines do. It is easier to create a behavior tree that will adopt to all sorts of situations whereas it would take a lot of states and transitions with a finite state machine in order to have similar AI.

    One final behavior tree advantage is that they are really easy to make changes to. One of the reasons behavior trees became so popular is because they are easy to create with a visual editor. If you want to change the state execution order with a finite state machine you have to change the transitions between states. With a behavior tree, all you have to do is drag the task. You don't really have to worry about transitions. Also, it is really easy to completely change how the AI reacts to different situations just by changing the tasks around or adding a new parent task to a branch of tasks.

    Just like behavior trees have advantages over finite state machines, finite state machines have different advantages over behavior trees. This is why the true magic happens when you join a behavior tree with a finite state machine. You can use PlayMaker for all of the condition/action tasks and Behavior joining Behavior Designer with PlayMaker is where the true magic happens. You can use PlayMaker for all of the condition/action tasks and Behavior Designer for the composite/decorator tasks. With this setup you'd be playing off of each others strengths. The flexibility of a BT and the functionality of a finite state machine.

    I got this info from -

    www dot opsive dot com/assets/BehaviorDesigner/documentation.php?id=49

    TL;DR - It would make AI development, iteration, and execution allot easier and more flexible. Hope that explains that for you.

  • > Large world Support is a must for me

    >

    > There was talk about this a while back and it is not possible to do as far as I am aware in C2.

    >

    > Just add scirra dot com

    >

    > /forum/viewtopic.php?f=146&t=119151

    >

    > because I am not allowed to post links yet

    >

    Really, we have the tools to do this now...sort of. To practically do it though, you need a way of spawning objects by name, which necessitates using a third party plug by rexrainbow:

    I've never actually implemented this, but basically the way it would go is that you build your open world in one layout, have a function that loops thru that layout storing the attributes of all the objects within it(position, inst vars, etc), then store that file as JSON and use it to spawn everything in/out of a blank layout. Otherwise, for a truly huge world, the loading time would be insane.

    That being said, this could be streamlined immensely by a few extra built-in actions, as detailed in the thread you linked.

    I stand corrected.

    Thank you for this wonderful plugin/info

    I also updated my post with another request behavior trees. Most engines if not all these days use them.

    There are some open source implementations of behavior trees in javascript and native code.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Large world Support is a must for me.

    There was talk about this a while back and it is not possible to do as far as I am aware in C2.

    /forum/viewtopic.php?f=146&t=119151

    Also - it might be worth adding Behavior Trees to streamline AI creation and make more responsive AI. There are some opensource alternatives out there one being BehaviorTree.js

    I am not allowed to post links yet so no links.

  • If you guys really want to migrate to other tools. Might be interested with this free n open source software.compiles to native and html5. For android or ios still requires wrapper like XDK or cocoonjs.

    biz.turbulenz(dot)com/developers

    This is also available it is under the MIT license. It is a web based tool set / API for making games in the browser That said I do not think It has a level editor...

HeadClot's avatar

HeadClot

Member since 13 Nov, 2014

None one is following HeadClot yet!

Trophy Case

  • 9-Year Club
  • Email Verified

Progress

10/44
How to earn trophies