
The Deadlock Empire – Slay Dragons, Master Concurrency (2016) - guessmyname
https://deadlockempire.github.io/#main
======
ALittleLight
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.

------
Ace17
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!

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

------
clarry
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.

