85 lines
5.1 KiB
Markdown
85 lines
5.1 KiB
Markdown
# SRV — TrinityCore and AzerothCore Integration
|
||
|
||
## Цель
|
||
|
||
Поддержать server emulators как versioned backends: protocol-compatible runtime, безопасное редактирование данных и расширение mechanics через modules/scripts.
|
||
|
||
## SRV-1. Environment model
|
||
|
||
- `ServerEnvironment`: family, core commit, DB revision, modules, config profile, endpoints и data artifact versions.
|
||
- Отдельные disposable, local-dev, shared-test, staging и production classes.
|
||
- Credentials/secrets вне Content Project.
|
||
- Capability discovery проверяет schema fingerprint и optional modules/tables/hooks.
|
||
- Unknown environment всегда read-only.
|
||
|
||
## SRV-2. Database snapshots
|
||
|
||
- Read-only import world schema subsets с provenance/checksum.
|
||
- Auth/characters DB открываются только для нужных test/admin сценариев и никогда не становятся content source.
|
||
- Snapshot filters reproducible; personal/account data excluded.
|
||
- Canonical entities preserve supported fields and explicitly record unsupported/raw extras.
|
||
- Incremental snapshot возможен, но full consistency snapshot остаётся verification path.
|
||
|
||
## SRV-3. Canonical mappings
|
||
|
||
- Creature/gameobject templates, models, spawns, addons, formations, movement, texts.
|
||
- Quests, relations, objectives, POI, conditions, gossip.
|
||
- Loot/reference loot, vendors, trainers, items, reputation.
|
||
- SmartAI, script names, waypoint/script tables.
|
||
- Instances, encounters, LFG, graveyards, teleports, game events, weather, transports.
|
||
- Каждая mapping имеет per-core capability table и round-trip tests.
|
||
|
||
## SRV-4. Change sets and SQL
|
||
|
||
- Immutable change set: target fingerprint, preconditions, ordered operations, checksum.
|
||
- SQL generation соответствует conventions целевого core/profile.
|
||
- Custom SQL хранится в version control и compatible custom/module directory, не только применяется напрямую.
|
||
- Dry-run на disposable DB, targeted post-apply queries, core startup smoke.
|
||
- Idempotent migration или безопасное precondition failure.
|
||
- Rollback где возможен; destructive/irreversible operations требуют backup и явного подтверждения.
|
||
|
||
## SRV-5. Scripts and modules
|
||
|
||
- DB/SmartAI для выразимых data-driven mechanics.
|
||
- C++ module/script skeleton для mechanics, требующих server hooks.
|
||
- AzerothCore modules namespaced config/SQL/hooks; core patch — только если hook принципиально отсутствует.
|
||
- TrinityCore adapter следует его текущим script/customization conventions отдельно.
|
||
- Build artifact включает source, config.dist, SQL, tests и compatibility manifest.
|
||
- Client extension capability договаривается явно; hidden custom opcode запрещён.
|
||
|
||
## SRV-6. Server data artifacts
|
||
|
||
- DBC/maps/vmaps/mmaps versions связываются с ContentBundleManifest.
|
||
- Custom map требует согласованного client terrain, server maps/collision/pathfinding и DB Map/Area data.
|
||
- OpenWC navmesh не объявляется mmap до binary/query/live behavior compatibility.
|
||
- Asset/map IDs распределяются стабильно и проверяются на collision.
|
||
- Client/server package mismatch блокирует playtest с actionable diagnostic.
|
||
|
||
## SRV-7. Protocol compatibility
|
||
|
||
- Baseline 3.3.5a build 12340 остаётся общим.
|
||
- Core-specific quirks описываются named capabilities и fixtures.
|
||
- Custom extensions используют versioned handshake/profile и fallback/rejection.
|
||
- Server authority одинаково соблюдается для обеих families.
|
||
- Compatibility matrix закрепляет tested commits, а не расплывчатое «поддерживает AzerothCore».
|
||
|
||
## SRV-8. Test environments
|
||
|
||
- Docker/managed local environment для repeatable DB/core setup, где поддерживается.
|
||
- Seed accounts/characters synthetic и не содержат реальные credentials.
|
||
- Reset DB через assembler/base + project migrations.
|
||
- Logs world/auth/database/client собираются с correlation metadata.
|
||
- DB-only change test, module build test, startup smoke, scripted client scenario и cleanup.
|
||
|
||
## SRV-9. Existing tools
|
||
|
||
- Keira3 — reference для field semantics, SQL generation и AzerothCore DB UX.
|
||
- AzerothCore wiki/schema/module template — primary backend documentation.
|
||
- TrinityCore source/schema/tools — primary для Trinity profile.
|
||
- Noggit/WoW modding tools — client-world authoring reference, но не server schema oracle.
|
||
- OpenWC Editor объединяет workflow, но сохраняет raw SQL preview и ссылки на upstream docs.
|
||
|
||
## Gate
|
||
|
||
Одна canonical сущность проходит import → edit → diff → dry-run → apply → reimport на каждом supported profile без silent loss; module/content packages воспроизводимы; production write disabled by default; test environment очищается.
|