...
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Xomel45 d26095335f
All checks were successful
CI / build (x86_64) (push) Successful in -4m2s
CI / build (x86) (push) Successful in -3m49s
Add CI: x86-64 and x86 builds on the Forgejo runner
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
2026-10-17 12:44:53 +03:00
.forgejo/workflows Add CI: x86-64 and x86 builds on the Forgejo runner 2026-10-17 12:44:53 +03:00
questions Initial import: specs, roadmap, project rules 2026-10-17 11:45:29 +03:00
specs Initial import: specs, roadmap, project rules 2026-10-17 11:45:29 +03:00
.gitignore Initial import: specs, roadmap, project rules 2026-10-17 11:45:29 +03:00
CLAUDE.md Initial import: specs, roadmap, project rules 2026-10-17 11:45:29 +03:00
LICENSE Initial import: specs, roadmap, project rules 2026-10-17 11:45:29 +03:00
README.md Initial import: specs, roadmap, project rules 2026-10-17 11:45:29 +03:00
ROADMAP.md Initial import: specs, roadmap, project rules 2026-10-17 11:45:29 +03:00

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.