Playing Michael Jackson's Moonwalker using
Human Level Artificial Intelligence)
Note: To make this website free to the public
please click on an ad to support my sponsors or you
can make a tax-deductable donation using Paypal
(click on the donation icon on the left).
This video
shows a robot playing Moonwalker. There are no sound
in the video because I wanted to show the viewers
what the robot is thinking while playing the game.
The flashing text and freeze frames are the internal
thoughts of the robot and not instruction text for
the viewers. These internal thoughts describe the
details of how the robot produce intelligence.
My robot
doesn't use: planning programs/heuristic searches
(used by MIT and Stanford University), Bayesian's
probability theories for decision making, Bayesian's
equation for induction and deduction, semantic
networks for natural language understanding,
predicate calculus, common sense systems, first-order
logic, rule-based systems, genetic programming, or
MACHINE LEARNING.
Moonwalker
is a game where the player has to navigate in an
unknown environment to rescue children. This robot
is playing this level for the first time and has no
idea what the level environment looks like. He uses
logic to plan out optimal routes to travel to do his
searches. The player (the robot) will try not to
travel in the same areas twice. The goal is to
rescue the children in the fastest time possible.
Along the
way, the player encounters enemies. In order to
avoid getting hit or mobbed by a gang, the robot has
to kill enemies. Avoiding enemies is a stupid move
because they can always turn around and follow you.
By killing the enemy it eliminates the threat all
together. Also, the game is programmed so that
enemies are consistently attacking the player. In
order to survive, the player has to kill enemies. If
he doesn't, the enemies will keep coming and gang up
on the player, resulting in death.
In the
video, the robot is actually doing multiple tasks at
the same time: killing enemies, rescuing children,
and navigating in an unknown environment. He is
making decisions every second that will satisfy all 3
tasks. Sometimes he might do 2 tasks or 1 task, and
it really depends on the current situation. Other
times, he might abandon a committed action/s and
generate a new action. The robot will always pursue
actions that will accomplish his goals.
In this
gameplay, the environment is broken up into 4
levels. The main level, level2, level3, and level4.
In the robot's mind he has to visualize all the
levels and where these levels are in 3-d space. In
each level there are teleporting pods located in
various places. The robot has to understand where
each teleporting pod takes him. The robot does this
by playing the game, roaming around, and testing
where certain pods take him. For a medium sized
environment like this, it is easy for the robot to
use his mind to map out the environment. However,
when playing a game like Metroid where the
environment is massive, the robot needs a map to
identify the environment. Thus, this robot is able
to play any navigation game, regardless of how
complex the environment is.
In games
like Metroid or Zelda, the environment is endless and
maps are available to players. In order to navigate
in such a complex environment, the robot has to
generalize information on a map, write mental notes
on the map, zoom in on certain areas on the map, and
use logic to identify places in the map. The more
recent versions of Zelda have multiple layers of a
map. For example, a map can have 2-3 different
worlds. In each world, people, places, and things
are different. The robot has to manage this complex
environment in his head. The same goes with 3-d
complex environments. The robot simply has to
interpret the environment as 3-dimensional and it has
an added up or down dimension.