# Tilemap Path Finding ( a\* ) (beta)

**URL:** <https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846>\
**Category:** Arcade\
**Tags:** extension\
**Created:** [April 27, 2020, 1:27am UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846 "2020-04-27T01:27:39Z")\
**Posts on this page:** 17\
**Page:** 3

<div class="post-metadata">

**Author:** ![TruGamer](https://avatars.discourse-cdn.com/v4/letter/t/958977/32.png) [@TruGamer](https://forum.makecode.com/u/TruGamer)\
**Post date:** [April 17, 2023, 4:48pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/41 "2023-04-17T16:48:34Z")

</div>

Can you make a google drive link github is blocked on school-issued laptops

---

<div class="post-metadata">

**Author:** ![Shade9788](https://avatars.discourse-cdn.com/v4/letter/s/e9c0ed/32.png) [@Shade9788](https://forum.makecode.com/u/Shade9788)\
**Post date:** [April 24, 2023, 1:41pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/42 "2023-04-24T13:41:22Z")

</div>

Is it possible this could work with any other extension?

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [April 24, 2023, 5:36pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/43 "2023-04-24T17:36:44Z")

</div>

What exactly are you trying to say? Most arcade extensions are compatible, so probably yes

---

<div class="post-metadata">

**Author:** ![Shade9788](https://avatars.discourse-cdn.com/v4/letter/s/e9c0ed/32.png) [@Shade9788](https://forum.makecode.com/u/Shade9788)\
**Post date:** [April 25, 2023, 5:55pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/44 "2023-04-25T17:55:40Z")

</div>

such as raycasting

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [April 25, 2023, 5:59pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/45 "2023-04-25T17:59:18Z")

</div>

Yes, it should be able to work

---

<div class="post-metadata">

**Author:** ![Blobbey](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/blobbey/32/20831_2.png) [@Blobbey](https://forum.makecode.com/u/Blobbey)\
**Post date:** [April 25, 2023, 6:15pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/46 "2023-04-25T18:15:17Z")

</div>

Yeah, it works. I used path finding with raycasting in one of my games.

---

<div class="post-metadata">

**Author:** ![jwunderl](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/jwunderl/32/5308_2.png) [@jwunderl](https://forum.makecode.com/u/jwunderl)\
**Post date:** [April 25, 2023, 6:17pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/47 "2023-04-25T18:17:57Z")

</div>

Yup, we’ve been making this game on live stream and used path finding + raycasting together:

> **[horror-starter](https://arcade.makecode.com/S65235-94701-18450-63949)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

one thing to remember is that the sprite that is following the path must be smaller than (or equal to) one tile – we have to work around that in this game because we have a huge enemy following you. The way we do so making the ‘actual’ sprite follow around another, smaller sprite (that we don’t show, you can just set it to a 1x1 image or something), and we have the smaller sprite be the one that is actually following the path / checking collisions.

---

<div class="post-metadata">

**Author:** ![4SYLLABLES](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/4syllables/32/21357_2.png) [@4SYLLABLES](https://forum.makecode.com/u/4SYLLABLES)\
**Post date:** [June 30, 2025, 5:42pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/48 "2025-06-30T17:42:02Z")

</div>

This is probably the most useful extension I have used! I couldn’t have made a lot of my projects if this didn’t exist. Thank you!

---

<div class="post-metadata">

**Author:** ![MatthewMakecode](https://avatars.discourse-cdn.com/v4/letter/m/b5e925/32.png) [@MatthewMakecode](https://forum.makecode.com/u/MatthewMakecode)\
**Post date:** [December 7, 2025, 10:49pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/49 "2025-12-07T22:49:38Z")

</div>

Can you maybe add a way of both having smart pathfinding and also a pathfinding prioritisation?  
For example, I

already have the code to have the project process the distances and prioritise them, but I still cannot find a way to incorporate this into the code.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/c/a/cac0840f87c45358831ff44ad96afd3e55de67b7.png)

Can you find a way to set the sprite to follow around/ pathfind around walls?

---

<div class="post-metadata">

**Author:** ![LoonaW13](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/loonaw13/32/32158_2.png) [@LoonaW13](https://forum.makecode.com/u/LoonaW13)\
**Post date:** [January 16, 2026, 6:01pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/50 "2026-01-16T18:01:58Z")

</div>

How do I add the extension???

---

<div class="post-metadata">

**Author:** ![YamJam](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/yamjam/32/29681_2.png) [@YamJam](https://forum.makecode.com/u/YamJam)\
**Post date:** [February 24, 2026, 1:01am UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/51 "2026-02-24T01:01:49Z")

</div>

@jwunderl is it possible to use this in a left to right tilemap? Like in a platformer? I’m trying to make ai for a game I’m making but I don’t know how to make it move around by itself and jump up to reach new heights.

---

<div class="post-metadata">

**Author:** ![Ima.notarobot](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/ima.notarobot/32/26551_2.png) [@Ima.notarobot](https://forum.makecode.com/u/Ima.notarobot)\
**Post date:** [February 24, 2026, 7:03pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/52 "2026-02-24T19:03:50Z")

</div>

> [@Hello1](#):
>
> Can this be used in a 2D side scrolling game with gravity?

> [@jwunderl](#):
>
> Not really in it’s current form. A\* is a pretty general path finding algorithm, but the implementation written here is just written for a top down path following – e.g. for a character to escape a maze. It would require modification to work as AI for a normal side scrolling game – e.g. it’d have to be written to know that movement left, right and down is fine, but for up can only be done in an arc (and to account for enemies, using powerups, etc). Here’s an example of someone who wrote an A\* implementation to control mario in a game: [https://www.youtube.com/watch?v=DlkMs4ZHHr8](https://www.youtube.com/watch?v=DlkMs4ZHHr8)

Someone already asked this. You could ask @PixelDoodle (Sorry for ping I know some people don’t like it but, in honnor of helping someone. ) He made a pretty good side to side path finding system for his super smash bros remake.

---

<div class="post-metadata">

**Author:** ![PixelDoodle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/pixeldoodle/32/24129_2.png) [@PixelDoodle](https://forum.makecode.com/u/PixelDoodle)\
**Post date:** [February 25, 2026, 4:02am UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/53 "2026-02-25T04:02:12Z")

</div>

> [@Chatting Area! Have fun!](https://forum.makecode.com/t/chatting-area-have-fun/8740/4573):
>
> @RoboVacDev please dont ping me for things that dont really matter

(Jeez did this quote put the fear of God into anyone who wants to ping me?-)

anyways @YamJam, if youre talking about enemies, i think you want something like this:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/2/9/29a37a89a3940ed7a077505c42e82ae1960bcf2f.png)

Project:

> **[enemy types](https://arcade.makecode.com/S93006-19327-91797-11496)**
>
> bare bones platformer

(Note: this does require the Sprite Data extension)

---

<div class="post-metadata">

**Author:** ![YamJam](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/yamjam/32/29681_2.png) [@YamJam](https://forum.makecode.com/u/YamJam)\
**Post date:** [February 25, 2026, 4:10am UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/54 "2026-02-25T04:10:28Z")

</div>

Perfect.

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [July 30, 2026, 5:51pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/55 "2026-07-30T17:51:06Z")

</div>

I’ve heard that A\* is also commonly used for a Buch of nodes that link to each other, am I able to use this extension in a way that I can do that, or do I have to make my own?

---

<div class="post-metadata">

**Author:** ![jwunderl](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/jwunderl/32/5308_2.png) [@jwunderl](https://forum.makecode.com/u/jwunderl)\
**Post date:** [July 30, 2026, 5:55pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/56 "2026-07-30T17:55:09Z")

</div>

The only thing exposed in the extension is tilemap pathing due to the complexity of it (already something that at times needs explanation, and adding blocks / hooks for a general a\* implementation would be a lot and make the extension even more scary), but if you want to do your own can start by looking at this file [arcade-tilemap-a-star/a-star.ts at master · jwunderl/arcade-tilemap-a-star](https://github.com/jwunderl/arcade-tilemap-a-star/blob/master/a-star.ts#L73), or the wikipedia pseudocode for it [A\* search algorithm - Wikipedia](https://en.wikipedia.org/wiki/A*_search_algorithm#Pseudocode)

---

<div class="post-metadata">

**Author:** ![LoonaW13](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/loonaw13/32/32158_2.png) [@LoonaW13](https://forum.makecode.com/u/LoonaW13)\
**Post date:** [September 17, 2026, 9:56pm UTC](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846/57 "2026-09-17T21:56:55Z")

</div>

I finally figured it out lol.

[Previous page](https://forum.makecode.com/t/tilemap-path-finding-a-beta/1846.md?page=2)
