Hacker News new | past | comments | ask | show | jobs | submit login
The Deadlock Empire – Slay Dragons, Master Concurrency (2016) (deadlockempire.github.io)
97 points by guessmyname 9 days ago | hide | past | web | favorite | 4 comments

I enjoyed it, but the levels felt very easy. I'd also suggest some way to work in words like mutex or semaphore more. If you named every variable xxxMutex for example the game would do a better job of teaching the vocabulary (I think). As is, it's easy to just manipulate the threads without really knowing the names of the synchronization elements.

Great idea! This might be a fantastic pedagogic tool.

Some minor details that annoyed me (I'm only listing them here for improvement purposes):

- You can't "Expand" the whole program, only one statement at a time. However, having the fully expanded view is IMHO key to correct concurrent reasoning.

- Each mission's objective is hidden inside a big explanation text. I already know what mutexes/deadlocks/atomics/monitors/etc. are, I just want to play, thus I only need to know what will be considered as victory (as you can't unambiguously deduce it from the code: sometimes you must reach an Assert(false), sometimes you must deadlock the program, etc.).

- The confirmation dialog for 'reset level' is annoying (especially considering the 1s visual fade delay).

I'm only expressing those minor quibbles of mine for improvement purposes ; this game is fun and pedagogic and its author cleary did a great job here. Thanks to her/him!

This was a great diversion while waiting for dinner to cook!

Fun, but maybe not terribly educational.

It'd be easier to internalize the pitfalls of concurrency when shown a problem, and a way to (attempt to) fix it, and the ways the fix breaks, and the correct way.

You can play this game like a zombie without really understanding what the code is trying to do; all you see is a broken attempt at doing something and you don't need to understand much to break it.

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