Skip Navigation
Keymacs, a program to generate Emacs keybindings | Plain DrOps
  • Interesting idea! I appreciate the org/plaintext driven approach, not that different from wm config bindings.

    I like the idea of behavior (in this case keybindings) updating from documentation/data changes without needing to edit the code, tho there are tradeoffs and added complexities to mitigate

  • Published my first addon: Log.gd, a print()-like pretty-printer
  • Excellent! Let me know what you think or if you have any ideas - it’s easy to add more types, I’ve only been minimal so far. Vector3s come to mind…

  • Published my first addon: Log.gd, a print()-like pretty-printer

    I finally published my first addon, and it hit the asset library today!

    Log.pr(...) and Log.prn(...) are intended as drop-in replacements for print(...):

    • colorizes the output data based on type
    • recursively prints dictionaries and arrays
      • (with a sane max count, i.e. not printing 1000 entries in an array)
    • adds a script-name prefix and line-number before each log
      • with different treatment for [src:12]: vs <addons:12>: vs {test:12}: scripts

    For me this helps reduce wall-of-text noise and eye strain while reading logs at a glance.

    I created a docs site via docsify, and the code is on github.

    I'll be adding support for more types and customizing the color choices soon. You can opt-in to pretty-printing with your own objects by implementing a to_printable() function. I'm brainstorming ways to add support for not-your custom types as well (for example, Pandora Entities) - I have a few ideas but nothing implemented yet.

    I've been using it in my own projects for a few months now, so it feels ready to share - I'm hopeful that others find it useful!

    Try it out, let me know what you think!

    2
    Screenshot Saturday!
  • Not a game, but a tiny godot addon I'm working on, a dev-focused pretty printer for making your logs more readable.

    I'm liking this as a logo so far!

    Hopefully coming to the godot asset store this month!

    Screenshot is via Pixaki on an ipad: https://pixaki.com/

  • Complete all in one place ROFI comfigurations?
  • I’ll warn that it’s a bit of a mess in there! I use it daily on my machines, but i feel it’s not super approachable yet. But feel free to grab ideas or ask any questions, it has some cool features!

  • Complete all in one place ROFI comfigurations?
  • There are a few collections around like: https://github.com/adi1090x/rofi

    These things tend to imply dependencies for how they're implemented plus whatever they are integrating. The UX is definitely the right one tho! Rofi is great for working on custom dev tools - you can pass lines in as stdin, it sends back the selected item on stdout, then you exec the matching output command.

    I started a project called 'ralphie' to do this with babashka a couple years ago, but later i absorbed that into a monorepo called clawe - you can see the rofi namespace here: https://github.com/russmatney/clawe/blob/3987390ffe538d878045e9d886190542fb111b9e/src/ralphie/rofi.clj#L146-L156

  • Released my first steam + godot game today, and the source code is available!
  • Another much shorter answer is, once you pay the steam fee, you can easily play your game on the Steam Deck, so it helps a ton for playtesting (both myself and putting the games in people's hands).

    And otherwise, the Dino page is up now in the hopes of starting to collect wishlists sooner than later.

  • Released my first steam + godot game today, and the source code is available!
  • [edit: sorry, this whole answer I thought the question was asking about Dot Hop, not Dino! Re: Dino, I'd started the project much earlier, but paused development on it at the beginning of this year to pursue Dot Hop first (much smaller scope). I'm moving back to Dino now that Dot Hop is released, targeting a launch before June!]

    Yeah, Steam charges $100 per title - if you earn enough (some high number, maybe 1000?), they give that 100 back, but I'm not necessarily counting on that (not soon, anyway). My goal is make enough money to keep doing game dev full time - i'm hopeful to make it work across steam/itch/patreon/other stores. (Hopefully Dot Hop mobile/Switch releases later this year!). To me the dream is to make enough money to make the rent and make the next game.

    But! There are definitely other less-directly-monetary reasons for the release:

    • getting exposure and feedback from more people will help me improve as a game dev/designer (this might be the biggest reason, really - I don't expect commercial success from my first game, so instead it's about all the intrinsic value I can get out of it - experience, motivation, validation, learning all the annoying marketing/steam/etc overhead)
    • having a deadline and 'proper' release definitely motivated me to raise the quality bar of my work (before this I was submitting scrappy games to game jams)
    • regardless of the project's monetary success, it's now a useful portfolio piece for future game dev teams/interviews, which I might need if/when the solodev thing isn't enough

    In general I'm intending to get multiple quality games into "stores" as soon as possible (hopefully this year), and then decide what to do next - I think the experience along the way is the best thing for my growth and will inform the next move (some larger game, find/build a team to work with, start applying for studios, etc)

  • Released my first steam + godot game today, and the source code is available!
  • This template might also be useful: https://github.com/bitbrain/godot-gamejam - e.g. i read through the savegame stuff before implementing it in my own game.

    I saw another template the other day… and my last/next project “dino” is available as well, though it’s pretty crazy in there right now: https://github.com/russmatney/dino - i hope to whip this one into shape by june 1st!

  • Released my first steam + godot game today, and the source code is available!
  • Excellent! Let me know if you have any questions!

    I’m working on some devlogs that will share parts of the implementation - I’m happy to dig into whatever directions are useful

  • Released my first steam + godot game today, and the source code is available!
  • Thanks! I’m hopeful it helps folks as an example godot game. Not that my way is the best, but it’s working for me, so feel free to borrow some patterns!

  • Released my first steam + godot game today, and the source code is available!
  • A steam link would be nice!

    https://store.steampowered.com/app/2779710/Dot_Hop/

    Got dropped b/c i also included the image, i think [update: realized can edit the original post, so the link is in there now]

  • Released my first steam + godot game today, and the source code is available!

    Dot Hop launched today on steam! It has some challenging grid puzzles that I think folks will find satisfying.

    This game started as a puzzlescript game for the Fediverse Summer Jam hosted by the p.d community - I reimplemented it in Godot, added themes and many more puzzles, and finally released it last night/this morning.

    The game's source is available on github and it can be purchased on steam and on itch.io.

    Hope you enjoy it, and let me know what you think!

    16
    Screenshot Saturday!
  • Thank you, I'm glad you like it! I like pixel art b/c it's so constrained, so it helps me relax and just fit whatever i can in the space. Hope you like the game!

  • Screenshot Saturday!
  • I added a more celebratory new-puzzle-set-unlocked screen to Dot Hop yesterday:

    Dot Hop is launching March 1st (next Friday)! Originally prototyped as Flower Eater in the Fediverse Summer Jam - now re-implemented in Godot, with ~50 more puzzles (and many more to come!)

    Check it out on steam and on github, or watch a short devlog about it on youtube

  • What programming language will you be using in the upcoming advent of code?
  • I’m going for zig and gerbil this year! Love AOC for learning new langs a day at a time :)

  • What programming language will you be using in the upcoming advent of code?
  • Dang, haven’t heard of this, looks pretty cool!

  • How will you be tackling the challenges this year?
  • I’m going to try to use both zig and gerbil. Usually i use clojure, so might fallback to that as well. I started doing puzzles from 2015 this week, and that’s been fun so far

  • Puzzle: Black to move and mate in three
  • Also, g2 would be defended by the white queen after the f pawn takes the knight

  • Programming for kids
  • This was a cool talk on teaching programming gradually (with a lang called hedy) at last year’s strangeloop: https://youtu.be/fmF7HpU_-9k - might be some useful takeaways for you in there

  • Can't remember the name of that one command line tool? Next time, add a comment!

    One of my favorite command line tips: you can add 'comments' full of keywords to shell commands, which makes searching your command history easier.

    > obscure-cmd --with-weird-flags -Qdt # searchable comment keywords

    Presumably you're using something like fzf for history search, but this is still useful without it.

    This is especially useful for cli tools with obscure names/flags, or when you can't remember where a particular log file is.

    ---

    Some examples from my history:

    tail awesomewm logs: tail -f ~/.cache/awesome/logs -n 2000 # tail follow log awesomewm

    fix linux clock drift: sudo ntpd -qg && sudo hwclock --systohc # fix linux clock time drift

    copy ngrok public url to clipboard: curl -s http://localhost:4040/api/tunnels | jq ".tunnels[0].public_url" | tr -d '"' | tr -d '\n' | xclip -selection clipboard -i # fetch ngrok url uri, copy to clipboard

    sign ssh and gpg, then refresh the emacs keychain env: keychain --agents gpg,ssh --eval id_rsa <some-gpg-id> && emacsclient -e '(keychain-refresh-environment)' # sign ssh,gpg password, refresh emacs env

    Another gpg one: git config commit.gpgsign false # disable gpg signing for this repo

    Pacman/pamac commands, like listing orphaned packages: pacman -Qdt # list orphans pamac list -o # list orphans

    xprop - super useful for debugging window management, for some reason i can never remember what it's called:

    xprop # mouse click window x11 linux describe info client helper whateveritscalled

    Some helpers from my clawe project: bb --config ~/russmatney/clawe/bb.edn -x clawe.sxhkd.bindings/reset-bindings # reset sxhkd bindings bb --config ~/russmatney/clawe/bb.edn -x clawe.restart/reload # reload clawe

    ---

    Aliases come to mind as well - in some cases that might be a better fit. I like this because it's so low-lift.

    2