Prototype: github.com/cirosantilli/Urho3D-cheat
Prior art research: github.com/cirosantilli/awesome-reinforcement-learning-games
Less good discrete prototype: github.com/cirosantilli/rl-game-2d-grid YouTube demo: Video 1. "Top Down 2D Continuous Game with Urho3D C++ SDL and Box2D for Reinforcement learning by Ciro Santilli (2018)".
The goal of this project is to reach artificial general intelligence.
A few initiatives have created reasonable sets of robotics-like games for the purposes of AI development, most notably: OpenAI and DeepMind.
However, all projects so far have only created sets of unrelated games, or worse: focused on closed games designed for humans!
What is really needed is to create a single cohesive game world, designed specifically for this purpose, and with a very large number of game mechanics.
Notably, by "game mechanic" is meant "a magic aspect of the game world, which cannot be explained by object's location and inertia alone" in order to test the the missing link between continuous and discrete AI.
Much in the spirit of gvgai, we have to do the following loop:
- create an initial game that a human can solve
- find an AI that beats it well
- study the AI, and add a new mechanic that breaks the AI, but does not break a human!
The question then becomes: do we have enough computational power to simulation a game worlds that is analogous enough to the real world, so that our AI algorithms will also apply to the real world?
To reduce computation requirements, it is better to focus on a 2D world at first. Such world with the right mechanics can break any AI, while still being faster to simulate than a 3D world.
The initial prototype uses the Urho3D open source game engine, and that is a reasonable project, but a raw Simple DirectMedia Layer + Box2D + OpenGL solution from scratch would be faster to develop for this use case, since Urho3D has a lot of human-gaming features that are not needed, and because 2019 Urho3D lead developers disagree with the China censored keyword attack.
Simulations such as these can be viewed as a form of synthetic data generation procedure, where the goal is to use computer worlds to reduce the costs of experiments and to improve reproducibility.
Ciro has always had a feeling that AI research in the 2020's is too unambitious. How many teams are actually aiming for AGI? When he then read Superintelligence by Nick Bostrom (2014) it said the same. AGI research has become a taboo in the early 21st century.
Related projects:
- github.com/deepmind/lab2d: 2D gridworld games, C++ with Lua bindings
Related ideas:
- www.youtube.com/watch?v=MHFrhIAj0ME?t=4183 Can't get you out of my head by Adam Curtis (2021) Part 1: Bloodshed on Wolf Mountain :)
- www.youtube.com/watch?v=EUjc1WuyPT8 AI alignment: Why It's Hard, and Where to Start by Eliezer Yudkowsky (2016)
Bibliograpy:
- agents.inf.ed.ac.uk/blog/multiagent-learning-environments/ Multi-Agent Learning Environments (2021) by Lukas Schäfer from the Autonomous agents research group of the University of Edinburgh. One of their games actually uses apples as visual represntation of rewards, exactly like Ciro's game. So funny. They also have a 2d continuous game: agents.inf.ed.ac.uk/blog/multiagent-learning-environments/#mpe
- humanoid robot simulation
- Section "AI training game"
- Section "Software-based artificial life"
To some extent, the ultimate achievement of a TAS is to achieve arbitrary code execution (ACE) on a game, although this has been becoming rarer and rarer in newer consoles. The Nintendo 64 is the current interesting ACE discovery frontier as of 2020.
Post ACE, you then get into more subtle categories which tend to be more geometric clipping through wall glitches, but those can still be fun.
The most beautiful TAS content ever made are:
- Super Mario 64
- Super Mario 64 A press challenge
- 1-key any percent run:
- 2016 emulator run: www.youtube.com/watch?v=TkOkJvLKxUY
- AGDQ 2018 commented TASBOT console verification: www.youtube.com/watch?v=xvWOLT9G6tM
- Why we need one key: gaming.stackexchange.com/questions/249969/in-mario-64-speedruns-why-are-the-keys-necessary/351595#351595
- related: Super Mario 64 reverse engineering project
- Super Mario World for the SNES arbitrary code execution
- www.youtube.com/watch?v=OPcV9uIY5i4 with in-game programmed Pong and Snake, 2014
- www.youtube.com/watch?v=HxFh1CJOrTU Seth Bling does the credit warp manually in about 3 minutes, 2015. Later reduced to less than 1 minute: www.youtube.com/watch?v=Jf9i7MjViCE
- www.youtube.com/watch?v=voL3e0iqugo ACE was initially not forbidden in 11 exit rules, so Seth made an in-game manual ACE that programs an in-game accessible "exit stage now" functionality!!! This was later forbidden of course, but it was fun while it lasted.
- then he injected a Flappy Bird clone manually!!! www.youtube.com/watch?v=hB6eY73sLV0, 2016
- Ocarina of Time
- 2020 ACE via use after free including a non-TAS credit warp faster than the 2016 wrong glitch: www.polygon.com/2020/1/24/21080568/zelda-ocarina-of-time-arwing-spawn-video-speedrun-credits-ace-cheat-code ACE later reproduced in Majora's Mask, which has a similar game engine.
- 2016 Zelda Ocarina of Time wrong warp glitch:
- www.youtube.com/watch?v=uCO0jU66g3g 2016 video
- www.youtube.com/watch?v=Gso4MuNSuV8 EZScape explains the glitch, 2016
- Zelda Majora's Mask debug menu
- www.youtube.com/watch?v=2wdchm5Uwp4&t=2086s first video
- www.youtube.com/watch?v=CCubcEgnD6A overview
It is also amusing to see console verification of emulations, e.g.: Video 1. "Super Mario 64 '120 Stars' in 1:20:41.52 Console Verified by Soul Umbreon (2012)".