Hacker News new | past | comments | ask | show | jobs | submit login
Oh My Git: An open source game about learning Git (ohmygit.org)
412 points by Lwrless on April 10, 2024 | hide | past | favorite | 47 comments



I'm so used to whatever flawed abstractions I have in my head that I fear learning the truth could be detrimental.


This, but I compartmentalize.

If I own the project then my heresies are dogma.

If you own the project I allow your heresies to be dogma.


This is a phenomenal outlook, actually. Joining and working with other projects is then like attending an interfaith group comprised entirely of heretics arguing about the right way to disagree.


Since reality doesn't care about this, wrong dogma can still bite you if it's not real even if non other people are involved


not if 'never rebase, it is a trick of the devil' is part of the Dogma and adhered to.

I'm being a little silly; but a team I worked on moved from P4 -> Git. It was an older develoepr base, so they wrote 1:1 translation wrappers for most P4 commands to git, and forced all developers to use them. Banning Rebase (in private branches, not even main) was one of the requirements to not break the wrappers.


Interesting, one of my personal dogmas is "never merge, always rebase".

I can't handle my branches bifurcating into the past.


While the idea of writing such wrappers is pretty nice, they still missed out. Rebasing is incredibly useful.


My general consensus on the practice is that it prevents the developers from learning Git. Short-term gain for long-term ignorance. I'm much more a fan of "Learn the tool upfront and reap the benefits", don't handicap the organization from the start.


If only you could rm -rF && git clone your mind.


"Empty your cup", as they say.


Just this morning, I spent over an hour trying to fix things after I made a git mistake. I ended up having to check out a fresh copy and manually reapply my changes.

This sort of thing is why I both fear and hate git.

I'll have to check this game out. My flawed abstractions clearly cause me issues. Maybe it could help.


The creators recently announced that they’ve gotten funding to do a 2.0! https://chaos.social/@blinry/111011979500389143

Also, it’s made in Godot, and whilst an older versiob of the engine, I’ve found it a valuable codebase for a couple of things. I particularly like how they deal with level creation, their file format for custom levels is very KISS.


This was presented at a conference (maybe FOSDEM?) some years ago. I as impressed, this showed what I had tried to train at work for years with mixed success.

Unfortunately there was no .deb or .rpm available at least at the time, that would be acceptable to distribute in Linux shop. So I built one myself. It was not perfectly easy (at least not for a greybeard not used to such game engine stuff), but in the end I got it building and running myself, still with some quirks not making it suitable for distribution.

I never found the time to polish it and whenever I looked at the repo again there was no activity. Now I see 2 months ago there were at least some commits.

Potentially useful project, but stalled before it got popular? I would wish it a second chance.

Edit: Downloading and installing random binaries is not something I can promote at my work. Of course a .deb or .rpm is nothing but a binary, but at least in theory (hello xz) you can audit what is built there and rebuild it yourself.


As long as the source is available, I always take the provided bins as a convenience versus a default negative attitude.


As long as they look like honest people I let everybody enter my home / borrow my car / access my internet banking / ... versus a default negative attitude?


Does this game include the newer Git commands that were featured in this HN submission from a few weeks ago? https://news.ycombinator.com/item?id=39889043


I don't think so (it's years that I tried the game).

Most of those commands don't even apply to the game.

worktree and cloning are a different aspect.

bisect (not new, must have existed for over 15 years, too)

This game visualizes how your commit history grows. None of those commands manipulate commit history.


a new license every day https://github.com/git-learning-game/oh-my-git/blob/main/LIC... and https://github.com/git-learning-game/oh-my-git-2/blob/main/L...

their page says their funding will run out in Feb and those seem to be the last commit dates so I guess it happened :(

there was some discussion on the previous submissions: https://news.ycombinator.com/from?site=ohmygit.org



That’s amazing, will definitely use this in teaching. Would be cool if this could also be compiled for the web/WASM.

Also, another git game / tool I had good experiences with is https://learngitbranching.js.org/.


This is amazing! Thank you for making this. I'm sure youngsters will love learning git in a gamified environment.


54 year old finding this useful here! :-)


I would love to see how Linus scores on this game.

Maybe the entire LKML should play this game and publish the leaderboard for our amusement :)


After typing "git init" in the terminal in the level called "The command line", I then wanted to try my luck so I typed "vim". Now the terminal is stuck. How do I exit vim?


Assuming the vim here is fully functional, the sequence (Not combined) would be esc : q enter.


ZZ <enter>


Well, this is a pretty clever way of introducing folks to git.


Love this, and may be helpful for incoming interns who are fuzzy on Git. Up until now my strategy has been to let them figure it out and point them to https://ohshitgit.com/ if they screw up.


It is made with Godot.


Making games to learn git instead of just making git not an insane mess seems like a pretty obvious cowpath. Bummed we're still trapped here.


Imagine if apps just… worked like this, somehow. Start off with a realtime visualization and point and click commands, and as you learn them you can evolve into a straight CLI…


That's a similar approach to the one I use for teaching git. First the sim, then the CLI.

https://theintelligentbook.com/supercollaborative/#/challeng...

(Albeit I made mine simulate how things like VS Code look while you're doing it a bit more)


This is freaking cool. Thanks for making this.

Maybe it will make me have more confidence in using git CLI vs my IDE's git integration instead.


Sadly causes random freezes on my 780m integrated GPU. Seems to be an AMD bug.


What amount of funding did you/they get from the sources they listed?


very well done! love it!


It's an open source project slowly rotting.

Things that need doing:

1. Upgrade to Godot 4

2. Integrate VoiceCraft (nobody reads anymore)

3. Find ongoing support for a Maintainer


I prefer reading instead of hearing some TTS or Voice AI reading things. For proper audio experience, a VA makes things probably better, though that has some cost to it as well. Otherwise just stick to text.


As @jna_sh mentioned, they are working on a 2.0 release : https://chaos.social/@blinry/111011979500389143

I won't even comment on the rest of points.


Is point 2 serious? Do programmers not read anymore?


yeah I just type random letters on my keyboard and keep hoping my code run


If you're going to pitch something as a game, it needs voice. Integration is simple. What's the problem? Are git incantations too powerful to be spoken aloud?


> If you're going to pitch something as a game, it needs voice

No?.. Idk what games you play, but there are an endless mountain of games with no voiceovers. It makes a lot more sense for games that have a lot of text (like this one), because reading is far faster than listening to speech. In general, I vastly prefer text to voice.


Great thing about software, you can turn features on and off.


> If you're going to pitch something as a game, it needs voice.

Why? The majority of the games I have don't include voice.


What?


Hey?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: