Coder Social home page Coder Social logo

pokebot's Introduction

PokéBot

An automated computer program that speedruns Pokémon generation 1 games.

Pokémon Red (Any% Glitchless) personal best runs:

Watch live

PokéBot’s official streaming channel on Twitch. Consider following there to find out when we’re streaming, or follow the Twitter feed for announcements when we get personal best pace runs going.

Run the bot locally

Running the PokéBot on your own machine is easy. You will need a Windows environment (it runs great in VMs on Mac/Linux too).

  1. First, clone this repository (or download and unzip it) to your computer.

  2. Download the BizHawk 1.6.1 emulator and extract the ZIP file anywhere you like to “install” it.

    Note: BizHawk v1.6.1 (Windows only) is the only version known to work.

  3. Run the BizHawk prerequisites installer, which should update a C++ distributable needed by BizHawk.

  4. Procure a ROM file of Pokémon Red (you should personally own the game).

  5. Open BizHawk.exe, then drag your ROM file onto the window, and Pokémon Red should start up.

  6. If you want to test the full run, set RESET_FOR_TIME in main.lua to false instead of true.

  7. Under the Tools menu, select Lua Console. Press the “open folder” button, and navigate to the PokéBot folder you downloaded. Select main.lua and press “open”. The bot should start running!

Seeds

PokéBot comes with a built-in run recording feature that takes advantage of random number seeding to reproduce runs in their entirety. Any time the bot resets or beats the game, it will log a number to the Lua console that is the seed for the run. If you set CUSTOM_SEED in main.lua to that number, the bot will reproduce your run, allowing you to share your times with others. Note that making any other modifications will prevent this from working. So if you want to make changes to the bot and share your time, be sure to fork the repo and push your changes.

Other Categories

The bot is designed to run "any% glitchless" (beat the game as fast as possible, without major glitches) categories - the most popular in the speedrunning community. However, the bot can easily be adapted for other purposes including use in testing frame data for human players, or to run different categories of the game.

Red Any% No Save Corruption by Marc-Andre Boulet

If you're interested in adapting the bot to other categories or games, we'd love to see it, and are happy to help answer questions.

Credits

Developers

Kyle Coburn: Original concept, Red routing

Michael Jondahl: Combat algorithm, Java bridge for connecting the bot to Twitch chat, LiveSplit, Twitter, etc.

Special thanks

To our Twitch chat moderators who help answer questions, and make the stream a great place to hang out.

To LiveSplit for providing custom component for integrating in-game time splits.

To the Pokémon speedrunning community members who inspired the idea, and shared their knowledge on ways to improve the bot.

pokebot's People

Contributors

kjlubick avatar kripet avatar ky-is avatar marcin1503 avatar mathiasbynens avatar pariahjones avatar

Watchers

 avatar  avatar  avatar

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.