Werden wir Helden für einen Tag

Home | About | Archive

The missing Q&A of 'An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp'

Posted on Dec 12, 2023 by Chung-hong Chan

Background

I gave a little demo of my half-baked project “orgdungeon” at emacsconf 2023. It’s lucky that the 5-min demo was prerecorded (video). I was in the middle of my vacation in Asia and due to my time table mess up, I did not make it to the Q&A. I am really sorry for that!

Apparently, there are several questions in the conference etherpad. Thank you very much for the questions. I am going to answer the questions below.

Q & A

Q: Could you please elaborate what’s the background of this game? What’s the motivation why you choose this game as introduction for a newbie to enter the Emacs world?

A: The background of this game is a bit silly. It’s actually my wife wanted to create a (general) video game last year and I told her I can create a puzzle game as well. I have no experience in programming any video game, but I enjoy playing niche video games such as Tetris and TIS-100.

I have tried to create educational material for R programmers to learn emacs, e.g. this and, this. Actually, the game presented so far is covering the same material of the latter tutorial. But I don’t think the written tutorial is as effective as this game.

There are so many introductory emacs tutorials. C-h t, for example, is quite good. If the path to emacs is from 0 to 100, those tutorials are good for going from 0 to maybe 20. It is nice to get the feet wet. I think that the gateway to really enjoy emacs, i.e. beyond 20, is to customize emacs so that emacs becomes your own tool. However, there is a huge perceived knowledge barrier of “learning emacs lisp” and “learning emacs internal”. From my own experience, the trick is stop “learning” (from an educational perspective, one can’t learn something for the sake of learning something.), but to “do.” The best way to immediately do something, is to play a game.

Q: Maybe the Emacs tutorial could be adapted to this game flow?

A: Unfortunately, that would be quite difficult. The Emacs tutorial is more about the basics (cursor movement, buffer management etc). And those bits are quite difficult to demo in the current text adventure format. I think a game format like vim-adventures would be better.

Q: What was something that you learned about Org-Mode/Emacs in working on this tutorial?

A: (eval (car (read-from-string string))).

Q: Thank you for the talk! Really cool project! How many planes are you planning to make and what more will you teach the players?

Q: Do you have an end goal for this game? That is, what information do you want it to cover or will it be never ending?

A: I am going to answer both questions jointly. The plan is to at least allow the users to write a 10-LOC function in emacs lisp.

Q: What is plane? Is that something like a question set in the game?

A: I am not a D&D player. But my wife told me a Plane is one parallel universe. But you are right, one Plane in this game is basically one question set, or one puzzle.

Q: Is it for programmers? Non-programmers? Or general?

A: I really hope that this is for everyone. But given the emacs userbase is like 90% programmers, I don’t mind this game is geared towards the programmer type wanting to “go beyond 20”.

Q: What is the link to your GitHub repository?

A: https://github.com/chainsawriot/orgdungeon

Q: Is (find-file org-file-name) [skip-to-plane] a effective way to load information from your org-files?

A: Probably not. The original idea was to have one giant org file and jump between headlines. But the current approach is easier to implement.


Powered by Jekyll and profdr theme