Log inSign up
Log inSign up
excalibur.js
260 posts
excalibur.js profile banner
@excaliburjs

excalibur.js

@excaliburjs
Build amazing 2D games for the web using Excalibur. For Free.
excaliburjs.com
Joined December 2013
26 Following
266 Followers
RepliesRepliesRepostsRepostsMediaMedia

Log in or sign up for X

See what’s happening and join the conversation

Continue with phone
or
Log in with username or email
Terms·Privacy·Cookies·Accessibility·Ads Info·© 2026 X Corp.
  • @excaliburjs
    excalibur.js
    @excaliburjs
    Jun 27, 2025
    🗺️ New Graph module to do graph data structures and algorithms with built in path finding! Thanks Justin Young! Features: - Nodes with custom data - Weighted, directed or undirected edges - Position nodes in 2D space for spatial algorithms - Built in BFS and DFS - Path finding!
    Code Snippet

```typescript
import { Graph } from 'excalibur';

// Create an empty graph of strings
const graph = new Graph<string>();

// Add a few nodes with string data
const nodeA = graph.addNode("A");
const nodeB = graph.addNode("B");
const nodeC = graph.addNode("C");

// Connect nodes with bidirectional edges (default)
graph.addEdge(nodeA, nodeB);
graph.addEdge(nodeB, nodeC);
graph.addEdge(nodeC, nodeD);
graph.addEdge(nodeD, nodeE);

// Check if nodes are connected
const connected = graph.areNodesConnected(nodeA, nodeB); // true

// Get neighbors of a node
const neighbors = graph.getNeighbors(nodeA); // [nodeB]

// Find shortest path from A to C
const { path, distance } = graph.shortestPathDijkstra(nodeA, nodeC);

const aStarResults = graph.astar(nodeA, nodeB);
```
  • @excaliburjs
    excalibur.js
    @excaliburjs
    Jun 27, 2025
    🧩 New ECS feature to improve Query options just landed in main Excalibur thanks to @mattjennin.gs! Latest alpha `npm install excalibur@next` Queries can now take additional options to filter in/out by components or tags! This is huge for our ECS fans out there!
    Code Snippet: 

```typescript
const query = new Query({
  // all fields are optional
  components: {
    all: [ComponentA, ComponentB] as const, // important for type safety!
    any: [ComponentC, ComponentD] as const, // important for type safety!
    not: [ComponentE]
  },
  tags: {
    all: ['tagA', 'tagB'],
    any: ['tagC', 'tagD'],
    not: ['tagE']
  }
})
```
  • @excaliburjs
    excalibur.js
    @excaliburjs
    Jun 3, 2025
    Good News everyone! A new version Excalibur Dev Tools Extension had been deployed to the Chrome/FF web stores!!! Release: github.com/excaliburjs/ex… Chrome: chromewebstore.google.com/detail/excalib… FF: addons.mozilla.org/en-US/firefox/…
    GIF
  • @excaliburjs
    excalibur.js
    @excaliburjs
    May 8, 2025
    Be sure to check out the Web Game Dev newsletter! We have a lot of stuff on there! * Let's Learn Shaders youtube.com/watch?v=G2tvnm… * Building Games in TypeScript typescript.fm/bonus15 * Happy New Year Excalibur excaliburjs.com/blog/happy-new…
    @webgamedevs
    Web Game Dev
    @webgamedevs
    May 7, 2025
    💌 The Web Game Dev Newsletter Issue 026 is out! Read it online here: webgamedev.com/newsletter/026, and subscribe to get the next ones delivered right to your inbox 🚀 #threejs #r3f #gamedev
  • @excaliburjs
    excalibur.js
    @excaliburjs
    Apr 11, 2025
    If you're in Minneapolis, @kamranicus, @ErikOnarheim and other Excalibur.js team members will be at VGM Con today through Sunday! We've got a booth so come say hi and play some TypeScript games! 🎮 We'll be live game coding all weekend! vgmcon.org #VGMCon