Skip to content

marwahaha/QWOPPER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QWOPPER: a programmatic interface for QWOP

The intended goal of the project is to write a bot able to play QWOP.

Evolution

Bennett Foddy created the popular computer game in 2008. Since then, millions of people have played!

The Wikipedia entry has more background on the game.

Laurent Vaucher built the first version of "QWOPPER". He tried using genetic algorithms to learn to play the game.

That work is detailed in their blog post.

Steven Ray developed an improved version of "QWOPPER" while a Master's student at Sac State. He along with his advisor V. Scott Gordon and Laurent Vaucher successfully submitted a paper titled "Evolving QWOP Gaits" to Genetic and Evolutionary Computation Conference 2014.

See the Youtube video here or download the paper here. The DOI is 10.1145/2576768.2598248.

I've cleaned up and updated this application for modern (circa-2019) tooling. With this program, I'm aiming to get a good walking gait in QWOP. I may or may not use genetic algorithms, as I have some idea of what "walking" looks like.

My code is here.

Using

  1. Clone project: git clone https://github.com/marwahaha/QWOPPER.git (or download the ZIP)
  2. Navigate into the directory: cd QWOPPER
  3. Launch the graphical interface: ./gradlew run (gradlew.bat run on Windows).
  4. Resize the graphical interface to half-screen, and open QWOP in the other half screen.
  5. Click Find game area. Enter a Gait "DNA" or press Random. Press Run and watch!

Gait "DNA"

The gait "DNA" is a string of letters A-P. Each letter encodes which of [Q, W, O, P] are pressed, each held for 150ms. Each of 2*2*2*2=16 options are listed below.

When the gait string is complete, the computer starts again from the first letter. This continues until the runner crashes, the game is complete (100 meters), or the program is stopped.

Letter Input
A Q
B W
C O
D P
E QW
F QO
G QP
H WO
I WP
J OP
K QWO
L QWP
M QOP
N WOP
O QWOP
P (none pressed)

Contributing tips

Acknowledgements

  • To Bennett Foddy for creating the game and thoughts on physics in game design.
  • To Laurent Vaucher and Steven Ray for previous work, and allowing their code to be MIT-licensed.
  • To Henry Chang for testing the software and discussions on gradient descent, genetic algorithms, and image processing.
  • To Allan Peng, Madison Ashley, and Mike Singletary for discussions about programmatically playing QWOP.

Thanks also to:

About

a programmatic interface for QWOP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages