Excalibur.js's Avatar

Excalibur.js

@excaliburjs.com.bsky.social

Your friendly TypeScript 2D game engine for the web! ⚔️ https://excaliburjs.com

75 Followers  |  14 Following  |  36 Posts  |  Joined: 05.05.2024  |  1.7968

Latest posts by excaliburjs.com on Bluesky

JavaScript Blazingly FAST! Lessons from a Game Engine - Erik Onarheim - NDC Oslo 2025
YouTube video by NDC Conferences JavaScript Blazingly FAST! Lessons from a Game Engine - Erik Onarheim - NDC Oslo 2025

Checkout my buddy’s NDC talk on how to make JavaScript performant!

This is what powers ExcaliburJS as a game engine.

#gamedev #indiedev

youtu.be/xCB9cB9YZL8?...

06.08.2025 11:50 — 👍 14    🔁 6    💬 0    📌 0
JavaScript Blazingly FAST! Lessons from a Game Engine - Erik Onarheim - NDC Oslo 2025
YouTube video by NDC Conferences JavaScript Blazingly FAST! Lessons from a Game Engine - Erik Onarheim - NDC Oslo 2025

My NDC Oslo talk is live!!! Let's Make JavaScript BLAZINGLY FAST! Lessons from a Game Engine @excaliburjs.com

www.youtube.com/watch?v=xCB9...

#gamedev #javascript #excaliburjs

06.08.2025 13:11 — 👍 9    🔁 3    💬 0    📌 0
Video thumbnail

Fooled around and made a ExcaliburJS level design tool that uses Excel or Google Sheets to design the level, parses it, and automagically creates your tilemap and entities for you in Excalibur!!!!

#gamedev #indiedev
@excaliburjs.com

02.08.2025 00:55 — 👍 14    🔁 5    💬 0    📌 0
Video thumbnail

stylized night sky shader i've been poking at...might be cooking up an actual game project who knows 🙈🫣 #godot #gamedev #indiedev

08.07.2025 06:29 — 👍 60    🔁 10    💬 1    📌 0
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);
```

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); ```

🗺️ New Graph module to do graph data structures and algorithms with built in path finding! Thanks @mookie4242.bsky.social!

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!

27.06.2025 13:39 — 👍 5    🔁 1    💬 0    📌 1
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']
  }
})
```

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'] } }) ```

🧩 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 and a long requested feature!

27.06.2025 13:17 — 👍 2    🔁 1    💬 0    📌 0
Video thumbnail

Another TV is possible.

@blippo.plus is out now on Playdate. Coming this fall to Nintendo Switch & Steam.

blippo.plus

25.06.2025 20:10 — 👍 160    🔁 27    💬 0    📌 3
Video thumbnail

A LEAP OF FAITH — Your Electronic Program Guide summary of what’s on this week, only on Blippo+

20.06.2025 23:42 — 👍 72    🔁 7    💬 1    📌 2
Blippo+ | Color Reveal | Coming Soon to Nintendo Switch & PC!
YouTube video by Panic Blippo+ | Color Reveal | Coming Soon to Nintendo Switch & PC!

We have some friends working on this! Trust me YOU MUST GET Blippo+

www.youtube.com/watch?v=aKTX...

#switch #nintendo

09.06.2025 12:41 — 👍 3    🔁 0    💬 0    📌 0
7 Modern IIFE Tricks You’ll Wish You Knew Sooner
YouTube video by YCMJason Codes 7 Modern IIFE Tricks You’ll Wish You Knew Sooner

IIFE deserves more love! #javascript #typescript

youtu.be/ZyxOt09-LXE

23.05.2025 20:10 — 👍 6    🔁 2    💬 0    📌 0

Big thanks to!

* @adamduehansen.bsky.social
* @scottwestover.dev

03.06.2025 14:36 — 👍 3    🔁 0    💬 0    📌 0
Futurama character, Professor Farnsworth saying "Good news, Everyone!"

Futurama character, Professor Farnsworth saying "Good news, Everyone!"

Good News everyone! A new version Excalibur Dev Tools Extension had been deployed to the Chrome/FF web stores!!!

Release: github.com/excaliburjs/...

Chrome: chromewebstore.google.com/detail/excal...

FF: addons.mozilla.org/en-US/firefo...

03.06.2025 14:35 — 👍 4    🔁 1    💬 1    📌 0
Video thumbnail

Spent a lot of time challenging myself this weekend with some good 'ole procedural generation.

The work from @kenney.nl is truly an inspiration!
www.kenney.nl

His creature and avatar generator tools inspired me to try and see if I can mimic it in ExcaliburJS. @excaliburjs.com

#gamedev #indiedev

18.05.2025 16:29 — 👍 21    🔁 5    💬 0    📌 0
Preview
What's New in Node 24 | Deep Dive | Ep 17B | TypeScript.fm - The Friendly Show for TypeScript Developers | Episode 17 In this week's deep dive, we cover everything TypeScript developers need to know about the latest Node 24 release, including examples of each new language feature. We've even put together a code snippet...

In this week's deep dive, we cover everything TypeScript developers need to know about the latest Node 24 release, including examples of each new language feature. We've even put together a code snippet repo you can check out!

#node #typescript #javascript

15.05.2025 16:31 — 👍 10    🔁 4    💬 2    📌 1
Post image

Results have been released for GameDevJS2025 Game Jam! We finished #68 out of 417 Entries!

Super proud of the game we put forward, and we had a blast doing it! Try it out!

mookie4242.itch.io/gamedevjsjam...

#gamedev #indiedev #gamejam

Thanks to @excaliburjs.com for a great dev experience!

10.05.2025 21:35 — 👍 9    🔁 5    💬 0    📌 0
Newsletter – Issue 026 | Web Game Dev

💌 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

07.05.2025 15:59 — 👍 17    🔁 8    💬 1    📌 0

Be sure to check out the Web Game Dev newsletter! We have a lot of stuff on there!
* Let's Learn Shaders www.youtube.com/watch?v=G2tv...
* Building Games in TypeScript typescript.fm/bonus15
* Happy New Year Excalibur excaliburjs.com/blog/happy-n...

08.05.2025 01:38 — 👍 4    🔁 2    💬 0    📌 0
Castle with the text Excalibur, a friendly open-source TypeScript game engine for the web.

Castle with the text Excalibur, a friendly open-source TypeScript game engine for the web.

Today on the pod, @erikonarheim.com shares how you can build games for the web with TypeScript and the Excalibur.js game engine. What's involved? And how do your webdev skills translate? All this and more in today's deep dive episode!

typescript.fm/bonus15

#typescript

01.05.2025 16:10 — 👍 9    🔁 3    💬 0    📌 0
Preview
Axe and Arrow by Mookie, Drew Conley, Glenn LaBarre Axe and Arrow, a survivor type game that focuses on managing the balance between light and dark!

Just got our submission in for GameDevJS2025 GameJam

We're pretty stoked with how it turned out!

Lemme know your thoughts! Any/all comments left are much appreciated!

@excaliburjs.com

#indiedev #gamedev #gamejam

mookie4242.itch.io/gamedevjsjam...

26.04.2025 17:10 — 👍 5    🔁 2    💬 0    📌 0
Post image

#screenshotsaturday

Just submitted Axe and Arrow for the GameDevJS2025 Jam!

@excaliburjs.com

Feel free to check it out: mookie4242.itch.io/gamedevjsjam...

26.04.2025 17:18 — 👍 3    🔁 3    💬 0    📌 0
Preview
TypeScript.fm - The Friendly Show for TypeScript Developers | Are We Sick of TypeScript.fm Yet? | Retrospective | Ep 14B In this episode, Erik and Kamran have a candid discussion about how the podcast started, how it went, and what the plans are for the future.Chapters(00:00) Introduction(01:18) Is TypeScript.fm Done...

This week on the pod! @erikonarheim.com and @kamranicus.com have a candid discussion about how the podcast started, how it went, and what the plans are for the future. Get a peek behind the curtain with this

typescript.fm/bonus14

#typescript

24.04.2025 20:08 — 👍 5    🔁 3    💬 0    📌 0
Preview
TypeScript.fm - The Friendly Show for TypeScript Developers | Week of April 14, 2025 | News | Ep 14 In the news, TC39 Enums in JS Proposal moves to Stage 1, plus Next.js gets some TS LSP plugin perf/stability improvements.News for April 14, 2025(00:00) Introduction(02:07) News for Week of April 1...

This week we are trying something new! Releasing episodes on days that start with "T", splitting things into 2!

🎉 News on Tuesdays
🔮 Deep Dives on Thursdays

Check out our first news show

typescript.fm/14

#typescript

23.04.2025 14:29 — 👍 4    🔁 2    💬 0    📌 1
Preview
Chickensoft at GodotCon 2025 Our very own Mark Wilson will be representing Chickensoft at GodotCon 2025 in Boston!

Chickensoft administrator @mrkwlsn.bsky.social will be speaking at #GodotCon 2025 on Enjoyable Game Architecture with #godot and #csharp! If you're also attending, stop by and say hi!

#godot #indiedev #gamedev

20.04.2025 16:03 — 👍 28    🔁 9    💬 1    📌 0
Words "TypeScript Types" over the original DOOM video game cover

Words "TypeScript Types" over the original DOOM video game cover

This week on the pod, we talk to Dimitri Mitropoulos (of @michigantypescript.com) about building DOOM in the TypeScript type system. We walk through all the nitty gritty and explore this truly amazing engineering feat! You'll be surprised!

typescript.fm/13

#doom #typescript

16.04.2025 13:28 — 👍 31    🔁 8    💬 1    📌 1
Preview
VGM CON Video Games & Music Convention returns to Minneapolis and online, April 11 – 13, 2025. Bring your controller, instrument, or both.

If you're in Minneapolis, @kamranicus.com, @erikonarheim.com, 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 throughout the weekend at our booth!

vgmcon.org

#VGMCon

11.04.2025 13:36 — 👍 3    🔁 1    💬 0    📌 0
a small scene of a little person standing outside a castle, and with a debug log being printed over the scene

a small scene of a little person standing outside a castle, and with a debug log being printed over the scene

Spent some time playing with touch gesture recognition to have that library under my belt for a game jam coming up!

#gamedev #indiedev

@excaliburjs.com

Got my system recognizing single tap, double taps, tap and hold, touch joystick, and swipe recognition.

11.04.2025 04:58 — 👍 16    🔁 4    💬 0    📌 0
Preview
VGM CON Video Games & Music Convention returns to Minneapolis and online, April 11 – 13, 2025. Bring your controller, instrument, or both.

If you're in Minneapolis, @erikonarheim.com and I and other @excaliburjs.com team members will be at VGM Con today through Sunday! We've got a booth so come say hi and play some TypeScript games! 🎮

vgmcon.org

11.04.2025 13:17 — 👍 2    🔁 2    💬 0    📌 0
Let's Learn Shaders!
YouTube video by Erik Onarheim Let's Learn Shaders!

Have you ever wanted to learn how to program shaders???

Let's Learn Shaders!

youtu.be/G2tvnmSyP2M

#glsl #shader #gpu #gamedev

10.04.2025 16:26 — 👍 8    🔁 4    💬 0    📌 0
Video thumbnail

Messed around today and ported a shockwave post processing shader over to @excaliburjs.com !

#gamedev #indiedev

Special thanks to:
www.youtube.com/@BarneyCodes
for the guidance, great programming tutorials on his site!

06.04.2025 00:15 — 👍 8    🔁 3    💬 0    📌 0

Please send us your feedback for the show! We'd like to talk about it on our retro episode!

feedback@typescript.fm

#typescript

03.04.2025 14:47 — 👍 5    🔁 2    💬 0    📌 0

@excaliburjs.com is following 14 prominent accounts