No le veo nada raro a la explicación, de hecho no sabría como simplificarla más.
Los case simplemente simplifica el uso de muchos ifs para la misma condición, por ejemplo en vez de poner:
if @command_window.index == 0
command_new_game
elsif @command_window.index == 1
command_continue
elsif...