Tuesday, October 6, 2026

Devlog 23: Getting back to it.

Well, Nighthawks has been out for a bit, people like it (thank you so much!) and progress on Gilt has resumed. I got enough of the first chunk of the next chapter reworked in order to let a few people play it last week, and the response was good! Except for Thomas Regin, my wonderful composer for the game, who took a break from microdosing eternal damnation* to play Gilt with a trackpad and therefore had trouble with it.

Friends, family, enemies, skeptics, etc - please do not play Gilt with a trackpad, gamepad, trackball, joystick, kinect or whatever other thing you have. It's 100% designed to be a point and click adventure, played with a mouse and honestly even a keyboard. I might even put "a computer mouse" as the only system requirements other than, you know, having a system, because otherwise Gilt will basically run on any PC you can read this blog post on. Yes, I know, I am 15 years out of date and people want modern controls I don't care I am doing a thing and please play my game with a mouse or find something else to play. You wouldn't play an RTS with a trackpad. You wouldn't play Quake with a trackpad. I am going to buy Thomas a mouse that he can take with his laptop.

On the programming front, I have encountered my greatest enemy of all: myself from the past. I cannot explain to you the atrocious, imbecilic bugs I have found of my own making. I am slowly fixing them all, and also fixing some of the more elusive bugs. One issue I was having with a visual effect was a lag of one frame when a character had their coordinates changed manually - which was particularly weird, because it didn't seem to affect the character when they were walking or animating. During a particularly long drive to a particularly distant guitar playing and singing gig, trying to come up with a solution or workaround to this, I realised that I was adjusting the character's coordinates in the late_repeatedly_execute() function of a room script. It turns out that this executes after the late_repeatedly_execcute() functions of any other scripts. So I called this visual effect from the bottom of the room script's repeatedly_execute_always() function and suddenly it just worked properly. Relief!


I've also been building simple reference functions for myself more and more. One thing I do a fair bit in Gilt is measure distances, and I got to the point where I realised I was doing this manually every time when using a computer whose entire purpose is doing calculations, and so I wrote the little helper function above. My maths teacher Mr. Ford's voice popped into my head explaining that I'll get better at maths if I do the work myself, rather than programming my Ti-83 to perform all the functions I needed in TI-Basic, but I'm not 14 anymore Mr. Ford and I promise I will not forget how to find the length of a hypotenuse at this point in my life.

Graphics talk time! Today I was implementing a particular character's scene, and doing the relevant animations, and I came across the old versions of his sprite while diving into his directory, so I thought it might be interesting to share the evolution of his design:


Kazimir has only a small role, but it's an important one, and an essential part of his character design is that his electrically powered prosthetic arm be obvious and quite a defining part of his character. I started out with a fairly plain design - it's fine, although his stance is a little stiff, and his arm looks very plain. The next version I tried focusing on his arm, making it more obvious, interesting, and 'designed'. I still felt that the silhouette and the colour contrast of his arm was a little flat, so version three worked on that a little, tried giving him a bit more character in the face, a bit more of an interesting silhouette around the knees of his trousers. Finally version 4 has me leaning into his broad body type with a wider stance, a greater focus on making his silhouette interesting rather than relying on the hand on the hip pose. Finally this character feels how I want it to - he feels solid, his feet feel quite convincingly planted, and he's immediately recognisable.

Of course, this style of character design doesn't work for a lot of projects and tones. Happily, this is exactly the tone I'm looking to establish in Gilt!

Writing the game is hard. I have so, so many ideas, and I write way, way too much. I have already cut so much in the last few weeks, trying to hone everything down to its leanest form while still conveying everything (unlike this blog post). Did I have an idea so good last week that I had to make a fourth font for the game? Yes. Can the idea *really* be that good, Ben? Are you attempting to do a character study moment using fonts? YES.

So, progress is good! I am still super busy in all things, but once again one of those things is Gilt, once more. I designed some gameplay that I think will be so fun last week, so I'm really looking forward to putting that into the game in place of the really intricate and quite clever puzzle that is getting cut because it's tedious to solve, poorly communicated and doesn't fit the tone in that part of the narrative. Will I keep the puzzle? Maybe, but it would need some serious reworking. The code took quite a while to get right - but I will not hold myself captive to a puzzle I don't believe in, even if it's 'clever' in concept. No compromises, I want Gilt to represent my vision fully!

(You'll never see this puzzle in the game, but don't worry, I've solved it enough times to know it's tedious and tonally wrong, you're not missing much.)

Thanks for your continued interest in the project! <3

*reading each and every review and comment for Nighthawks as though it's going to improve his self-esteem and not send him spiraling into a pit of despair

No comments: