Coder Social home page Coder Social logo

cpu-level-11's Introduction

#Level 11 CPU (We skipped ten and cranked it straight up to eleven)

##The AI that beats you at Melee

The level 11 CPU is an AI that plays Super Smash Bros: Melee inside the Dolphin emulator. The goal is to make an AI that human beings cannot defeat.

##Sample Features

###Frame-Perfect Powershielding Powershield

###Punishes Laggy Moves Powershield

###Flowcharted Edgeguarding RollPunish

###Short-Hop Double Laser RollPunish

###Plus way more!

###FAQ

  1. What character does the AI play?

    Fox, of course!

  2. Does the Level 11 CPU cheat?

    The short answer is: No.

    The long answer is that the CPU only interfaces with the game by pressing buttons on a virtual controller. There isn't anything it does that you couldn't do in principle. It just so happens, however, that a computer is much faster and more reliable than you, so it's able to do things that a human realistically can't.

  3. Are there any current limitations to the AI?

    Yes, right now the CPU is limited to playing against Marth only, and on Final Destination. Support for other characters and stages will be added soon.

  4. How is the AI designed?

    The level 11 CPU makes decisions on a 4 tiered hierarchy of objectives: Goals, Strategies, Tactics, and Chains. Each objective inspects the current game state and decides which lower level objective will be best to achieve it.

    Goals are the highest level objective, and inform the AI what the intended overall outcome should be. IE: Beating our opponent in a match, or navigating the menu to select our character.

    Strategies are the highest level means that the AI will use to accomplish the overall goal. For instance, the level 11 CPU will typically take the strategy of baiting the opponent into a poor move.

    Tactics are lowish level series of predictable circumstances that we can realistically flowchart our way through. For instance, if the enemy if off the stage we may choose to edge guard them to keep them from getting back on.

    Chains are the lowest level of objective that consists of a "chain" of button presses that Smashers will recognize, such as Wavedash, Jump-canceled Upsmash, etc...

  5. Can I play it on a regular Gamecube or hacked Wii?

    For right now, the level 11 CPU only runs on a PC as a normal computer program. (Meaning that Melee has to be in an emulator) But I do want to get it running on actual Gamecube/Wii hardware. If you'd like to help with this, let me know!

  6. What Operating Systems does it play on?

    The CPU only runs on Linux. Under the hood, we use a named pipe input system to Dolphin, which is *nix only. There are no plans to make a Windows port. If we're going to spend time porting, it's going to be to a Gamecube/Wii.

##Rough Setup Steps:

###Works on: Ubuntu 15.04 (Maybe others, but that's all I've tested)

  1. Get a working build of dolphin from source. The latest master branch should be fine. You can find it here: https://github.com/dolphin-emu/dolphin

  2. Copy the file Locations.txt into ~/.dolphin-emu/MemoryWatcher/. Depending on your distro, this might actually be ~/.local/share/dolphin-emu/MemoryWatcher/.

  3. Create a named pipe for our CPU to talk over. This is how the CPU presses buttons programmatically over a virtual controller.

    mkfifo ~/.dolphin-emu/Pipes/cpu-level-11
    
  4. Configure your controller settings for player 1 and player 2. The CPU will take player 2. You'll probably want a GameCube controller adapter. But configuring that is out of the scope of this document.

  5. Run dolphin and start up Melee.

  6. Run ./cpu

    ./cpu
    
  7. Move focus over to the dolphin window. (Or else turn on background input on the controller) Just click on the dolphin window to do this.

  8. Set player 1 to Marth. The CPU will choose its own character. Set the stage to Final Destination. Start the match.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.