Pham Van Tai/Engineering work/archer-core

archer-core

The studio's Unity framework, shared across games as UPM packages.

Studio
Archer Game Studio
Period
Sep 2026 – Present
Used in
Tech
Unity 6, UPM over Git, VContainer, UniTask, Python tooling

Overview

RoleCore contributor, architecture and package design
Scope70 packages in use, team of 6, used in Idle Airport Manager
Highlights
  • 7 layers. Packages depend only on lower layers.
  • SDK domains (ads, IAP, tracking, remote config, consent, crash reporting) with swappable vendor adapters and a stub when no vendor is installed.
  • Data tables baked from Google Sheets through BGDatabase.
  • A pre-commit hook checks dependencies, cycles and READMEs.
  • About 2,000 automated tests.

Layers

A package can only depend on layers below it. The diagram shows the main packages in each layer.

▼ dependencies point down onlychecked on every commit

SDK domains and vendor adapters

Game code uses domain interfaces. Each vendor is an adapter registered with one line. Without a vendor the domain uses a stub, so the Editor and tests run without real SDKs. Click a node for details.

Callers
Domain interfaces
Vendor adapters

Data pipeline

Google Sheets data is baked into ScriptableObjects and read through typed queries.

Commit check

Runs on every commit.

Packages