https://github.com/baskuit/oak
https://github.com/baskuit/oak
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/baskuit/oak
- Owner: baskuit
- License: gpl-2.0
- Created: 2024-02-28T21:06:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-22T00:21:52.000Z (over 1 year ago)
- Last Synced: 2024-10-22T08:45:55.909Z (over 1 year ago)
- Language: C++
- Size: 445 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# About
This repo is firstly a combination of computer search with `libpkmn`.
# Scope
Currently, the target is a Pokemon-Showdown bot for the `gen1randombattle` format - probably the simplest format that is actively played.
The approach is to combine sound perfect info search with determinization of the opponents private information. It is essentially IS-MCTS.
The code is detailed in `include/readme.md`.
# Building
Must have cmake and zig installed. The bash below clones the repo, builds the lipkmn libraries
```
git clone --recurse-submodules https://github.com/baskuit/oak
cd oak && git submodule update --recursive
chmod +x dev/libpkmn && ./dev/libpkmn
mkdir build && cd build && cmake .. && make && cd ..
```
Typescript code and showdown dev scripts will usually require that the `pokemon-showdown` submodule is built:
```
cd extern/pokemon-showdown && node build
```
The `pkmn-debug` utility is built via
```
cd extern/engine
npm install && npm run compile
```
and run with
```
./extern/engine/src/bin/pkmn-debug
```
# Status
This repo is far from completion. The following is completed
* Write a usuable C++ API
* Clone the gen1randombattle team gen logic
* Implement perfect-info MCTS for accurate 1v1 estimation
Remaining items:
* Create adequately strong HCE using 1v1 values
TODO