Red Flower Hell in Minecraft MALMÖ

NB4tf4i's Red Flowers (Red Flower Hell) - DEAC-Hackers Battle Royale Arena

The updated and future maintained version of this page can be found at https://github.com/nbatfai/RedFlowerHell

Red Flower Hell

Nowadays the key players in the artificial intelligence industry have their own platform for AGI research that is typically built on some well-known current or former game title. For example, Google uses the Quake III Arena and Star Craft II. Microsoft uses Minecraft for similar research purpose [1].

The Project MALMÖ is a Minecraft mod created by the Microsoft. Now we have started to use MALMÖ in education of programming. Then based on the experience gained with this we would like to use it in AGI research too. For this purpose we have begun to experiment with our own series of competitions called Red Flower Hell. The specific purpose of this challenge series is to collect as many red flowers as possible before the lava flows down the hillside as it can be seen in the following figure. Red Flower Hell Arena

Human Intelligence agents (HI agents)

In the elements of Red Flower Hell series we are going to develop intelligent agents to collect poppies. After this we would also like develop AGI agents in this environment. It is therefore essential to know that how many poppies can a human player collect?

nb4tf4i.xml
nb4tf4i_red_flower_hell_basic_human.py

HI agents Results

Software agents (SW agents)

These programs do not contain the usual MI solutions (such as graph searching or Q-learning), but only naive heuristic algorithms.

Family circle (with my children)

The first experiments with MALMÖ we had taken in our immediate family circle as we did with, for example, project BrainB [1] or SMNIST [2]. We have played with cheating (using ObservationFromGrid) and without cheating as well.

Study circles (for primary and secondary school pupils and students)

First circle

Demo

nb4tf4i.xml
nb4tf4i_red_flower_hell_basic.py

Second circle

Demo

nb4tf4i_d.xml
nb4tf4i_red_flower_hell_basic_d.py

# Loop until mission ends:
while world_state.is_mission_running:
print("--- nb4tf4i arena -----------------------------------\n")
self.agent_host.sendCommand( "move 1" )
time.sleep(.5)
self.agent_host.sendCommand( "move 1" )
time.sleep(.5)
self.agent_host.sendCommand( "move 1" )
time.sleep(.5)
self.agent_host.sendCommand( "turn 1" )
time.sleep(.5)
world_state = self.agent_host.getWorldState()

Let's do the same task as in the first circle but now with using discrete motion commands.

Third circle

Programming task
nb4tf4i_red_flower_hell_basic_d_sense.py

class Steve:
def __init__(self, agent_host):
self.agent_host = agent_host
self.x = 0
self.y = 0
self.z = 0
self.yaw = 0
self.pitch = 0
def run(self):
world_state = self.agent_host.getWorldState()
# Loop until mission ends:
while world_state.is_mission_running:
print("--- nb4tf4i arena -----------------------------------\n")
if world_state.number_of_observations_since_last_state != 0:
sensations = world_state.observations[-1].text
print(" sensations: ", sensations)
observations = json.loads(sensations)
nbr3x3x3 = observations.get("nbr3x3", 0)
print(" 3x3x3 neighborhood of Steve: ", nbr3x3x3)
if "Yaw" in observations:
self.yaw = int(observations["Yaw"])
if "Pitch" in observations:
self.pitch = int(observations["Pitch"])
if "XPos" in observations:
self.x = int(observations["XPos"])
if "ZPos" in observations:
self.z = int(observations["ZPos"])
if "YPos" in observations:
self.y = int(observations["YPos"])
print(" Steve's Coords: ", self.x, self.y, self.z)
print(" Steve's Yaw: ", self.yaw)
print(" Steve's Pitch: ", self.pitch)

Hint:

if "LineOfSight" in observations:
lineOfSight = observations["LineOfSight"]
self.lookingat = lineOfSight["type"]
print(" Steve's <): ", self.lookingat)

Fourth circle

Programming task: Steve should go up to the lava then come back down to the starting level walking ahead of the lava.

Fifth circle

Let's do the same task as in the previous circle but now with using 5x5x5 or 7x7x7 grid of blocks in ObservationFromGrid.

Courses (for university students)

In these courses students can earn extra points by solving MALMÖ based programming tasks.

High-level programming languages I

Syllabus, lectures, laboratory work, community.

Norbi Prog1
There are usually roughly 130 students in the High-level programming languages I lecture. This picture was taken on Wed, 19 Feb 2020.

The purpose of the following contests (Red Flower Hell I.-IV.) is to gain experience in agent programming. There is no reward or prize. We play the game for the game's sake.

Red Flower Hell I.

10 Feb - 2 Mar
Using ObservationFromGrid has already been a cheating in itself. But in this first round there are no rules, anything is allowed, for example the students can use directly the coordinates of flowers from mission XML file with the teleport command... and so on.

How to participate? Comment the link of your YouTube video to the post: https://www.facebook.com/groups/udprog/permalink/1337108209810398/

Results

Summary: the purpose of this round was to install and learn about MALMÖ.

Red Flower Hell II.

2 Mar - 23 Mar

Based on experience gained in the first round, the following are prohibited:

How to participate? Comment the link of your YouTube video to the post: https://www.facebook.com/groups/udprog/permalink/1342653805922505/

Results

Red Flower Hell III.

23 Mar - 6 Apr

Qualification limit: 14 poppies. The deadline for submission of the source code of your SF agent is 1 Apr. There will be online qualifiers followed by offline finals at the spring school holidays. Until now the red flowers have always been placed to the same place. In the finals, the locations of the red flowers will be re-generated. (For example, try this mission XML file: nb4tf4i_d_2.xml )

Results

Red Flower Hell IV.

6 Apr - 13 Apr

In this round the full arena will be re-generated: not only the coords of the red flowers but also the walls of the hillside will change as it can be seen in the following figure.

Red Flower Hell Arena 3

Results

High-level programming languages II

See AI agents

Esport

See AGI agents

Artificial Intelligence agents (AI agents)

Artificial General Intelligence agents (AGI agents)

Our other Minecraft-based activities

References

[1] Johnson, M., Hofmann, K., Hutton, T.,Bignell, D. (2016). The Malmo Platform for Artificial Intelligence Experimentation, 25th International Joint Conference on Artificial Intelligence, https://www.ijcai.org/Proceedings/16/Papers/643.pdf

[2] Bátfai, N., Papp, D., Besenczi, R., Bogacsovics, G., & Veres, D. (2019). Benchmarking Cognitive Abilities of the Brain with the Event of Losing the Character in Computer Games. Studia Universitatis Babeș-Bolyai Informatica, 64(1), 15-25. doi:10.24193/subbi.2019.1.02

[3] Norbert Bátfai, Dávid Papp, Gergő Bogacsovics, Máté Szabó, Viktor Szilárd Simkó, Márió Bersenszki, Gergely Szabó, Lajos Kovács, Ferencz Kovács, Erik Szilveszter Varga (2019). Object file system software experiments about the notion of number in humans and machines. Cognition, Brain, Behavior. An interdisciplinary journal. Volume XXIII, Nr 4, 257-280, doi:10.24193/cbb.2019.23.15

[4] Bátfai, N., Csukonyi Cs., Papp D, Hermann Cs., Deákné O. E., Győri K. (2020) The DEAC-Hackers esport department's education and research concept in AI in Minecraft (accepted Hungarian manuscript)


Norbert Bátfai, PhD., University of Debrecen, IT Dept., batfai.norbert@inf.unideb.hu
nb4tf4i

Last modified: Tue, 3 Mar 2020 21:18:00 GMT