Sign in

Dan Herbert

@danherbert.bsky.social
77 followers 150 following 226 posts

Development and production relating to: web, games, and music. danherbert.io

PostsRepliesMedia
Dan Herbert @danherbert.bsky.social · 07/04/2026
Everything ImGui!
000
Dan Herbert @danherbert.bsky.social · 07/04/2026
A spot of ImGui work in my fork of Nez this morning: - Now supports multiple atlased window renderers - Improved per-renderder ImGui theme setup - Enabled docking in Nez's main ImGui UI #gamedev
172
Dan Herbert @danherbert.bsky.social · 04/04/2026
People have been discovering and honing in on UI/UX patterns for a very long time now. We should be refining and supercharging those patterns rather than making everything a chat interface.
100
Dan Herbert @danherbert.bsky.social · 22/03/2026
Aiming to have things moving and sliding and "typing" all over the place.
000
Dan Herbert @danherbert.bsky.social · 22/03/2026
Haven't had the brain for progressing game mechanics this week. Instead made some big pushes towards the aesthetics I'm aiming for, fog of war with map hints, big revamp of UI systems, post processing, and more... #ScreenshotSaturday
141
Dan Herbert @danherbert.bsky.social · 20/03/2026
It's a bit early for #ScreenshotSaturday, but this image marks a successful (and unexpected) detour for my game UIs. Might write an article... Short version: ImGui windows now render to an atlas & sprites present them. All the standard sprite fun, and fully interactive too!
020
Dan Herbert @danherbert.bsky.social · 04/03/2026
AAA quality right here.
000
Dan Herbert @danherbert.bsky.social · 03/03/2026
Big enough? #gamdev
010
Dan Herbert @danherbert.bsky.social · 14/01/2026
Updated my #gamedev project to render Dear ImGui windows directly into textures which are then displayed via sprites (input is translated+mapped accordingly too). Now I can tint/rotate/skew/scale/more ImGui UIs to make them fit into the vibe I want way more easily.
111
Dan Herbert @danherbert.bsky.social · 23/12/2025
Taking a break from normal dev work for some pre-Christmas gamedev. Super preliminary loadout screen and progress screens well underway, along with the data and internal systems to support those. Specs/modifiers are all defined through editable files which may open the door to some basic mods.
020
Dan Herbert @danherbert.bsky.social · 19/12/2025
Given time + component evolution I almost always find myself wondering why I didn't just write CSS in the first place. This button for example: - size+status -> BEM modifiers - the status colours could be a system reused wherever required - conditional appearance offloaded to client rendering
110
Dan Herbert @danherbert.bsky.social · 16/12/2025
IntelliJ IDE's creating nested paths when you type "/" as part of a folder name was always one of my favourite QOL features. Really pleased to discover it's present in KDE too!
000
Dan Herbert @danherbert.bsky.social · 08/12/2025
When PHP 8.5's pipe operator is more widely available, native syntax will be quite close out the box.
130
Dan Herbert @danherbert.bsky.social · 03/12/2025
Super crude gamedev demo - MIDI files now spec which clips to play, loop/jump points, and other events/data for the game. The game can now interact to musically timed events, and work with loop/jump points to change tension levels with transition periods. Really happy w this!
140
Dan Herbert @danherbert.bsky.social · 25/11/2025
Little bit of gamedev today - started work on the `DynamicSong` system. Each "Song" has 1+ loops defined for levels of tension, + transition loops between the tension levels. Tension increases as players progress the waves. Feed Me is placeholder only- I'll do all the music :)
020
Dan Herbert @danherbert.bsky.social · 21/11/2025
PHP 8.5 is out! Elide's tests are all passing, but that MySQL deprecation (coming from the framework) is triggering some minor OCD feelings. Good to know there are no changes required for the package though!
000
Dan Herbert @danherbert.bsky.social · 19/11/2025
PHP enums are great for consolidating state related behaviour/comparisons you might use many times throughout a project. Simplifies inclusion of new states into existing behaviour too.
010
Dan Herbert @danherbert.bsky.social · 17/11/2025
This (always) sparks joy.
010
Dan Herbert @danherbert.bsky.social · 12/11/2025
Components are composed of "specs" (eg weapon/thrust/shield) which have a "current power level" and "max power level". Each player/enemy has a finite amount of power to allocate to different "specs". The specs use the power level and curves to determine values for behaviour and other systems.
100
Dan Herbert @danherbert.bsky.social · 12/11/2025
Extremely rough #gamedev clip. Doesn't look like much, but it's nice to see systems coming together. All movement (player+enemy speed/accel/decel), weapon firing+spread+cool down, and enemy sequencing is driven by a "power allocation" system. Most things will be based on this.
152
Dan Herbert @danherbert.bsky.social · 09/11/2025
Squeezing in an SSD today. GPU is about as big as everything else combined. A bit tricky for a case this size... 🤦‍♂️
010
Dan Herbert @danherbert.bsky.social · 05/11/2025
My collection of art/sculpture faces grew a lot.
000
Dan Herbert @danherbert.bsky.social · 05/11/2025
MASP (Museum of Art São Paulo) is a very cool building. Lots of great art inside.
100
Dan Herbert @danherbert.bsky.social · 05/11/2025
Itaipu hydro dam is ginormous and very very cool.
100
Dan Herbert @danherbert.bsky.social · 05/11/2025
Toucans are so bright and vivid they look like they're fake until they move. Awesome bird.
100
Dan Herbert @danherbert.bsky.social · 05/11/2025
Foz do Iguaçu (Mouth of Iguaçu) - the falls are insane. Very cool. Loads of wildlife too
100
Dan Herbert @danherbert.bsky.social · 05/11/2025
Our hotel in Iguaçu was surrounded by jungle and nature.
100
Dan Herbert @danherbert.bsky.social · 05/11/2025
Beco do Batman is an area/alley full of street art which regularly changes. Loads of stalls selling little bits and pieces, tasty snacks. Very cool.
100
Dan Herbert @danherbert.bsky.social · 05/11/2025
There's a type of dog in Brazil called "caramelo" - my partner's family has one and she is the happiest dog I've met.
100
Dan Herbert @danherbert.bsky.social · 05/11/2025
There's a chain in Brazil called Outback, and they serve meat. Everything is sort of Aus branded/worded. They have "Aussie bread", but after seeing/tasting I'm not sure how it's Aussie...
100
Dan Herbert @danherbert.bsky.social · 31/10/2025
11 pages of game dev notes/design on this holiday so far. Avoided this and work thinking at first, until the brain got too itchy (aka bored). Pretty set to get cracking as soon as I get back home.
000
Dan Herbert @danherbert.bsky.social · 29/10/2025
Game design doc and sketches after a few days stewing on an idea. Gotta have juice!
000
Dan Herbert @danherbert.bsky.social · 19/10/2025
On Sundays, Avenida Paulista in São Paulo is closed to traffic - food/craft stalls fill the streets, bands play music, and McDonald's has a street facing DJ booth pumping out the beats while people dance in the street.
A photo of McDonald's in Brasil, Avenida Paulista
000
Dan Herbert @danherbert.bsky.social · 26/09/2025
Laravel's LazyCollections + PHP's first class callables and generators is **chefs kiss**
010
Dan Herbert @danherbert.bsky.social · 01/09/2025
First day back on the bar in 10+ years. Didn't realise how much I missed it...
A photo of a barbell with a 5kg plate, set in a squat rack
020
Dan Herbert @danherbert.bsky.social · 14/08/2025
Why does *everything* have to have AI or AI related stuff bundled in? Where are the opt in/out options so folks can choose?
000
Dan Herbert @danherbert.bsky.social · 25/07/2025
Media controls with Google Maps Navigation are officially gone now - all I wanted is a "skip track" button. So in the spirit of "you can just do things", I made a skip track button which can be dragged anywhere on the screen. Problem solved in about 30 minutes.
000
Dan Herbert @danherbert.bsky.social · 09/07/2025
*feels good meme*
000
Dan Herbert @danherbert.bsky.social · 26/06/2025
Any guesses as to when I started working for myself?
010
Dan Herbert @danherbert.bsky.social · 13/06/2025
I understand why this is necessary, though it feels so dirty every time I have to do it... 🫠
010
Dan Herbert @danherbert.bsky.social · 05/06/2025
In PHP, `glob(...)` might be one of my favourite functions which I almost always forget about. Outrageously simple way to find files on the filesystem.
000
Dan Herbert @danherbert.bsky.social · 24/04/2025
Coming up with an SQL only approach for event recurrences (not materialised!) has been one of the most fun programming tasks I've had in a fair while. Paired with #Laravel collections/relations it'll be trivial to queue/list actions for schedules.
020
Dan Herbert @danherbert.bsky.social · 11/04/2025
Refactoring by Martin Fowler was a pivotal book for my programming skills and early learnings - bought this at (I think) Borders in Rundle Mall after perusing an expansive bookshelf full of programming and engineering books.
020
Dan Herbert @danherbert.bsky.social · 04/04/2025
When Garmin tells you your condition isn't good it's because it's actually a drill sergeant and knows you can do it with a little push 🤪
010
Dan Herbert @danherbert.bsky.social · 02/04/2025
One of the little gotchas with the HTML `popover` attribute is that everything else in the page is still clickable, even with a `:backdrop`. Potential for users to click on other things when trying to dismiss. Easily solvable thanks to `:has()`, and still zero JS
110
Dan Herbert @danherbert.bsky.social · 28/03/2025
Then `->check()` or `->authorize()` directly from the `Permission` enum case directly (a light wrapper to the `Gate` facade) Allows me to easily check the permission (via assigned roles) against the user pivot(s), working up from team->organisation->user for role checks to determine the result.
000
Dan Herbert @danherbert.bsky.social · 20/03/2025
Also have `->valid($rules)` macro for laziness/convenience
020
Dan Herbert @danherbert.bsky.social · 20/03/2025
Working with arbitrary data which will end up in models for a range of different scenarios - came up with a couple `Collection` macros to help ensure that only valid data ends up in the models. Initially did this to help streamline partial model updates, but will be handy with CSV imports/etc also.
220
Dan Herbert @danherbert.bsky.social · 08/03/2025
Trying to take photos of kangaroos with my phone aiming through a pair of binoculars - worked better than I expected it to
020
Dan Herbert @danherbert.bsky.social · 05/03/2025
I do that too! If its responses weren't so polite/human it might be easier to be more direct/terse with it. In any case, I'm sure Skynet will remember this and treat us accordingly when the time comes.
Image showing the logo of the fictitious Skynet
110