russmatney

joined 1 year ago
[–] russmatney@programming.dev 1 points 6 months ago

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

[–] russmatney@programming.dev 4 points 8 months ago

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…

 

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!

[–] russmatney@programming.dev 2 points 8 months ago

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/

[–] russmatney@programming.dev 2 points 8 months ago (1 children)

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!

[–] russmatney@programming.dev 5 points 8 months ago (3 children)

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

[–] russmatney@programming.dev 4 points 8 months ago

streets of rage 2!

[–] russmatney@programming.dev 4 points 8 months ago

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.

[–] russmatney@programming.dev 2 points 8 months ago* (last edited 8 months ago) (1 children)

[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)

[–] russmatney@programming.dev 3 points 8 months ago (6 children)

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!

[–] russmatney@programming.dev 4 points 8 months ago

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

[–] russmatney@programming.dev 10 points 8 months ago (11 children)

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!

 

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!

 

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.

view more: next ›