...
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Build steps are skipped until CMakeLists.txt exists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ee85ghcJiHcBgiEvFJV7E8 |
||
| .forgejo/workflows | ||
| questions | ||
| specs | ||
| .gitignore | ||
| CLAUDE.md | ||
| LICENSE | ||
| README.md | ||
| ROADMAP.md | ||
OpenSteam
Открытая совместимая замена клиентской части Steam (steamclient.so): цель — чтобы игры, собранные со Steamworks SDK, запускались без клиента Valve. Лицензия MPL 2.0, C++23, CMake, цели x86-64 и x86.
Проект ведётся методом «чистой комнаты» (см. CLAUDE.md): сторона A исследует и пишет спецификации, сторона B по ним пишет реализацию.
Структура
| Путь | Что там | Кто читает |
|---|---|---|
specs/ |
спецификации поведения и раскладок (индекс — specs/INDEX.md, открытые пункты — specs/GAPS.md) |
A и B |
specs/steamworks/ |
публичный API по интерфейсам (методы, структуры, enum'ы) | A и B |
specs/protocol/ |
контракт между библиотекой игры и клиентом: экспорты, раскладки vtable (235 файлов), callback'и, версии, Proton, эталонные трассы | A и B |
ROADMAP.md |
маршрут по этапам | A и B |
notes/ |
рабочие материалы исследования: инструменты (trace-proxy/, tests/, checks/), журналы трасс (traces/), источники |
только A |
questions/ |
вопросы от B к A | A и B |
src/, tests/ |
реализация (пока не создана) | B |
Состояние
- Этап 0 (спецификации публичного API) и этап 1 (контракт shim'а: экспорты, vtable, callback'и) завершены в объёме, описанном в
specs/GAPS.md. - Реализации пока нет. Следующий шаг — этап 2 маршрута: минимальный shim (
CreateInterface,ISteamClient,ISteamUser,ISteamUtils, заглушки остальных интерфейсов), критерий —SteamAPI_Init/RunCallbacks/Shutdownна тестовой программе.
Как проверить спецификации
python3 -I notes/checks/check_specs.py # целостность таблиц vtable, ссылки, запрет личных данных/адресов
python3 -I notes/checks/proton_align.py # сверка порядка методов с мостом Proton (список расхождений ожидаем: см. GAPS.md)
notes/trace-proxy/build.sh # сборка логирующей прокси (для новых трасс)
Правки в specs/ делаются только стороной A. Сторона B вопросы пишет в questions/for-research.md.