blogs by Gio

Atom feed dev dev

dev Gio Flavoured Markdown

  • Posted in dev

“How can I show someone how my blog articles actually render?”

It sounds like it should be super easy, but it turns out it really isn’t. I write in Markdown (and attach the source to all my posts if you’re interested) that then gets rendered as HTML on-demand by Pelican. (More on this on the thanks page.) But that means there’s no quick way to demo what any given input will render as: it has to run through the markdown processor every time. Markdown is a fairly standard language, but I have a number of extensions I use – some of which I wrote myself – which means to get an authoritative rendering, it has to actually render.

But I want to be able to demo the full rendered output after all the various markdown extensions process. I want a nice simple way to render snippets and show people how that works, like a live editor does. The CSS is already portable by default, but the markdown rendering is done with python-markdown, which has to run server-side somewhere, so that’s much less portable.

So I spent two evenings and wrote up, which does exactly that. You can view the live source code here if you want to follow along.

dev Positioning things in Ren'py

  • Posted in dev

As is common in Python, the mechanical process of displaying something on screen in Ren’py is at once easy to execute and deceptively complicated to execute correctly.

The Ren’py documentation does a fine job of defining the specifications of position properties, but intuitively understanding how to use those properties can still be hard because it doesn’t include much in the way of examples or elaboration, so here are some of those.

Your basic properties🔗

These names come directly from atl transform on the documentation. Note that these are generally parallel with the style properties of the same names.

dev How we made Befriendus ludicrously accessible

  • Posted in dev

Befriendus; everybody’s favorite visual novel about making alien friends. It’s got trolls, yes, but it also has a slew of accessibility options. You can adjust everything: color, font, motion, even spelling. It’s clean, it’s easy, and it works. Here’s how we did it.

Befriendus in-game menu, with accessibility options

When I was designing the basic accessibility framework I had these principles in mind:

  • Accessible scripts must be easy to write; work should never be duplicated
    • Demanding people write multiple versions of work is bad design and encourages accessibility to eventually be dropped in favour of efficient production
  • Humans should never do postprocessing tasks
    • We’re writing software; a computer should do any and all mechanical work, not writers
  • Accessibility options should have as granular control as possible
    • Whenever possible, players should be able to select exactly what they need, not be forced to use something that doesn’t match their needs.
    • Options should be compatible with each other whenever possible
    • Just pushing out transcripts is not accessible design.

The best way to explain these is probably to explain what we ended up doing, and how each design choice was made carefully in accordance with those principles.

dev Stanley and the Death of Sourcemods

  • Posted in dev

My first published, “successful” piece of game content was The Raphael Parable, a little exploration game about wandering through an impossible office. I say “game content” here because The Raphael Parable isn’t a game per se, but a map. A mod for the Steam release of The Stanley Parable that bootstraps the assets and mechanics to create a totally different game.

A new version of The Stanley Parable is releasing soon: The Stanley Parable: Ultra Deluxe is slated to be a remake with improved graphics, new endings, and console support. When I first saw this, I thought it would be a fun opportunity to go back to The Raphael Parable and tighten up some of the work that didn’t age well (I slapped it together pretty quickly, in hindsight, and it shows in places) as a new mod for the new version of the game.

"I love my car, I just hate my engine" Unity logo mug “I love my car, I just hate my engine”

Unfortunately, I quickly realized this was a non-starter for one simple reason: Unity. Ultra Deluxe is made by crowscrowscrows in Unity, which unfortunately stops this iterative development in its tracks. Let me explain:

The Weird Genealogy of The Raphael Parable🔗

The Stanley Parable itself started as a mod. The original published version is a Half-Life 2 mod from 2011, of which the 2013 Steam release is an HD remix. The Source Engine, which Half-Life 2 is built on, makes it easy to author a set of new maps and release it as a “sourcemod”. Davey Wreden did exactly this to make The Stanley Parable; he took the basic 3D engine and a few generic office-themed assets and made a completely new experience.

dev ACNH Printer - a writeup!

  • Posted in dev

This is a writeup of a project I did in April but never released. Well, I’ve definitely released it now, if you want to give it a try!

Instead of a real introduction, here’s a video demo, with camcorder LP technology from 2005:

I am not going to buy a capture card

Ever since Wild World, Animal Crossing has had a pattern system, where players can design their own textures and use them as clothes or decoration. New Horizons has one, but since it doesn’t have a stylus you have to either use the directional pad to mark individual pixels or draw with your fingertip.

I thought it would be fun to find a way to automate that. Now, granted, it takes a while, but it’s still much faster than trying to copy pixels over by hand.

dev Tabs or Spaces?

  • Posted in dev

“Tabs or spaces” is one of these age-old computer science preference issues (like whether you use Vim or Emacs1) that gives people a binary preference they get to pick and then get very attached to, due more to sunk costs and personal identity than anything else. (Good thing that only happens with unimportant stuff.)

I was thinking about this the other day, and I realized that I have an opinion about this, but it’s actually the opposite of what I do. And it’s not because of filesize, or encoding, or anything like that.