@f_wrapper selbst ist nil. In deiner Methode "navigate" sehe ich eigentlich auch nur eine lokale Variable f_wrapper, also ohne @. Wo kommt denn der Aufruf, der im Code-Block steht?
Wie Kelven schon sagt, setzt du die Variable als lokale Variable (ohne @) hier:
f_wrapper sollte funktionieren - @f_wrapper ist nicht deklariert, also nil.
Bezüglich des mehrfachen anlegens von Game_Memory:
Die Game_Memory-Klasse sollte exakt ein Objekt für das Spiel verwenden (zumal du in Game_Memory dein Array mischst. Dadurch hat ja jede neuangelegte Instanz der Klasse ein anderes Array).
Du hast ja das erstellte Game_Memory Objekt bereits global im Zugriff:
$game_system.memory
D.h. wenn du nun die Update-Methode von Game_Memory verwenden willst, kannst du es wie folgt machen: