Chạy từ máy chủ cục bộ

Để đơn giản hóa quá trình phát triển và kiểm thử trò chơi, bạn có thể chạy nó từ máy chủ cục bộ. Việc kiểm thử có sẵn trong môi trường prodmôi trường dev.

Sau khi khởi chạy trò chơi trên máy chủ cục bộ, bạn có thể sử dụng tất cả các chức năng của SDK từ nó.

Môi trường Prod

Hạn chế

Yêu cầu đăng ký trên nền tảng Yandex Games và bản nháp trò chơi.

Phù hợp ở giai đoạn kiểm tra cuối cùng trước khi gửi trò chơi để kiểm duyệt. Trong chế độ này, trò chơi tương tác với nền tảng Yandex Games thực tế.

Đặc điểm:

  • Trò chơi mở bằng địa chỉ thực trên yandex.com/games.
  • Để gửi yêu cầu đến các máy chủ bên ngoài, cần thêm chúng vào quy tắc CSP.
  • Hiển thị quảng cáo thực.
  • Người chơi đăng nhập thông qua Yandex Passport.
  • Dữ liệu người chơi và bảng xếp hạng được lưu trên máy chủ.
  • Danh mục sản phẩm được tải từ máy chủ, giao dịch mua hàng được xử lý trên máy chủ.
  • Để gỡ lỗi, có thể sử dụng bảng debug thông qua tham số trên thanh địa chỉ &debug-mode=16.

Có thể thiết lập phiên bản cục bộ của trò chơi trong môi trường prod bằng cách:

Tự cấu hình máy chủ cục bộ

  1. Thiết lập máy chủ localhost.
  2. Mở trò chơi ở chế độ bản nháp.
  3. Thêm tham số ?game_url=https://localhost vào địa chỉ.

Ghi chú

Vì lý do bảo mật, tham số game_url chỉ hỗ trợ tên miền localhost.

Cấu hình máy chủ cục bộ bằng gói npm

  1. Cài đặt npm theo hướng dẫn trên trang Node.JS.

  2. Sử dụng npm để cài đặt gói @yandex-games/sdk-dev-proxy:

    npm install -g @yandex-games/sdk-dev-proxy
    
  3. Khởi chạy trò chơi. Bạn có thể:

    npx @yandex-games/sdk-dev-proxy -h <Địa chỉ máy chủ cục bộ>
    
    npx @yandex-games/sdk-dev-proxy -p <Đường dẫn đến thư mục chứa trò chơi>
    

    Gói này sẽ proxy các yêu cầu đến tài nguyên SDK trên cùng máy chủ nơi trò chơi của bạn sẽ được đặt.

Nếu bạn chỉ định tham số --app-id, khi khởi chạy sẽ mở trò chơi của bạn trên yandex.com/games:

npx @yandex-games/sdk-dev-proxy -p <Đường dẫn đến thư mục chứa trò chơi> --app-id=<ID trò chơi>

Nếu không chỉ định --app-id, trong console sẽ hiển thị liên kết mẫu đến trò chơi trên dịch vụ và liên kết đến máy chủ cục bộ.

Tham số khởi chạy

Tham số

Mô tả

--help

Hiển thị trợ giúp.

--host, -h

Máy chủ nơi đặt máy chủ cục bộ của trò chơi (ví dụ: sử dụng cho webpack-dev-server).

--path, -p

Đường dẫn đến thư mục chứa tài nguyên trò chơi.

--port

Cổng mà máy chủ sẽ mở (mặc định là 8080).

--app-id, -i

ID bản nháp trò chơi.

--csp, -c

Thêm thẻ meta với Content-Security-Policy. Nó tương ứng với thẻ sẽ được tạo trong index.html trên dịch vụ.

--log, -l

Bật ghi nhật ký yêu cầu vào console (mặc định là bật).

--tld

Thay đổi tên miền yandex.tld, ví dụ thành yandex.com (mặc định là ru).

--dev-mode

Nếu là true, trò chơi sẽ chạy trong môi trường dev (mặc định là false, tương ứng với môi trường prod).

Môi trường Dev

Ghi chú

Không yêu cầu đăng ký trên nền tảng Yandex Games hoặc bản nháp trò chơi.

Phù hợp trong giai đoạn phát triển tích cực và gỡ lỗi logic trò chơi. Trong chế độ này, trò chơi không có kết nối thực tế với nền tảng Yandex Games và tất cả các lệnh gọi SDK được thay thế bằng mock, cho phép tải lại trang nhanh chóng và xem các cập nhật.

Đặc điểm:

  • Trò chơi mở trực tiếp tại https://localhost.
  • Không có hạn chế CSP, có thể gửi yêu cầu đến bất kỳ máy chủ bên ngoài nào.
  • Thay vì quảng cáo thực, hiển thị placeholder, nhưng tất cả các hàm callback hoạt động tương tự như môi trường prod.
  • Xác thực người chơi hoạt động thông qua mock của hộp thoại trình duyệt.
  • Dữ liệu người chơi và bảng xếp hạng được lưu trong localStorage.
  • Danh mục sản phẩm được tải từ tệp cục bộ, giao dịch mua hàng của người chơi được lưu trong localStorage.
  • Để gỡ lỗi, có thể đặt tham số thông qua thanh địa chỉ trình duyệt.
  • Trong console trình duyệt, tất cả các lệnh gọi SDK được ghi nhật ký tự động với phân chia theo mô-đun.

Khởi chạy trong môi trường dev cũng có sẵn thông qua gói npm @yandex-games/sdk-dev-proxy. Hướng dẫn cấu hình tương tự như môi trường prod, chỉ cần chỉ định tham số --dev-mode=true khi khởi chạy.

Bạn có thể:

npx @yandex-games/sdk-dev-proxy -h <Địa chỉ máy chủ cục bộ> --dev-mode=true
npx @yandex-games/sdk-dev-proxy -p <Đường dẫn đến thư mục chứa trò chơi> --dev-mode=true

Các tham số có sẵn cho thanh địa chỉ trình duyệt

export interface SDKMocks {
    /** Có được phép thêm phím tắt lên màn hình chính không? */
    canShowPrompt?: boolean;
    /** Người chơi đã xác thực chưa? */
    isAuthorized?: boolean;
    /** Nếu trò chơi bị khóa hướng màn hình. */
    lockedOrientation?: ELockedOrientation;
}

/** Hướng màn hình bị khóa của trò chơi trên thiết bị di động. */
export enum ELockedOrientation {
    /** Trò chơi chỉ hỗ trợ landscape. */
    LANDSCAPE = 'landscape',
    /** Trò chơi hỗ trợ cả hai hướng. */
    NONE = 'none',
    /** Trò chơi chỉ hỗ trợ portrait. */
    PORTRAIT = 'portrait',
}

Ví dụ

localhost:8080?mocks={"canShowPrompt":true,"isAuthorized":true,"lockedOrientation":"landscape"}

Thiết lập danh mục sản phẩm cục bộ

Để mô phỏng danh mục sản phẩm, tạo tệp purchases-catalog.json trong thư mục gốc của dự án và thêm danh sách sản phẩm vào đó — giống như bạn đã hoặc dự định thêm vào Bảng Điều Khiển của nhà phát triển. SDK trong chế độ dev sẽ tải danh sách sản phẩm từ tệp này.

Ví dụ

[
    {
        "description": "Well styled modern avatar image",
        "id": "avatar",
        "imageURI": "{path-to-image}",
        "price": "100 RUB",
        "priceCurrencyCode": "RUB",
        "priceValue": "100",
        "title": "Premium avatar",
        "getPriceCurrencyImage": "return ''"
    }
]

Khi gọi mua hàng, sẽ hiển thị mock của hộp thoại với các tùy chọn mua hàng thành công và hủy bỏ, để bạn có thể kiểm tra cả hai kịch bản.

Hướng ngang.

Hướng dọc.

Các đối tượng hoặc hàm nhân tạo mô phỏng đối tượng thực. Được sử dụng để kiểm tra mã mà không phụ thuộc vào tài nguyên hoặc thành phần bên ngoài.

Trong '' có thể thêm đường dẫn đến hình ảnh.