Everything tagged with 'dev'

Note

Having to use Perforce is a form of slow torture. Who invented this? What’s their address? Just wanna talk

Photo

Some morning game dev with my helper

A tuxedo cat sitting with her front paws on the keyboard of an open laptop.
Note

We fixed this in Bridgy yesterday. Here’s the PR, if helpful: https://github.com/snarfed/granary/pull/844

If you click through the linked issues you’ll see discussion on the Bluesky side. They might be able to retroactively fix existing images, but unsure

Note

A PSA: Bluesky changed their API recently so that image uploads need to include their aspect ratio, otherwise they’ll appear letterboxed (like the first image). If you use a third-party tool it’ll need updated.

An image of a Bluesky post featuring a picture of a cat. The image is letterboxed within a square frame. The same image, but now the frame matches its size.
Note

Baffled by how difficult it is to render a rectangle outline using a shader without pixel alignment going all wonky. GPUs were a mistake

Note

Trying to get an animation framework in place for Game 2 and struggling - some animations can happen in parallel while some need to effectively pause state updates and structuring this in a neat way is proving tricky. Feud’s wee state machine won’t cut it.

Note

I use harfbuzz for layout, which uses Freetype metrics, so the hard thing was getting those to line up with the glyph metrics emitted by MSDFgen.

Note

Finally got my engine’s distance field font rendering (top) looking PRETTY MUCH as good as bitmap fonts (bottom). Already starting to think about what it might look like to move away from atlases altogether and just rasterise glyph vectors on the GPU…

Two pieces of text saying 'Hello this is some example text in Growl. It's got newlines and everything'.
Note
Some guidance from the android docs saying ‘develop the rest of your application’ Draw the rest of the fucking owl
Note

Playing Metaphor: ReFantazio which has some of the most stunning UI work I’ve ever seen. Meanwhile I can’t get the text boxes to reflow properly in my own game engine.

Note

Got my layout being actually flexible now with preferred dimensions, expand, and fill. Alignment next. Loosely basing it on GTK because I like using GTK!

A screenshot of Growl showing coloured rectangles in a variety of dimensions.
Note

Starting to get the flexible layout stuff implemented in Growl, my pet game engine. Very early days yet!

A screenshot of Growl showing lots of coloured rectangles in a flexible layout.
Note

Chuckling at this from the new Steam update.

Q. Why is LinkedIn on the list of social media links? A. We are also confused by the presence of LinkedIn in this list of links we found on game store pages. But the data don't lie: developers are already referencing LinkedIn from their written descriptions, so we've included it as an option.
Post
· On not taking it personally
How do we navigate caring about our work when that work is, by nature, disposable?
Post
· IndieWeb, 2024 edition

I’ve been running this website on IndieWeb principles and tech for over a year now, so I thought it was time for an updated edition.

Note

Finally got around to reconfiguring the debug UI in Growl, rendering the game scene into an Imgui window - starting to look like a real engine now.

A screenshot of Growl showing its fancy new debug UI.
Note

Just got myself unstuck from a tricky Lua-C interop thing that I’d been going round in circles on for weeks now. Pleased!

Note

Can anyone recommend a Google Analytics alternative that isn’t a privacy nightmare for a personal website?

Note

Been playing with shader support in Growl - shaders can now be edited in realtime, and have built in uniforms like resolution and time. Goal is to be able to paste in whatever from Shadertoy and have it work!

A funky shader running in a Growl window. There's a window open showing the shader source in a text box.
Note

A thoroughly wasted evening trying to make Wi-Fi work on a Raspberry Pi Zero. I’ve been using Linux for nearly two decades and Wi-Fi still baffles me.

Note

Very pleased to discover several games recently ported to the Epic store are using eos4j!

A screenshot of the Showcase section on the GitHub page for eos4j. There is box art for now four games - Feud, Age of Conquest IV, Retro Commander and Demise of Nations.
Note

breathe in, breathe out, new Krazam

A screenshot from a Krazam video featuring a baby and the caption 'you were born to deploy Kubernetes clusters' which, yes, I was
Note

Might ship a game tomorrow

Note

Just submitted the final build of Feud 2.0 for review to the stores. It’s real, it’s happening, we’re doing it

Note

A bit buggy but I now have Lua scripting inside Growl’s debug UI!

A screenshot of Growl's debug UI. There's some Lua code in a text editor, and some nice cats.
Note

Some lunchtime shader learning

A screenshot of shadertoy showing a very cool shader, wow
Note

Not sure yet if we’ll get any kind of boost from visibility on Steam when we leave Early Access but here’s hoping.

Note

I just realised that Feud has crossed the 70,000 players mark! Very pleased

A screenshot that says 'Players: 70236 total players'
Note

Just spent ages messing around with diagram software trying to get my network diagram to look right, only to give up and just do it on a whiteboard and take a picture of it. My handwriting aside, it’s far more readable

Note

Working out who to contact for press stuff in games now seems so much harder than it did five years ago. How does this work? Who do I talk to? Aaaahhh

Note

brid.gy’s Bluesky integration now supports publishing! This post was published by Bridgy! Wow! There’s some code of mine in there, do have a go.

Note

Any games press types On Here who would like to try out a prerelease build of Feud 2.0? Get in touch if so!

Note

Quite a nice day of Feud polishing and bug fixing. Still got a couple of localisations to review and import but other than that I’m feeling good about the release on the 23rd!

Note

Me when I start reading Perl documentation

The Northern Boys
Note

brid.gy I would obviously keep, because brid.gy is incredible

Note

What I think I’d like is some sort of simple web server that sits next to Hugo and provides the Micropub/Webmention endpoints and serves the site. I think having the content live in Git rather than a DB is definitely something I’d want to keep.

Note

So at this point I’ve got:

  • Hugo website hosted on GitHub Pages, deployed by GitHub Actions
  • Micropub and media endpoints running on AWS Lambda, with API Gateway stuff
  • Brid.gy to syndicate things and backfeed interactions
  • Webmention.io to collect webmentions

Does it work? Yes! Is it better than if I’d just written a fucking server? hahahaha no

Note

I ended up moving my Micropub endpoint from DigitalOcean to Lambda - I usually prefer working on DO (the AWS console/config is just painful) but the lack of support for custom domains, plus the 1MB limit on POST requests, kind of made the choice obvious.

Note

If you’re reading this post on Mastodon, it’s gone through a fairly baroque sequence of steps:

  • A Micropub endpoint running as a serverless function
  • Hugo to build for my website
  • A hacky GHA script to run the publishing
  • brid.gy to do the actual publishing.

Still, it’s nice to be able to write on my static site and have it syndicated without touching Git.

Note

eos4j v1.2.0 has been released! This new version adds support for the Ecom interface in Epic Online Services. It also fixes a bug with conversion from timestamps to Java Date objects.

https://github.com/Bearwaves/eos4j/releases/tag/1.2.0

Note

Quite liking where I’ve got my Vim setup to now. I don’t really miss an IDE, which is a first.

A screenshot of my Vim setup. There are two panes of code with a sidebar showing a file explorer, along with two other tmux panes.
Note

I replaced the debug cat image in Growl with a picture of our actual cat. So long debug cat, you served us well.

A screenshot of Growl's debug UI A screenshot of Growl's debug UI with a different cat
Note

Well, there’s still a fair amount of work to do - bugs to fix, translations to review - but as of today Feud is feature-complete for graduating from Early Access. It’s nearly eight years since we started working on it - longer than my professional game development career lasted!

A screenshot of Feud's commit graph from GitHub.
Note

🦦 test note pls ignore 🦦

https://www.joelotter.com

it me as a sunrise or a matt lees
Note

Just played a tiny prototype of what might well become the next Bearwaves game and I am very energised.

Note

I’ve lost two entire days of work to Terraform lockfile nonsense

Post
· Bluesky backfeed support in Bridgy

My “weekend project” of implementing Bluesky support into Bridgy is finally, several months later, complete! Ish.

Post
· Using Vim for writing

I do most of my daily work in Vim, and by this point I find it quite hard to use anything else, but for writing that isn’t code (or, let’s be real, mostly YAML these days) it could be a lot better.

Note

eos4j v1.1.0 has been released! This new version features support for the Leaderboards interface in Epic Online Services.

https://github.com/Bearwaves/eos4j/releases/tag/1.1.0

Note

Had my first report on eos4j this weekend from someone actually using it in their game! Very exciting.

https://github.com/Bearwaves/eos4j

Note

I worked at Improbable in 2019, when Unity tried to change their TOS to screw us over. They ended up backtracking and put their TOS on GitHub, saying they would not change TOS retroactively.

It appears to be gone.

https://www.reddit.com/r/gamedev/comments/16hnibp/unity_silently_removed_their_github_repo_to_track/

Note

lol, lmao

Google search trend for Godot, showing a big spike.
Note

Since launching on the Epic store a couple of months ago, Feud has had something like 28,000 new players. That feels significant!

A graph showing monthly sales for Feud on the Epic Store.
Note

I always get a kick out of explaining to people how #golang’s magical, mildly terrifying timestamp formatting works.

Note

Thinking of writing a GitHub bot to replace me at work that just comments “could you please split this up” on every PR.

Note

Been attempting to integrate a native C library into a Java project and it’s proving to be a total nightmare, even with jnigen. Once again cursing myself for choosing to write a game in Java.

Post
· On POSSE and IndieWeb

I’ve gone down into the depths these last couple of weeks with IndieWeb, POSSE and a whole bunch of other arcane terminology. Now that I’ve come up for air, let’s chat about it.

Post
· Packaging Android NDK APKs without Gradle

I struggled recently to work out how to build an APK out of a native Android app without using Gradle.

Post
· Reverse-engineering Daylio backups

I use an app called Daylio as a diary and a mood tracker. It’s really good! I recommend it. 

I also use an app called Habit to track things I want to do every day, like “stay off social media” or “work on a project”.

Post
· Notarizing Java applications on macOS

Notarization is required as of macOS 10.15 (Catalina), and it’s a bit of a minefield - doubly so for a Java application, or anything built outside Xcode.

Post
· Speed Up Catalina With This One Weird Tip!

The newest version of macOS (well, that’s out) has caused a lot of issues for a lot of people, game developers especially. I’ll write about my notarization woes in a separate post, but this should help address quite a specific issue.

Post
· Termloop: pixel mode

I’ve been reading a lot about PICO-8 recently, and found it really interesting. For the uninitiated, PICO-8 is a ‘fantasy console’ - a games console which exists purely as a program and set of development tools, rather than a real piece of hardware. Developers can create games for PICO-8 which are small enough to be embedded directly into a .png image, which is really cool.

Post
· A DJ Khaled Tinder bot

I had great fun last month writing a Reddit bot that pretended to be DJ Khaled. It’s been running ever since, but I thought it was about time to extend Khaled’s internet empire into another social media service. The obvious candidate: Tinder.

Post
· A DJ Khaled Reddit bot

I’d wanted to make a Reddit bot for a little while, really just as a toy project, and finding the excellent PRAW library for Python (as well as finally having some time off) gave me the kick I needed to get it done. It’s also April Fool’s Day, so I thought I’d make something a bit stupid.

Post
· Pixels Are Evil

The game development landscape has changed significantly over the last few years (understatement of the century, but whatever). One of the most significant of these changes , especially for game developers - though it’s one that often goes unnoticed - is the rise of screen resolution and aspect ratio fragmentation.

Post
· Uplift: A Postmortem

Before I begin, I should point out: Uplift isn’t dead. The Kickstarter for Uplift is dead. Sensationalist title, I know. Let’s pretend I’ve been learning how to be a journalist. Because having a blog definitely makes me a journalist, right? Ahem.

All tags