HNHacker News
TopNewBestAskShowJobs

Benjamin_Dobell

4,167 karma · joined July 28, 2013

https://github.com/Benjamin-Dobell/

--

Building something in the education space for kids: https://breaka.club

Also:

Consultant @ Berserk Games - https://tabletopsimulator.com/

--

Formerly:

Head of Engineering @ Ender - https://joinender.com/

Head of Engineering @ Prequel - https://www.joinprequel.com/

CTO @ Kangaroo Interactive

CTO @ Snaploader (acquired by Archistar) - https://www.archistar.ai/

Director @ Glass Echidna - https://glassechidna.com.au/

submissionscomments
Benjamin_Dobell··on Ask HN: What Are You Working On? (March 2026)
Continuing to make fantastic progress on Breaka Club, where we teach kids to code, be creative and make games:

https://breaka.club/blog/why-were-building-clubs-for-kids

The recent Netflix Games edition of Overcooked with K-Pop Demon Hunters is cool, but not nearly as cool as kids coding and playing their way through Overcooked levels in our custom educational mod for Overcooked:

https://youtu.be/ITWSL5lTLig

I'm also maintaining GodotJS, strongly typed TypeScript bindings for Godot, which is used to build the Breaka Club RPG (see first link):

https://github.com/godotjs/GodotJS

And last week I also put together the first release of MoonSharp in ~10 years; Lua runtime for Unity. That's not for Breaka Club though, I also consult for Berserk Games on Tabletop Simulator:

https://github.com/moonsharp-devs/moonsharp/releases

Benjamin_Dobell··on Show HN: Moongate – Ultima Online server emulator in .NET 10 with Lua scripting
Somewhat coincidentally, MoonSharp (the scripting engine Moongate based their Lua runtime on) is alive and kicking again. There hasn't been a release in ~10 years, but I published a beta for v3.0.0 a few days ago.

https://github.com/moonsharp-devs/moonsharp/releases

I'm not the creator of MoonSharp, just a maintainer on Github (who has honestly done very little). However, I consult for Berserk Games, and we have use MoonSharp as the scripting runtime for Tabletop Simulator.

Benjamin_Dobell··on Adventure Game Studio: OSS software for creating adventure games
I'm building a modern platform for kids to hand draw their own games: https://breaka.club/blog/why-were-building-clubs-for-kids

Currently supports RPG mechanics, with digital card game support coming soon. Plan is to keep expanding what's offered.

Bits and pieces are already open source with more to come: https://github.com/BreakaClub and https://github.com/godotjs/godotjs/

Benjamin_Dobell··on Ask HN: What Are You Working On? (December 2025)
* Continuing development on Breaka Club (https://breaka.club/blog/why-were-building-clubs-for-kids) — Turning kids from consumers into creators.

* GodotJS — https://github.com/godotjs/GodotJS — TypeScript for Godot

* Consulting for companies using GodotJS (and Unity).

Benjamin_Dobell··on Meta Segment Anything Model 3
I'm far from an expert in this area. I've also tried Bria RMBG 1.4, Bria RMBG 2.0, older BiRefNet versions, and I think another I forgot the name of. The fact I'm removing backgrounds that are predominantly white (a sheet of paper) in first place probably changes things significantly. So it's hard to extrapolate my results to general background removal.

BiRefNet 2 seems to do a much better job of correctly removing backgrounds in between the contents outline. So like hands on hips, that region that's fully enclosed but you want removed. It's not just that though, some other models will remove this, but they'll be overly aggressive and remove white areas where kids haven't coloured in perfectly — or like the intentionally left blank whites of eyes for example.

I'm putting these images in a game world once they're cut out, so if things are too transparent, they look very odd.

Benjamin_Dobell··on Meta Segment Anything Model 3
For background removal (at least my niche use case of background removal of kids drawings — https://breaka.club/blog/why-were-building-clubs-for-kids) I think birefnet v2 is still working slightly better.

SAM3 seems to less precisely trace the images — it'll discard kids drawing out the lines a bit, which is okay, but then it also seems to struggle around sharp corners and includes a bit of the white page that I'd like cut out.

Of course, SAM3 is significantly more powerful in that it does much more than simply cut out images. It seems to be able to identify what these kids' drawings represent. That's very impressive, AI models are typically trained on photos and adult illustrations — they struggle with children's drawings. So I could perhaps still use this for identifying content, giving kids more freedom to draw what they like, but then unprompted attach appropriate behavior to their drawings in-game.

Benjamin_Dobell··on V8 Garbage Collector
Not really. I've written a bunch of code to try maintain the limited support for it that already exists in GodotJS, but I've never really tried it. Main reason I haven't is I'm dependent on Web Worker(-like) APIs in GodotJS, and they're currently missing for JavaScript Core. But since I actually wrote some of those APIs, that's not really an excuse, I can port them easily enough.

So, yeah, I should really give it a shot. Thanks for the reminder.

Benjamin_Dobell··on V8 Garbage Collector
I've recently become the maintainer of https://github.com/godotjs/GodotJS (TypeScript bindings + JS runtime for Godot). GodotJS supports numerous runtimes, but V8 is the most well supported. Unfortunately, I have been noticing V8's GC a bit more than I would like recently.

Don't get me wrong, I'm aware V8 wasn't designed with games in mind. QuickJS (which is also supported by GodotJS) is probably the safer bet. Or you know, not JavaScript at all. However, I'm building tooling specifically for kids to make games, and TypeScript is leagues ahead in terms of usability:

https://breaka.club/blog/why-were-building-clubs-for-kids

Before I make the swap to QuickJS out of necessity, I was hoping to try my hand at tuning V8's GC for my use case. I wasn't expecting this to be easy, but the article doesn't exactly instill me with confidence:

> Simply tuning the system appears to involve a dose of science, a dose of flailing around and trying things, and a whole cauldron of witchcraft. There appears to be one person whose full-time job it is to implement and monitor metrics on V8 memory performance and implement appropriate tweaks. Good grief!

If anyone reading this has experience with tuning V8's GC to minimize stop-the-world GC duration (at the cost of overall memory use, or runtime performance etc.) I'd greatly appreciate any advice that can be offered.

Benjamin_Dobell··on Hack Club: A story in three acts (a.k.a., the shit sandwich)
Look. This isn't on the front page of HN anymore. So I'm mostly writing this to you. You've work to do on your communication. This style of communication probably works just fine with teenagers, but it's not going to hold up to scrutiny with adults.

> The crux of the question here was about whether GDPR obligates us to email all 5,000 people signed up for this program about this vulnerability.

You are just not going to be able to control the narrative like this. Trying to tell someone else what the "crux of the issue is" will not allow you to shift the goal posts. The article described a pattern of issues, and in my previous comment I specifically raised one. No determined individual is going to just leave that thread dangling for you.

> Is there something else we should be doing?

Yes. Obviously. That's the point.

> The crux of the question here was about whether GDPR obligates us to email all 5,000 people signed up for this program about this vulnerability. The two lawyers we have consulted on this have both said no. One of them specifically specializes in privacy compliance.

It's not a great look for the leader of a children's organization to so blatantly flout that they lack a moral compass. You're currently interacting with the public, not the legal system. Sure, whether or not you're legally required to inform your kids is relevant. However, the law is quite literally the bare minimum of what you're obligated to do.

No-ones reading this thinking. "Oh great, they've done the bare minimum legally required of them." They're thinking, "Wait. Companies notify people of breaches all the time. You apologise, and explain what you're doing to rectify the situation. What have they got to hide? Are they worried they'll get an influx of outrage because this lack of care was something people in the community were already concerned about?" With the context given from the odd parent in this thread, it certainly comes across as the latter.

> It's not a complicated legal question, the answer is just no.

This detracts so much credibility from your communication. There is no lawyer on Earth that will describe this as "not a complicated legal question". No adult that's ever had any communication with a lawyer is going to believe this for a second. Lawyers are notorious for their non-committal attitude toward providing legal advice. Nothing is black and white — it's all grey. So this comes across as:

a. You've never interacted with a lawyer in your life. Or, b. You're telling porkies, or at the very least, are way too flippant with hyperbole.

Benjamin_Dobell··on Hack Club: A story in three acts (a.k.a., the shit sandwich)
It most certainly was. You have someone outside your organization who accessed the data, and you know about it. Here's what you just wrote about the person who accessed this endpoint:

> - The author was ultimately banned from the community not for their opinions on this matter, but because of a long streak of unrelated conduct issues that culminated in a spree of saying horribly abusive things to multiple other members of the community.

> — They have been pursuing a grudge against the organization ever since. They are not a reliable narrator, this post is a fantasy version of events that casts them as a martyred hero.

Someone who has been acting maliciously against your organization accessed that data. And you think it's fine? They're a teenager. An angry teenager, who is acting out. You honestly believe you can trust they didn't distribute this data or tell anyone else about the problem before you found out about it?

When I was a teenager, someone in my year level gained access to a lot of personal data about a bunch of people in our year level. This was a smart individual who at least somewhat understood the gravity of the situation. But they were also a kid, of course they distributed some of the data — bragging rights and what not.

What about the section titled "the surveillance infrastructure (orpheus engine)" where the teenager claims children's data was intentionally being sent out to third parties, specifically to profile kids? What's that all about?

Look, no-one read this article and thought "Wow, this is well written article by a super mature well-adjusted individual. I'm taking this as gospel." The article is clearly written by an angry teenager. I feel far more invested in this now that I've seen your responses. The way you're handling this, and yourself, is just downright absurd. Stop.

Benjamin_Dobell··on Hack Club: A story in three acts (a.k.a., the shit sandwich)
So the junior engineer who couldn't secure an endpoint implemented thorough request logging and auditing? Impressive.
Benjamin_Dobell··on Hack Club: A story in three acts (a.k.a., the shit sandwich)
I'm not going to pretend this is an easy read. So I wouldn't blame you if you stopped early. However, there's a section titled "the surveillance infrastructure (orpheus engine)" which claims that children's private information is being distributed to third-parties without consent.
Benjamin_Dobell··on Hack Club: A story in three acts (a.k.a., the shit sandwich)
If they're ignoring GDPR because they're in the US, you can potentially flag these as COPPA violations. COPPA is serious stuff. Courts can fine over $50k for each violation, where each individual impacted can be considered a unique violation. COPPA applies to under 13s, I'm not sure if there are age restrictions in place to join Hack Club, but if there isn't even a privacy policy, I doubt age restrictions are properly enforced.
Benjamin_Dobell··on My dad could still be alive, but he's not
Melbourne is one of the largest cities in the world by urban sprawl. It is very spread out. I live 85 km from Melbourne CBD, and am officially still considered part of Melbourne. Well, there isn't an "official" boundary per se. My council is considered a council of Melbourne, but I'm also the last suburb in this direction. (Yes, Melbourne's Covid lockdowns applied to us.)

When my wife and I ended up delivering my youngest daughter at home. (Because they'd sent us away from hospital 30 minutes earlier). I think the ambulance must have taken around 10-15 minutes to arrive. Granted, I don't have a great memory of it, lots of Adrenalin, a bit of a blur. They arrived in time to cut the cord. Fortunately, the phone dispatcher stayed on the line and provided me with instructions the entire time.

Just to clarify, I think the dispatch time was reasonable, I'm not at all upset with the ambulance service. The hospital — different story.

P.S. My daughter is 2 now. 100% fine, fortunately.

Benjamin_Dobell··on High-performance 2D graphics rendering on the CPU using sparse strips [pdf]
Admittedly I won't have time to go through the code. However, a quick look at the thesis, there's a section on multi-threading.

Whilst it's still very possible this was a simple mistake, an alternate explanation could be that each strip is allocated to a unique cache line. On modern x86_64 systems, a cache line is 64 bytes. If the renderer is attempting to mitigate false sharing, then it may be allocating each strip in its own cache line, instead of contiguously in memory.

Benjamin_Dobell··on Show HN: What Is Hacker News Working On?
What's the default sorting algorithm?

I just posted recently in the thread so would have expected to see my post somewhere on this site near the front page. Granted, I guess HN already has a new/hot algorithm, so perhaps you didn't want to reinvent the wheel and instead focus on search.

Benjamin_Dobell··on Ask HN: What Are You Working On? (Nov 2025)
I've actually just recently been through this myself. I'm also building something for kids to build games in. But much more opinionated than Easel. It's interesting to me that Easel looks declarative but is imperative.

I've actually gone with a 100% declarative approach. Basically you define effects, which are executed in response to certain interactions. There's a comprehensive targeting system. But the best part is this is all type-safe using TypeScript, the declarative structure is enforced. That means even when you chain effects, nested effects are able to access (incl. autocomplete) the targets of parent effects etc. Whilst this provides a super nice experience to consume, it's definitely non-trivial to build this system.

https://breaka.club/blog/why-were-building-clubs-for-kids

Benjamin_Dobell··on Ask HN: What Are You Working On? (Nov 2025)
Creativity and game development clubs for kids:

https://breaka.club/blog/why-were-building-clubs-for-kids

Basically, I'm building tooling and providing these to community run clubs that help turn kids from consumers into creators. I'm focusing on game development initially, but have plans to expand into other areas of creativity.

We're using Godot + GodotJS (which I'm a maintainer of): https://breaka.club/blog/godots-most-powerful-scripting-lang...

I've much experience building software for creators. I'm a (core) developer of Tabletop Simulator. I worked at a now defunct startup which allowed people to create and distribute their own interactive fiction stories using partner third-party IPs.

I have a background in EdTech. I used to be Head of Engineering at Ender, where we ran custom Minecraft servers for kids: https://joinender.com/ and prior to that I was Head of Engineering at Prequel / Beta Camp, where we ran courses that helped teenagers learn about entrepreneurship: https://www.beta.camp/. During peak COVID I also ran a social emotion development book subscription service with my wife, a primary school teacher.

Benjamin_Dobell··on Starting game development in JavaScript with no experience
I've been working on improving Godot's TypeScript development experience:

https://breaka.club/blog/godots-most-powerful-scripting-lang...

I've got a HEAP of stuff I still need to upstream

https://github.com/godotjs/GodotJS/compare/main...Benjamin-D...

Benjamin_Dobell··on Testing a Robust Netcode with Godot
It may not be official, but TypeScript support is pretty wonderful: https://breaka.club/blog/godots-most-powerful-scripting-lang... :)
Benjamin_Dobell··on Firefox OS's story from a Mozilla insider not working on the project (2024)
This takes me back. Whilst I was studying at university, I developed Heimdall, open source firmware flashing software for Samsung Android phones. I don't know that it was ever official, but I remember being pretty stoked when I realised some Mozilla employees were using Heimdall to flash Firefox OS onto Samsung devices: https://developer.mozilla.org.cach3.com/my/docs/Mozilla/B2G_...
Benjamin_Dobell··on Ask HN: What are you working on? (May 2025)
I'm working on tooling to turn kids from consumers into creators. I'm focusing on game development initially, but have plans for video production and hands on crafts.

For older kids I've been making it easier to write games in Godot using TypeScript:

https://breaka.club/blog/godots-most-powerful-scripting-lang...

I'm building tooling using this technology which allows kids to create their own games, this is itself presented as a game kids can play through. Basically, imagine if Roblox actually delivered on its promises to kids.

Most of what we're building will be open sourced, so that older kids / young adults will be able export their projects and share their creations stand-alone.

Of course, telling kids they can create their own game is only relevant is kids want to do that. We're not locked into one way of thinking. We've also modified Overcooked 2, a traditionally co-op game and introduced a visual scripting platform which allows kids to code their way through levels:

https://www.youtube.com/watch?v=ackD3G_D2Hc

Overcooked 2 won't be the only game for which we do this. Introducing coding to existing games is a fun way to teach kids to code, without yet burdening kids with too much creative freedom. Kids already want to play these games, so this approach allows us to bring educational tooling to kids rather than vice versa.

I used to be Head of Engineering at Ender, where we ran custom Minecraft servers for kids: https://joinender.com/ and prior to that I was Head of Engineering at Prequel / Beta Camp, where we ran courses that helped teenagers learn about entrepreneurship: https://www.beta.camp/. During peak COVID I also ran a social emotion development book subscription service with my wife, a primary school teacher.

Benjamin_Dobell··on Teal – A statically-typed dialect of Lua
You can get pretty far by bolting annotations onto Lua (no compilation step), for example using my IDE:

https://github.com/Benjamin-Dobell/IntelliJ-Luanalysis

Admittedly, I've been focused on some other things recently, but still with some focus on type safety e.g. https://breaka.club/blog/godots-most-powerful-scripting-lang...

Benjamin_Dobell··on $20K Bounty Offered for Optimizing Rust Code in Rav1d AV1 Decoder
> especially for something like a video codec

Why especially video decoders?

> I wonder if they really care or if this is one of those "we don't want to use Rust because of silly reasons and here's are reasonable-sounding but actually irrelevant technical justification"...

I would have thought video decoders are specifically one of the few cases where performance really is important enough to trump language guaranteed security. They're widely deployed, and need to work in a variety of environments; everything from low power mobile devices to high-throughput cloud infrastructure. They also need to be low latency for live broadcast/streaming.

That's not to say security isn't a concern. It absolutely is, especially given the wide variety of deployment targets. However, video decoders aren't something that necessarily need to continually evolve over time. If you prioritize secure coding practices and pair that with some formal/static analysis, then you ought to be able to squeeze out more performance than Rust. For example, Rust may be inserting bounds checks on repeated access — where as a C program could potentially validate this sort of information just the once up front and pass the "pre-validated" data structure around (maybe even across threads) "knowing" that it's valid data. Yes, there's a security risk involved, but it may be worth it.

Benjamin_Dobell··on Wise refuses to let us access our $60k AUD
I haven't been locked out (yet?). However, my account situation with Wise is similar i.e. I'm Australian and have been a customer since they were known as TransferWise. My documentation for UBOs is currently under review right now.

Hopefully I don't get locked out as well!

EDIT: Oh, I actually know who you are, Paris. I don't really have any industry connections these days, but I remember you from various conferences back when I was doing iOS development, maybe 2011-2015. "Hey, Wise! I can vouch for this guy!" Haha, doubt that's gonna hold up.

Benjamin_Dobell··on Web .NET Prototype – Godot Engine
This is amazing. I've been casually keeping an eye on Godot .NET web support updates for years. I remember seeing a huge list of blockers at one point, not just in Godot, but across .NET and related repositories. It's fantastic to see this come to fruition. Great job to all involved!

I just recently invested a decent amount of effort into (what I think is) a really slick TypeScript integration with Godot:

https://breaka.club/blog/godots-most-powerful-scripting-lang....

I'm actually incredibly happy with how the TypeScript integration is turning out, and I believe it goes beyond what C# (or any other language integration) has been able to achieve, thanks to TypeScript's incredibly robust type system. That said, I also do some professional C# Unity development and know the C# community has been dying for web support in Godot. So I'm really glad to see this materialize.

Benjamin_Dobell··on Ask HN: What are you working on? (March 2025)
Yes, absolutely, but we're talking about teenagers. I've no doubt they're capable of learning multiple languages. But teenagers are most constrained by the limited time they have available for extra curricular activities. If I was to teach interested kids a second language (and I'd like to), then it would probably be lower level so kids can learn about memory management etc.
Benjamin_Dobell··on Ask HN: What are you working on? (March 2025)
Interesting. Sounds like a similar premise to Supabase Realtime. I'll keep an eye out.
Benjamin_Dobell··on Ask HN: What are you working on? (March 2025)
Watch out for DMCAs. They're, ah, not very fond of third-party development.

Best wishes,

The former developer of Bizarre Insights

https://www.youtube.com/watch?v=i2yQXDFVRPQ

Benjamin_Dobell··on Ask HN: What are you working on? (March 2025)
I'm working on tooling to turn kids from consumers into creators. I'm focusing on game development initially, but have plans for video production and hands on crafts.

For younger kids I've modified Overcooked 2, a traditionally co-op game. I've replaced the second player with a visual scripting platform that allows kids to code their way through levels — worth noting I haven't removed co-op, there's still room for 2 other players:

https://www.youtube.com/watch?v=ackD3G_D2Hc

For older kids I've been making contributions to GodotJS, which allows you to build games in Godot using TypeScript rather than GDScript. GDScript is pretty nice, but I want to be able to teach kids skills that are more directly transferable to different domains e.g. web development:

https://github.com/godotjs/GodotJS/pull/65

I used to be Head of Engineering at Ender, where we ran custom Minecraft servers for kids: https://joinender.com/ and prior to that I was Head of Engineering at Prequel / Beta Camp, where we ran courses that helped teenagers learn about entrepreneurship: https://www.beta.camp/. During peak COVID I also ran a social emotion development book subscription service with my wife, a primary school teacher.

← PreviousPage 2 of 24Next →