~/.codex/config.toml
model = "gpt-6.1-sol"
model_context_window = 700000
model_auto_compact_token_limit = 6300004,166 karma · joined July 28, 2013
--
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/
~/.codex/config.toml
model = "gpt-6.1-sol"
model_context_window = 700000
model_auto_compact_token_limit = 630000That said, I'm not able to get anything useful done in those hours. The exception is when I swap back to 5.6 Sol/Luna, which seem to be working as they used to.
Mostly, I've just given up and am using Opus 5.5 for all the important tasks now. Which is odd for me say, because I cancelled my Anthropic sub a few months back because I couldn't stand Opus 4.6 < x < 5.5. 5.5 feels great though, like Astra did when it first released.
I don't know what conversation you think you're having here, but it's not that.
If you'd bothered to read... and then ready for it... stop, take a breath, and process the information. You'd have noticed I was pointing out you can use a Quest headset WITHOUT providing them your personal ID OR having a Facebook account. Almost as if, you know, I was highlighting that giving the company your personal info isn't required. Woe me though for pointing that out.
I'm sorry for interrupting the indignant rants. Please continue.
https://breaka.club/blog/why-were-building-clubs-for-kids
Have been running an in-school pilot over the last school term. Has been super insightful and led to a heap of changes to optimize UX. However, the biggest challenge has been delivery in this environment.
Trying to run a game in a browser on school iPads powered by really locked down networks has been challenging. Some school iPads will crash (out of memory) when launching the camera view, whilst others run flawlessly. We use a fork of Godot, and are constantly fighting to strike a balance between UX (increased parallelism) and browser device constraints i.e. a limit on how many web workers we can fit in memory.
In addition to our main (build and play your own RPG) experience, we also stream games direct to iPad. In particular a modded version of Overcooked! 2 that teaches kids to code — Overcooked itself was never even released on iPad. We've built our own Kubernetes system that spins up (a license limited number of) games/pods on demand backed by (time sliced) NVidia GPUs. This is literally running out of my home office. Despite the complexity of building all that, the Kubernetes and GPU time slicing wasn't even the largest hurdle. Turns out UDP is a no-go on the school network, so direct WebRTC was out the window. Instead we're using Cloudflare's TURN relay with TCP. Which much to my surprise, is holding up quite well.
Definitely a learning experience. However, kids are having a blast. Can't wait to roll this out further!
https://www.youtube.com/watch?v=ITWSL5lTLig
The video above shows keyboard, but the main motivation for the key-based navigation was actually gamepad.
https://breaka.club/blog/why-were-building-clubs-for-kids
The primary mechanism through which kids create their game worlds is taking photos of their own hand drawn artwork.
I found traditional game dev tooling was far too technical and verbose for my daughter to stay interested. Honestly, it's not just a matter of her losing interest due to the complexity. Frankly, I don't want her sitting in front of a screen that long. She's a kid and I want her doing typical kid stuff. She and her younger sisters play sports, draw, paint, perform magic shows, and sing and dance around the house like complete nutbags — and I love it!
So whilst what I've built is highly technical for me to maintain, I'm not trying to expose all that complexity to kids. At least, not yet. I'm mostly interested in fueling creativity and letting kids explore. That's not to say kids that want to dive deep can't — we offer visual coding experiences etc. The intent is kids gain access to new features through self directed exploration and play. If some kids stop at just play, that's OK. The primary game mechanics (drawing and building worlds) are still inherently creative.
Although my approach is different, there is a heap in this article I resonant with. The hacking mentality, and letting kids go beyond the artificial constraints in particular. There's still much of Breaka Club that I can improve on. I'm running a limited in-school pilot at present and that's already yielded some really interesting insights. I'm really keen to continue to see what others put out in this space. I think it's drastically underserved and there's plenty of room for multiple approaches.
https://breaka.club/blog/why-were-building-clubs-for-kids
I also attempted to make a game with my eldest daughter initially. Unsurprisingly, she didn't want to sit there watching me code or drag things around in Godot's level editor.
Admittedly, I really need to make a new blog post showing the latest improvements brought about from the in school pilot I'm running weekly at the moment.
We stream OC2[1] with our mod preinstalled over WebRTC. This ensures that kids/schools don't have to try and install the mod. This is particularly important since we support running on school provided hardware. Installing a game without a mod would be hard enough. Added advantage though is kids play with a virtual (on screen) gamepad on iPads in Mobile Safari.
Game instances run in Docker containers in Kubernetes/k3s atop very outdated nVidia hardware. Given we're already going across the Internet into school networks, we've tried very hard to optimize latency across the board. Using NVidia NVEnc with DMABuf (zero copy) etc. We're unfortunately using XWayland at present so experience the documented input overhead. Although our inputs are virtual devices at this point, so the overhead may be a bit different. Trying to optimize this whole thing end to end has been a challenge. I would say that performance is currently "acceptable".
OC2 coding: https://www.youtube.com/watch?v=ITWSL5lTLig (not streamed in this case)
[1] We've bought a limited number of copies of OC2 and pods claim a license on startup. If we're at capacity, kids play something else.
However, as a senior engineer with fairly deep technical knowledge in these areas, I'm now using AI in my own projects. Frankly, before even touching Github, I'm already drowning in code reviews generated by my own use of an LLM!
There are meaningful, generally good PRs waiting for my attention against GodotJS, and other projects I (somewhat) maintain e.g. MoonSharp, C# Lua runtime. It was already extremely difficult to stay on top of PR code reviews for reasonably technical projects. When you're already somewhat burnt out from reviewing LLM code all day, it's so much more exhausting than it used to be.
https://breaka.club/blog/why-were-building-clubs-for-kids
We also teach kids visual scripting in Overcooked 2!, allowing kids to code their way through the levels of an existing much beloved game:
I'm running an in school pilot this week (Lunch time school club).
The tech stack for the main product is honestly pretty intense at this point with full multiplayer support, offline play, transitioning from client authoritative to joining a remote server. Built atop GodotJS, TypeScript bindings for Godot, which I maintain. Huge monorepo with over a million lines (yes, I'm aware that's NOT a good thing), and GodotJS itself is not included in that.
If I'm at the point of contributing a PR to a dependency, I've already identified the root cause in detail. There's no way a change log should be going into that level of detail, or else you're just duplicating the Git log for no reason.
Will the change log make mention of fixing the bug? Perhaps. But I'm going to want to read the technical details of the fix to make sure they've specifically addressed my issue, and not just a similar problem. What is the performance impact of the fix? Are there security implications they've explained in the commit message.
I'm a software engineer, not an end user, I want the technical details of my dependencies.
When I encounter a bug in a dependency of mine. Before I worry about submitting a PR, the very first thing I do is grab my version number and check the commit logs for fixes since my version number.
If I'm trying to decide whether I should bother upgrading, I scan the log for new features.
It's the title, not the details. The commit message body should contain MUCH more detail than the title.
If you don't like it because it looks ugly. Sure, that's subjective. And actually, I agree. Because it's standardized though, Git interfaces could even be configured to trim this off and provide different visual styles for the different kinds of commits. The types could be used as search filters too etc.
Now, I get people don't like the look of them. Neither did I when I first saw them. Then I started using them and found them useful.
It's fine, people have different preferences, it's just a convention and it's not going to work for every project. The article itself just doesn't seem to hold any water.
Why on Earth are people not writing commit messages for their reverts? They should have semantic commit messages just the same as any other commit.
Unless the point is that they're not following per-commit CD, and if you commit then revert that commit before a release was made. That sounds like a process failure. Which of course, process isn't infallible, and neither is the automated version management. If you screw up, use an escape hatch — just like reverting a commit that had previously gone through code review and been merged.
Re: change log generation. The article says change logs shouldn't have commit messages. I agree. Many tools (e.g. Changesets https://github.com/changesets/changesets) use the semantic commit type to sort change log entries, but require you to write those user facing change log entries separately.
EDIT: I didn't see this covered in the article on my first pass. It is covered though. My apologies.
The type of the commit informs the automated workflows how to handle the commit. This is why it comes first.
For example, if you're performing CD, if you only commit a bunch of `fix: ` then only your semantic versioning patch version number is incremented. If you commit a `feat: ` then it's a minor version is bump. `feat! ` is a major version bump.
Even if you're not using CD for releases, semantic commit messages are sometimes used to automate change log generation. Granted, your change logs should not typically include the Git commit messages themselves — those are developer facing, not user facing.
There's certainly always been fantastic software available for Mac. However, it was almost never built by Apple. It sort of felt like someone one day needed a FireWire port, so they bought a Macintosh. Then they must have told a close friend working at Macromedia they needed some software - and it was all just inertia from then on.
Apple make so so much wonderful hardware! They always have. Their software on the other hand is near universally awful. I love my Macbook, but my gosh, I do not love whatever the latest flavour of macOS is that Apple have decided to throw on their update servers this year. It just so happens that I also enjoy Unix, so I spend a lot of my time in a terminal - but Apple don't get to claim credit for that!
EDIT: OK. It just refreshed and is now showing Mac OS X as 36th over all. Crisis of faith averted.
I was able to reverse engineer the PS4 edition of "New Game!: The Challenge Stage", which was never released in English. I've now fully translated it, added proper text wrapping and additional text boxes where text would now overflow. Along the way I've fully decompiled (with byte exact recompilation) the Squirrel scripts for the entire game, built atop the game engine of a now largely defunct game studio. Prior to this I hadn't even heard of Squirrel scripting language. I had most of this done in under 24 hours.
I'm not in any way a part of the visual novel community. I just did this because I enjoyed the New Game! anime way more than a near(?) middle aged man probably ought to.
P.S. My condolences to Yorhel's friends and family.
For those of you who aren't familiar with Eric's work, he's basically the Fabrice Bellard of computer graphics.
Breaka Club is still very early days. Current focus is in person, but the plan is to offer an online club experience also. I'm not quite sure what that will look like just yet. Ideally yes, I'd love to make this available to others.
We're also currently building Breaka Club's own game, which is where the majority of development efforts are focused. However, since we already have the Overcooked coding experience, we haven't prioritized the visual script layer for this game just yet - it's on our roadmap.
Presently, our game is more of a cozy farming RPG / world building sandbox, with a no-code solution for world building:
This is part of a club to teach kids coding, creativity and digital literacy.
Obviously a bit more work. But it'd be pretty neat to have live reactions. "So close!", "Nearly there", "You can do it!", "Perfect" etc.
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:
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
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.