Files
coorl-lost-cities/docs/classic-port-notes.md
T
coolguy b578b38628 Rust 지원 제거
맥락: 클래식 포트를 Python/Cython 구현과 pygame GUI 중심으로 정리한다.

변경: Rust 크레이트, proto 계약, Rust backend shim, 패리티 테스트를 삭제하고 문서와 backend factory를 Python 전용으로 갱신했다.

확인: uv run pre-commit run --all-files; uv run pytest tests/games/classic; uv run lost-cities-classic-gui --help
2026-05-06 20:11:43 +09:00

82 lines
2.3 KiB
Markdown

# Classic Port Notes
This repository starts as a focused extraction of the Lost Cities game from the
legacy `coolrl` repository. The first target is the classic two-player card
game, without the earlier training-oriented tiers.
## Current Direction
- Implement the classic Lost Cities rules first.
- Treat classic as the initial concrete game under `coolrl_lost_cities.games`.
- Do not carry over `tier0` through `tier3`; those were useful for experiments,
but they should not shape the first public game API.
- Use the in-process Python/Cython implementation for the current port.
- Keep the GUI in scope for local play, but do not carry a separate native backend.
- Keep RL and training code out of the first extraction.
The expected package shape is roughly:
```text
src/coolrl_lost_cities/
games/
classic/
game.pyx
env.py
interfaces.py
backends/
bots/
pygame_pvp.py
fixtures/
assets/
docs/
```
Tests should live outside the package, roughly under:
```text
tests/games/classic/
```
## Out Of Scope For The First Port
- Deep CFR
- General training infrastructure
- Evaluation loops for learned policies
- Separate native backend support
- Web client
- Legacy experiment configs, checkpoints, logs, exports, and analysis artifacts
Bot-vs-bot helpers can stay with the classic game if they are useful for smoke
tests and local play. Broader policy evaluation can be introduced later with the
training layer.
## Later Training Shape
If training is added later, it should not make Deep CFR the center of the
package. Evaluation and policy interfaces should be general enough for multiple
approaches, with Deep CFR as one implementation.
A possible future shape:
```text
src/coolrl_lost_cities/
games/
classic/
training/
policies.py
evaluation.py
deep_cfr/
imitation/
policy_gradient/
```
The game package should expose rules, state transitions, legal actions, scoring,
and playable UI. Training code can adapt those pieces later.
## Naming Notes
For now, use `classic` for the five-expedition game. Other variants, such as a
six-expedition version, can be added later if needed. The current port should
avoid adding a variant registry or broad abstraction before there is a second
concrete game to support.