OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A UCI chess engine derived from Stockfish whose goal is the opposite of normal play: to get checkmated. It never wants to win; if every legal move mates, it plays one only because a move is required.
Outcomes for the engine, best to worst: it is checkmated; draw; it checkmates the opponent.
By default the opponent is assumed to play the worst moves against that goal (it avoids mating us and
tries to force us to mate it). That is misere chess: zero-sum, so alpha-beta applies.
Option LoseOpponent=cooperative instead assumes the opponent mates whenever it can.
LoseOpponent=adaptive (experimental) searches for a forced loss first, then plays for the opponent type the game so far suggests.
Search (src/misere.cpp): iterative deepening PVS, lock-free shared transposition table, mate distance
pruning with misere bounds, LMR, history/killers, free check evasions, Lazy SMP (Threads).
Details and status: LOSERFISH.md.
cd src
make -j build ARCH=x86-64 COMP=gcc # produces src/loserfish (C++17)
# ARCH depends on your CPU: x86-64, x86-64-avx2, armv8, apple-silicon, ... ("make help" lists them)
CMake (no sh needed, GCC/Clang only):
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j
Verified on Linux (perft passes). On Windows (MinGW) it is unverified: use -G "MinGW Makefiles".
MSVC is not supported. NNUE and nets were removed; no downloads needed.
| Option | Default | Meaning |
|---|---|---|
| LoseMode | true | false falls back to the plain Stockfish search (material eval only) |
| LoseOpponent | adversarial | adversarial, cooperative or adaptive |
| LoseScore | neutral | score shown to GUIs: neutral (always cp 0), natural, inverted. Neutral avoids GUI resign adjudication |
| LoseExtCap | 3 | adversarial search only: free check evasions allowed per path (0-99). Mutual checks otherwise never consume depth; 99 disables the cap |
| LoseSafetyDepth / LoseMateDepth | 6 / 8 | cooperative mode only |
| Threads, Hash | 1, 16 | Lazy SMP threads and table size |
| Move Overhead | 30 | ms taken off movetime and off the clock for GUI latency; movestogo is honored (budget = time / movestogo) |
make profile-build ARCH=<your arch> COMP=gcc (PGO, uses bench, default depth 8) gave about 23% more nps
than the plain build in one x86-64 comparison (3.13 to 3.85 Mnps, same node counts).
tests/build_variants.sh builds ARCH variants plus PGO; tests/bench.py compares binaries and measures
Lazy SMP scaling (time to fixed depth). SMP scaling has not been measured on a multi-core machine yet.
tests/perft.sh (node counts), tests/lose_selftest.cpp (optimized search equals plain minimax),
tests/loserfish_play.py (play-outs, needs python-chess). See tests/README.md. CI: .github/workflows/ci.yml.
It cannot force a loss against an opponent who refuses to mate, except through zugzwang-like lines; two adversarial Loserfish engines draw by repetition. Evaluation is simple and untuned. Ponder, infinite, searchmoves, Chess960 and 32-bit builds are untested. Multi-thread speedup has not been measured yet; thread safety was checked with ThreadSanitizer.
Live demo: https://berat121.github.io/Loserfish/ (source in docs/index.html, docs/app.js; vendored chess.js and
coi-serviceworker under docs/).
Prebuilt browser files (about 520 KB .wasm, Emscripten 4.0.9): docs/loserfish.js and
docs/loserfish.wasm. Load the script, create the engine with
const M = await Loserfish({print: line => ...}), then send UCI lines with
M.ccall('loserfish_cmd', null, ['string'], ['go depth 8']). Engine output arrives in the print callback.
scripts/build_wasm.sh web|node [outdir] (Emscripten must be on PATH).node tests/wasm_smoke.cjs build-wasm/loserfish.js checks the Node build: depth 8 gives the same 612803 nodes as
the native binary. The browser build is not tested in a browser yet.GNU GPL v3 (Copying.txt). Derived from Stockfish; see AUTHORS for the Stockfish developers.