0 Favourites

# Custom Pathfinding - Less Overhead

This forum is currently in read-only mode.
• 8 posts
• I am currently working with the RTS pathfinding behavior to try and accomplish a racing line to direct the AI around the tracks of a TD Racer I am working on. I have set up more than 30 points using individual sprites around the track to represent the path and am directing the ai to move from point to point determined by a private variable. The event sheet is getting way out of hand considering I am going to attempt to implement 22 ai opponents. I am thinking before I get to ahead of myself that I might want to think about making this met hod a bit simpler.

My event sheet is looking something like what you see below.

Timer is equal to 4000 - aicar01 set 'point1' to 1

Always(Every Tick)

+aicar01: Value 'point1' equal to 1 - add waypoint at point1

- move to point1

Always(Every Tick)

+aicar01: Value 'point1' equal to 2 - add waypoint at point2

- move to point2

Always(Every Tick)

+aicar01: Value 'point1' equal to 3 - add waypoint at point3

- move to point3

etc...etc...etc... until the ai car equals point 30 and then loops

to change the value I have set it to change when you overlap each point as to create a loop

so it looks like this.

aicar01 overlaps point1 - set point1 to 2

aicar01 overlaps point2 - set point1 to 3

aicar01 overlaps point3 - set point1 to 4

etc...etc...etc...

As you can see this process becomes very repetitive when having to create each cars pathfinding and I would really like to simplify this. Any suggestions?

• First I can tell you that having Always is redundant when it's surrounded by other conditions. Secondly I'd recommend making a single waypoint object and giving them each a value dictating which one they are.

Third, make it so when the waypoint's value equals the car, that a waypoint should be added to it.

Finally, make it so when the car overlaps a point it sets the car's value to it's value+1

I think that should do it.

EDIT: Oh, and if car's value=31, set to 1

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

Construct 3 users don't see these ads
• First I can tell you that having Always is redundant when it's surrounded by other conditions. Secondly I'd recommend making a single waypoint object and giving them each a value dictating which one they are.

Third, make it so when the waypoint's value equals the car, that a waypoint should be added to it.

Finally, make it so when the car overlaps a point it sets the car's value to it's value+1

I think that should do it.

EDIT: Oh, and if car's value=31, set to 1

So if I set Always (Every Tick) and then add sub events to it then those events are redundant? If so, that is good to know. Your solution is interesting. I will sit down and try and implement it when I get a chance. Thanks Yarfapet, you saved me a lot of time!

• Ok, I admit I am a little confused by this, any chance you could be more specific or share an example of how this might look? When you say "add single waypoint and add a variable to define which one they are." this is what confused me.

• Ok, I admit I am a little confused by this, any chance you could be more specific or share an example of how this might look? When you say "add single waypoint and add a variable to define which one they are." this is what confused me.

Never mind, I was confused because I noticed that by placing more than one of the same object throughout the layout and renaming one would cause all of them to be renamed to the same thing so I only assumed that if I changed a variable for one then that same variable would change for all of them. My mistake, I didn't realize that you could add a separate variable for each of the same object. Thanks! Works like a charm!

• No prob. BTW, this just dawned on me now. But if you ever wanted to clean up your code further, you could always put all the aicars in a family and reference the family instead of the individual cars, then you'd only have to write the code once.

Construct, one heck of a gradual learning process.

• No prob. BTW, this just dawned on me now. But if you ever wanted to clean up your code further, you could always put all the aicars in a family and reference the family instead of the individual cars, then you'd only have to write the code once.

Construct, one heck of a gradual learning process.

Tell me about it! I haven't yet gotten into families and am unfamiliar with there use in Construct as of this moment. Wish there was a quality help file or manual of sorts.

• Wish there was a quality help file or manual of sorts.

http://sourceforge.net/apps/mediawiki/c ... e=Families

• 8 posts