Reinforcement Learning – Lost Chapters – Reverse Engineering

When I originally analyzed MarI/O and did my research for Metroid Learning, I skipped over the very basics of this field that is Goal Driven Systems. Thus, it is time to catch up on a bit of theory.

In this blog, I introduce goal-driven systems, reverse engineering and emulators.

Goal-driven Systems

Prevailing wisdom claims that the best way to achieve a specific thing is to set a specific, actionable goal – which typically has a system tied to it. A coach might follow the goal to win a championship. In this case, the system is the way the coach recruits players, manages assistant coaches, and conducts practice. An entrepreneur might follow the goal to build a million-dollar business. In this case, the system is how the entrepreneur tests product ideas, hires employees, and runs marketing campaigns.

In the case of a RL agent playing a game, the goal might be to complete a given level. In this case, the system is how the AI identifies obstacles, handles the controls, and times its inputs. The main idea of goal-driven system is not to just reach the goal, but to adapt as much as possible to the system until the goal is reached as a result. (cf. [Clear 2018])


Introduction to Reverse Engineering

In computer programming, reverse engineering is a technique used to analyze software. It aims to identify and understand the parts the software is composed of. This technique is typically used to recreate a program, to build something similar like it or to find and exploit its weaknesses. (cf. [])



An emulator is a hardware device or software program that enables one ‚host‘ computer system to imitate the functions of another ‚guest‘ computer system. These functions may enable the host system to run software, tools, peripheral devices and other components which were originally designed for the guest system. Emulators may replicate hardware, software, OS or CPU.

An emulator aims to create an original computer environment with the help of software and hardware. The process of creating an authentic emulator is complex and time consuming – but once created, it provides the authenticity of the original computer environment or digital object without the need for the original system. Users may 1) access applications or the OS on the emulated system and 2) run the original software  on the host system. To the users, the experience is the same as if they were using the original guest system. (cf. [])


…That covers all theory I think is necessary for my thesis.



[Clear 2018]
Clear, James: Atomic Habits. An Easy & Proven Way to Build Good Habits & Break Bad Ones. Penguin Publishing Group 2018.

Reverse Engineering: (17/02/2020)
Emulator: (17/02/2020)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

3 + 11 =