Tessa makes stuff

Tesmaia's blog

Slowvault

One of the big challenges of the current day is avoiding the negative impacts of technology on your mental wellbeing. Many applications are designed, on purpose or by accident, to have addictive qualities. Because of that, it's not just as simple as "just don't use it", or "just use it responsibly". It takes time and discomfort to train your mind into a state of discipline, and when you're addicted, you can't just snap that discipline into existence. Because technology can be used to nudge people into desired behaviors, we can use that to fight addiction rather than cause it. For that purpose, I build a prototype cli application called slowvault. What is slowvault? Slowvault is a boring "password" manager that prevents YOU from accessing your passwords quickly and easily, but still gives you access. It's not meant to be perfectly secure, the only "threat" is your own psyche. You can use this to store passwords used to unlock various other anti-addiction tools (site blockers), delaying your access when you try to unblock things and then making the password available for a limited amount of time. Why a boring CLI? Because it's boring, so you won't want to stare at it as the unlocker counts down. Why a delay? Because you want to have access, if it completely blocks access, the addicted mind will try to find workarounds. Why limited access? So that if you end up distracted while it's counting down (which we want to happen), you'll need to trigger the delay again, so you can get distracted again :) Check it out on my github: https://github.com/tesmaia/slowvault

Like a bee in water, game update and tools

Here is a video of some work in progress of my new game: Like a bee in water (working title)

Another day, another gameplay clip. If I keep this up I will run out of stuff, so need to keep the development going :) #gamedev #indiedev #godot

[image or embed]

— Tesmaia 🏳️‍⚧️ (@tesmaia.bsky.social) December 6, 2024 at 2:19 PM

Here I want to go more in depth on the process of making the game. First of all, this project is going for about a year, on and off (mostly off) development, where I've spent a lot of time iterating on the movement and abilities.

I think there is a pretty good basic moveset now to work with, however there are also some concepts I've not entirely figured out yet. I've run into several issues:

  1. Level design is very hard. The swimmy mechanics means that a lot of standard concepts do not apply, because of that, it's hard to build levels on intuition alone.
  2. Building levels that are not on a grid can be very time-consuming when you have to manually construct the entire layout in detail. This makes it hard to test and iterate on what level design concepts work.

When I began the project, I just roughly sketched some fixed shapes. In order to make things look better, I switched to SmartShape2D. This plugin allows you to create curved terrain, with collision. The user interface, however, is atrocious and it makes it very easy to make destructive mistakes while editing and navigating the extensive resource menu.

Since then I stepped away from it and instead started trying a different kind of level using just Line2D and a script that builds collision for it. That however was not good enough to really build good levels in, I still wanted what SmartShape2D could do, but without the severe issues it has:

Introducing ProceduralPath2D:

ProceduralPath2D is a plugin I'm making that takes a different approach to building optionally curved levels. Using a node derived from Path2D, I created a procedural generation platform that can take in template scenes and wrap the contents around the path.

The concept is very simple: The X axis in the template is ignored, and the Y position determines how far away from a path a node should be wrapped along a path. Scripts can be invoked for each control point to add additional procedural content. With that method I can also randomly place other objects, perfectly snapped along the path.

As work on the game continues, this plugin will also continue to evolve. Once I'm happy about it, I'll release it as open source and try to get it in the asset manager. Also: Check out the devlog for the game

Starting my website

So I started my own website. For now I'm using a very lightweight approach where the site contains no JS. Everything is done with just HTML and CSS, and I'm hosting it as github pages. I'll see if I need something more involved later. To make the process a bit easier on me (just a bit) later I wrote a pattern replacement tool in Go so I can just write these articles in seperate files. I don't really know Go, so that's also so I can learn a bit of a new language :)