Grumpy Gamer

Ye Olde Grumpy Gamer Blog. Est. 2004

Oct 5, 2025

I want to talk about three things that has fundamentally changed my dev-life. There are a lot of things, like ImGUI, that are very amazing and useful but they don’t provide a general solution across many problems.

In no particular order…

Git

I’ve been using Git since 2010 and it really has changed my dev-life. I’d used version control before that, mainly Perform, SVN and PVSC, but Git felt nice and unobtrusive and I like that everything was local until I pushed to the server.

It’s both nice and annoying that you can’t lock files (like art). You can (kind of) with LFS but that feels tacked on and not ready for primetime. Don’t think so? Try explaining installing and using it to a non-technical artist sometime.

Git can be frustrating if you’re trying to do anything but the basics.

Accidentally check in a secret file months ago and need to scrub it? Good luck with that. There are ways but it requires a lot of Git-Fu.

I mainly use a GUI for git (Fork) and that takes most of the pain away. I do use the command line, but mostly in automation scripts.

Markdown

Before Markdown became the de-facto standard, I used my own custom format. It worked but wasn’t great and only I understood it.

Markdown has it’s issues when you start using the more esoteric features. I’m also annoyed at bold and italics notation. Why is italics *italics* and bold is **bold**? Why not *bold* and _italics_. That would make a lot more sense to me.

I also have issue with it’s creator, John Gruber. He is a highly annoying smug Apple Fanboy. His writing was fine in the early days when Apple was #3, but got intolerable as Apple became the 800lb gorilla. It’s changed recently as Apple has snubbed him but I still can’t read anything he writes.

But, I like his Markdown.

JSON

I use JSON for just about every data file format in my games. JSON was created by Douglas Crockford as a notation for Javascript objects.

I worked with Doug Crockford at Lucasfilm for several years. I always had a lot of respect for Doug and was somewhat intimidated (in a good way) by him. Doug was also the producer for the Nintendo Maniac Mansion.

As much as I love JSON, there are some things about it that annoy me. I dislike that trailing commas are not allowed

"name": [
	"value1",
	"value2",  <- Opps
]

There is no need for this and it makes writing out valid JSON more complex. I also don’t like you that have to wrap keys names in quotes if they are simple ascii.

name: "value"  <- Opps

I wrote a custom JSON parser I use in all my games that relaxes these, but then general JSON readers fail on my data.


Comments:

Leak 5h ago
One other important thing JSON left out was comments, but at least there's JSONC for that...
dusoft 5h ago
I agree with your comment re Markdown and the strong vs italics. It is illogical.
ridcully 4h ago
Why not *bold*, _underline_, and /italics/
Pouf 4h ago
One thing I hate about JSON is that there is no comments.
Ron Gilbert 4h ago
Comments are hard if you want to read and then write the JSON. What do you do with the comments? They can be ignored on read, but won't be preserved on write. My game engine is constantly reading and writing JSON.
ridcully 4h ago
And for JSON, there is JSON5 (the JSON for humans... so cute...), which
addresses many of the annoyances mentioned already (trailing comma,
comments) and more (multi-line strings, ...)
Ron Gilbert 4h ago
Yes, I understand they are a lot of JSON readers (including mine) that address these issues, but the standard doesn't so any custom JSON will break most readers. The GUI tools on the Mac for reading JSON don't read non-standard JSON. And no, I'm not asking for alternatives, I was making a point and the standard.
MM 3h ago
+1 to -> Why not *bold*, _underline_, and /italics/
benzado 3h ago
100% agree with all of this, including your feelings about John Gruber
fds 2h ago
It took an entire decade after JSON's invention that a version of Internet Explorer would finally allow leaving trailing commas in object literals inside JavaScript code.
Torsten Bronger 1h ago
In IT, things must be able to evolve. But there will never be a JSON 2. In addition to what you mentioned, I miss a decent floating point concept in JSON for my smart home (powers, temperatures).
Stan 19m ago
Sadly, some stuff are made by g33ks for g33ks only with no consideration for user experience: vim, docker, git,... (Not everyone of them on same insane level)

Add comment: