Devlog The RSS feed for Devlog.

Posts about the coding projects I’ve been working on in my spare time.

  • I also decided to put the documentation “on-board”, as opposed to putting it on the web. Yes, it breaks from what was typical during the 8-bit gaming period, but I’ve got the space, and it makes adding illustrations easier.

    Auto-generated description: Instructions for a retro-style video game involving making burgers by shooting ingredients and catching them in a basket.

    Also forces me to keep it brief, which is no bad thing.

  • Building out the meta elements of Cyber Burger, including the “menu du jour” a.k.a. the main menu. I’ve used food-service terms for the menu items to maintain the theme, but there is a button to switch them over to more conventional names should it be too unclear.

    Auto-generated description: A retro-style game menu displays options like Start Shift and Employee Handbook under the title CYBER BURGER.
  • Weekly Update - 3 Nov 2024

    I probably should stop calling these “weekly updates,” seeing that they come up a lot less frequently than once a week. Maybe I should switch to something like “Sunday updates,” or maybe something closer to what this is, which is an excuse to procrastinate by writing about what I’ve been working on, rather than just working on it. But I’m sure you’re not interested in my willowing about the frequency of these updates, so let’s just get straight to the meat of it. Continue reading →

  • Title design this morning. Trying to get as close as I can to the Cyberspace Raceway font as my pixel art skills will allow for.

    Auto-generated description: The map editor in Pico-8 depicting a retro-style screen displays CYBER BURGER, with the toolbox showing the sprites depicting the word CYBERUG and a pixelated burger icon.
  • Try-Catch In UCL - Some Notes

    Stared working on a try command to UCL, which can be used to trap errors that occur within a block. This is very much inspired by try-blocks in Java and Python, where the main block will run, and if any error occurs, it will fall through to the catch block: try { echo "Something bad can happen here" } catch { echo "It's all right. I'll run next" } This is all I’ve got working at the moment, but I want to quickly write some notes on how I’d like this to work, lest I forget it later. Continue reading →

  • Weekly Update - 20 Oct 2024

    Yeah, I know, it’s been a while… again. A lot has been happening in life and there’ve been many days that I haven’t done any work on anything. Things are starting to settle down now, although I am expecting a few more bumpy days ahead, so we’ll see how we go with project work. Cyber Burger Yeah, I’m getting pretty tired of this one. I’m right in the trough of despair here, where the initial excitement has worn off and I just want to finish it. Continue reading →

  • I’ve spent the last week working on a small puzzle game called Coasters, where you presented with two images and a clue, and you need to guess the word or phrase. One puzzle a day, sort of like Wordle. I’ve got 10 puzzles ready to go and I may add more but no promises. Check it out if you like.

    Auto-generated description: Two coasters are shown, one with the text 'happiness is attractive' and the other displaying the logo 'crust bakery', with a prompt to guess a species of bird.
  • Weekly Update - 22 Sept 2024

    No preface today. Let’s move on to the update. Cyber Burger Cyber Burger now has sound! I started added some basic sound effects to the laser and the items flying across the screen. They may change, depending on how I find them after a while, but it’s a start. I do like how Pico-8 makes these easy to make: select a waveform, then just draw out the pitch and volume graphically: Continue reading →

  • Weekly Update - 15 Sept 2024

    Two projects to discuss this week. Cyber Burger I’ve decided to ditch game mode A, where the player is given a series of stages they need to clear. Instead, I’m changing this to be closer to an old-school arcade experience. In this mode, you start the game with a 45 second timer, and you need get as high a score as you can before the timer runs out. Your score depends roughly on how large and “interesting” your burger is. Continue reading →

  • Project Updates

    Well, it’s been three weeks since my last post here, and as hard as it was to write this update, not writing it would’ve been harder. So let’s just skip the preamble and go straight to the update. Cyber Burger (That Pico-8 Game) I’m terrible at being coy, I’ll just spill the beens. That game I’ve been working on is call Cyber Burger. It’s based on a DOS game I saw on YouTube, and it seemed like a fun project to try and work on, with some tweaks to the gameplay that I think would make it more forgiving. Continue reading →

  • I enjoyed reading Kev Quirk’s post about building a simple journal. I’m still using Day One, but I am still thinking of moving off it. So I was inspired to build a prototype similar to Kev’s, just to see if something similar works for me. Built using Go instead of PHP, but it also uses Simple CSS.

    Screenshot of a journal web-page with a text box with the contents saying 'Thanks, Kev, for the idea'.
  • Project Seed - A Pico-8 Prototype

    Oof, another long stretch between updates. This has not been a productive winter. Much of the project I’ve been writing about here are, shall we say, “on ice”. UCL is still being used for the project it’s been built for, but there’s been no further work done on it recently. I think we can safely say Photo Bucket is dead, at least for now. Blogging Tool and that interactive fiction project is still ongoing, but both are running on a slow burn. Continue reading →

  • Current Project Update

    Hmm, another long gap between posts. A little unexpected, but there’s an explanation for this: between setting up Forgejo and making the occasional update to Blogging Tools, I haven’t been doing any project work. Well, at least nothing involving code. What I have been doing is trying my hand at interactive fiction, using Evergreen by Big River Games. Well, okay, it’s not completely without code: there is a bit of JavaScript involved for powering the “interactive” logic part. Continue reading →

  • More Tools For Blogging Tool

    Spent the last week working on Blogging Tool. I want to get as much done as a I can before motivation begins to wain, and it begins languishing like every other project I’ve worked on. Not sure I can stop that, but I think I can get the big ticket items in there so it’ll be useful to me while I start work on something else. I do have plans for some new tools for Blogging Tool: making it easier to make Lightbox Gallery was just the start. Continue reading →

  • Blogging Gallery Tool

    Oof! It’s been a while, hasn’t it. Not sure why I expected my side-project work to continue while I’m here in Canberra. Feels like a waste of a trip to go somewhere — well, not “unique”, I’ve been here before; but different — and expect to spend all your time indoors writing code. Maybe a choice I would’ve made when I was younger, but now? Hmm, better to spend my time outdoors, “touching grass”. Continue reading →

  • Bulk Image Selection

    Some light housekeeping first: this is the 15th post on this blog so I thought it was time for a proper domain name. Not that buying a domain automatically means I’ll keep at it, but it does feel like I’ve got some momentum writing here now, so I’ll take the $24.00 USD risk. I’d also like to organise a proper site favicon too. I’ve got some ideas but I’ve yet to crack open Affinity Design just yet. Continue reading →

  • The Site Page Model

    I opened up Photo Bucket this morning and found a bunch of commits involving pages. I had no idea why I added them, until I launched it and started poking around the admin section. I tried a toggle on the Design page which controlled whether the landing page showed a list of photos or galleries, and after finding that it wasn’t connected to anything, it all came flooding back to me. Continue reading →

  • Indexing In UCL

    I’ve been thinking a little about how to support indexing in UCL, as in getting elements from a list or keyed values from a map. There already exists an index builtin that does this, but I’m wondering if this can be, or even should be, supported in the language itself. I’ve reserved . for this, and it’ll be relatively easy to make use of it to get map fields. But I do have some concerns with supporting list element dereferencing using square brackets. Continue reading →

  • Tape Playback Site

    Thought I’d take a little break from UCL today. Mum found a collection of old cassette tapes of us when we were kids, making and recording songs and radio shows. I’ve been digitising them over the last few weeks, and today the first recorded cassette was ready to share with the family. I suppose I could’ve just given them raw MP3 files, but I wanted to record each cassette as two large files — one per side — so as to not loose much of the various crackles and clatters made when the tape recorder was stopped and started. Continue reading →

  • UCL: Brief Integration Update and Modules

    A brief update of where I am with UCL and integrating it into Dynamo-browse. I did managed to get it integrated, and it’s now serving as the interpreter of commands entered in during a session. It works… okay. I decided to avoid all the complexities I mentioned in the last post — all that about continuations, etc. — and simply kept the commands returning tea.Msg values. The original idea was to have the commands return usable values if they were invoked in a non-interactive manner. Continue reading →

  • UCL: Breaking And Continuation

    I’ve started trying to integrate UCL into a second tool: Dynamo Browse. And so far it’s proving to be a little difficult. The problem is that this will be replacing a dumb string splitter, with command handlers that are currently returning a tea.Msg type that change the UI in some way. UCL builtin handlers return a interface{} result, or an error result, so there’s no reason why this wouldn’t work. But tea. Continue reading →

  • UCL: The Simplifications Paid Off

    The UCL simplifications have been implemented, and they seem to be largely successful. Ripped out all the streaming types, and changed pipes to simply pass the result of the left command as first argument of the right. "Hello" | echo ", world" --> "Hello, world" This has dramatically improved the use of pipes. Previously, pipes could only be used to connect streams. But now, with pretty much anything flowing through a pipe, that list of commands has extended to pretty much every builtins and user-defined procs. Continue reading →

  • Simplifying UCL

    I’ve been using UCL for several days now in that work tool I mentioned, and I’m wondering if the technical challenge that comes of making a featureful language is crowding out what I set out to do: making a useful command language that is easy to embed. So I’m thinking of making some simplifications. The first is to expand the possible use of pipes. To date, the only thing that can travel through pipes are streams. Continue reading →

  • Imports And The New Model

    Well, I dragged Photo Bucket out today to work on it a bit. It’s fallen by the wayside a little, and I’ve been wondering if it’s worth continuing work on it. So many things about it that need to be looked at: the public site looks ugly, as does the admin section; working with more than a single image is a pain; backup and restore needs to be added; etc. Continue reading →

  • UCL: Procs and Higher-Order Functions

    More on UCL yesterday evening. Biggest change is the introduction of user functions, called “procs” (same name used in TCL): proc greet { echo "Hello, world" } greet --> Hello, world Naturally, like most languages, these can accept arguments, which use the same block variable binding as the foreach loop: proc greet { |what| echo "Hello, " $what } greet "moon" --> Hello, moon The name is also optional, and if omitted, will actually make the function anonymous. Continue reading →