propaganda

2025 November Retrospective

I find myself writing this up at the end of the month once more, while getting ready for my usual month long sabbatical. The weeks turned into months, very fast this year, perhaps faster than usual as cliché as might sound. Luckily for you, I decided to leave my more juicy musings about everything that has transpired during the course of this year, for my last retrospective. Very surprising, I know!

Stranger Things

I am more than sure, that you might have guessed the fact that I’m going to have a word or two say about the last season of Stranger Things franchise.

Naturally, I binged the first four episodes in one sitting, as it is customary for any hardened specimen of the homo-netflixoidus hominid sub-species. Is it any good? Well, I am happy to report that it is still very much Stranger Things, for what it’s worth.

Be that as it may, releasing a show in this format, with half of the season coming out in the month of December no less, and then not making it christmas-holiday-themed is a major a blunder in my opinion.

Another thing that has been swirling around in my head for quite some time now, is the fact that Kingdom: Eighties, would have been an absolutely fantastic tie-in for the whole franchise. It got all the ingredients, and replacing the greed with some creatures from the upside down, would have been such a natural fit.

Such a missed opportunity. Oh well!

Black Phone

I really don’t know, how I managed to totally miss the original Black Phone when it initially came out.

Think of it as Freddy Krueger, meeting up with Candyman, and Jason Voorhees among others at a house-party organized by none other than Bughuul. If all that didn’t raise your interest one bit, then I don’t know what else I could possibly say that would.

Stronghold Crusader: DE

I am always amused by how people still don’t seem to get how important it is to make sure that a game is mod-able on release.

Just look at the amount of content the community has conjured up in just a few months after release. There is some sort of a deep lesson in there somewhere, for the people who always seem to cry out in the end: “Mr. President, give us back our 30%! Now!”.

Epic & Unity partnership

If you were sorta-kinda running low on Unity drama, then the Epic & Unity partnership announcement should have replenished your supply to last just a little while longer.

I know that people must be tired of me repeating this ad nauseam at this point, but seriously folks, just roll your own tech. It’s the year 2025 for crying out loud. You don’t need Unity, even if you think you do.

s&box

In a rather unexpected turn of events, s&box became open source this month, and is now available under the very permissive MIT license. This release doesn’t include Source 2 of course, which is the actual engine that powers it all under the hood.

One particular thing that I was curious about, when it came to s&box for the longest time, was the way they implemented their own custom window decorations. I knew that they were using Qt, but I wasn’t sure if they simply went it by using the available controls (widgets), or if they have done it like we used to do it way back in the good old days, by the means of so called owner drawn controls.

sbox

It didn’t take an awfully long time after peeking under the hood in order to discover the absolute truth inside a very aptly named source file called engine/Sandbox.Tools/Qt/Window/TitleBar.cs.

using System;

namespace Editor;

internal class TitleBar : Widget
{
    private Widget Window { get; init; }
    private Button IconWidget { get; set; }
    private Label TitleLabel { get; set; }
    private Widget Grabber { get; set; }
    private WindowControlButton MinimizeButton { get; set; }
    private WindowControlButton MaximizeButton { get; set; }
    private WindowControlButton CloseButton { get; set; }
    public TitleBarButtons TitleBarButtons { get; init; }

    public MenuBar MenuBar { get; private init; }

    private const int IconSize = 18; 

    public Pixmap IconPixmap
    {   
        set 
        {   
            IconWidget.SetIcon( value.Resize( IconSize ) );
            Update();
        }   
    }
    
    // ...
}

These widgets are then explicitly passed back to the so called native frameless main window in C++ land.

internal void SetTitleBarWidgets(Native.CFramelessMainWindow nativeWindow)
{   
	nativeWindow.SetTitleBarWidgets(
		IconWidget._button,
		TitleLabel._label,
		MenuBar._menubar,
		Grabber._widget,
		MinimizeButton._widget,
		MaximizeButton._widget,
		CloseButton._widget
	);  
} 

The grabber is quite an interesting choice of name for a member variable, but this is a safe place where we don’t judge anything or anyone for that matter.

Decima Engine

While we are on the subject of custom title bars, I would be remiss, if I didn’t mention the Decima Engine, which seems to be doing something similar, as you can see for yourself in the screenshot below.

decimaeditor

The only difference here is that it puts the tab bar, rather than the menu bar inline inside the title bar. This makes sense to me, if the menu bar is very context specific, and each tab is almost like a self-contained tool or sub-tool in of itself.

Those who are so inclined, and are interested in the more nitty-gritty details can find a fairly detailed presentation about how the actual user interface is being rendered, and so on.

The G* you leave behind

Another upgrade, yet another awful regression in something that starts with the letter G. What is it, this time around? It’s gdk-pixbuf, thank you very much for asking. It’s so kind, and considerate of you to check in at such a difficult time.

I really need to start the process of de-g-ification soonish, and simply get rid or replace every piece of software that relies on anything that is somehow related to GTK and GNOME.

This is an absolute disgrace, how on earth can you introduce a major regression, and then subsequently refuse to address it for several minor and patch versions? The patients are truly running the asylum now, there’s no going back from here.

Winter OTK Games Expo

Monthly Dad Joke

Q: Why don’t skeletons ever say “May I meet you?”.

A: Because, they are dead-icated to being alone.


2025-11-30  /  retrospective

𝅘𝅥𝅮