---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.4
alternate:
  - https://yandex.com.tr/dev/games/doc/en/concepts/local-launch.md
  - https://yandex.com.tr/dev/games/doc/hi/concepts/local-launch.md
  - https://yandex.com.tr/dev/games/doc/ko/concepts/local-launch.md
  - https://yandex.com.tr/dev/games/doc/ru/concepts/local-launch.md
  - https://yandex.com.tr/dev/games/doc/tr/concepts/local-launch.md
  - https://yandex.com.tr/dev/games/doc/vi/concepts/local-launch.md
  - https://yandex.com.tr/dev/games/doc/zh/concepts/local-launch.md
  - href: tr/concepts/local-launch.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/games/doc/tr/llms.txt

# Yerel sunucudan başlat

<!-- source: tr/_includes/script-common.md -->
<!-- source: tr/_includes/script/index-js.md -->

<!-- endsource: tr/_includes/script/index-js.md -->

<!-- source: tr/_includes/script/requirements-js.md -->

<!-- endsource: tr/_includes/script/requirements-js.md -->

<!-- source: tr/_includes/script/image-modal-js.md -->

<!-- endsource: tr/_includes/script/image-modal-js.md -->
<!-- endsource: tr/_includes/script-common.md -->

Oyun geliştirme ve test sürecini kolaylaştırmak için oyunu yerel bir sunucudan başlatabilirsiniz. Testler [prod-](#prod-env) ve [dev-ortamlarında](#dev-env) yapılabilir.

Oyunu yerel sunucudan başlattıktan sonra SDK'nın tüm işlevlerini kullanabilirsiniz.



## Prod-ortamı {#prod-env}

{% note alert %}

[Yandex Oyunlar platformunda hesap oluşturma](https://yandex.com.tr/dev/games/doc/tr/console/manage-account.md) ve [oyun taslağı oluşturma](https://yandex.com.tr/dev/games/doc/tr/console/add-new-game.md#step-create-draft) gereklidir.

{% endnote %}

Oyunu moderasyon için göndermeden önce son kontrol aşamasında kullanılabilir. Bu modda oyun, gerçek Yandex Oyunlar platformuyla etkileşime girer.

Özellikler:

- Oyun [yandex.com.tr/games](https://yandex.com.tr/games){.external} adresinden açılır.
- Harici hostlara istek göndermek için bunların [CSP kurallarına](https://yandex.com.tr/dev/games/doc/tr/console/add-new-game.md#step-check-host){.external} eklenmesi gerekir.
- Gerçek reklamlar gösterilir.
- Oyuncu Yandex Passport üzerinden giriş yapar.
- Oyuncu verileri ve liderlik tabloları sunucuda saklanır.
- Ürün kataloğu sunucudan yüklenir, satın alımlar sunucuda işlenir.
- Hata ayıklama için adres çubuğuna `&debug-mode=16` parametresi eklenerek [debug paneli](https://yandex.com.tr/dev/games/doc/tr/console/debug-panel.md) kullanılabilir.

Prod-ortamında yerel oyun sürümünü başlatmayı şu şekilde ayarlayabilirsiniz:

- [Manuel olarak](#self-setup)
- [npm paketi kullanarak](#setup-localhost)

### Yerel sunucuyu manuel ayarlama {#self-setup}

1. `localhost` sunucusunu ayarlayın.
1. Oyunu [taslak modunda](https://yandex.com.tr/dev/games/doc/tr/console/test-game.md) açın.
1. Adres çubuğuna `?game_url=https://localhost` parametresini ekleyin.

{% note info %}

Güvenlik nedeniyle `game_url` parametresinde sadece `localhost` domaini desteklenir.

{% endnote %}

### npm paketi ile yerel sunucu ayarlama {#setup-localhost}

1. [Node.JS](https://nodejs.org/en/){.external} sitesindeki talimatları izleyerek `npm` kurun.
1. `npm` ile [@yandex-games/sdk-dev-proxy](https://www.npmjs.com/package/@yandex-games/sdk-dev-proxy){.external} paketini kurun:

    ```console
    npm install -g @yandex-games/sdk-dev-proxy
    ```

1. Oyunu başlatın. Şunları yapabilirsiniz:

   {% list tabs %}

   - Yerel sunucuya proxy yapın

      ```console
      npx @yandex-games/sdk-dev-proxy -h <Yerel sunucu adresi>
      ```

   - Oyun kaynaklarının bulunduğu klasörü belirtin

       ```console
       npx @yandex-games/sdk-dev-proxy -p <Oyun dosyalarının yolu>
       ```

   {% endlist %}

    Paket, SDK kaynaklarına yapılan istekleri oyunun barındırılacağı sunucuya yönlendirir.

Eğer `--app-id` parametresini eklerseniz, başlatma sırasında oyun [yandex.com.tr/games](https://yandex.com.tr/games){.external} adresinden açılacaktır:

```console
npx @yandex-games/sdk-dev-proxy -p <Oyun dosyalarının yolu> --app-id=<Oyun ID>
```

Eğer `--app-id` belirtmezseniz, konsolda oyun için şablon link ve yerel sunucu linki görüntülenecektir.

#### Başlatma parametreleri {#start-params}

#|
|| **Parametre** | **Açıklama** ||
|| `--help` | Yardım. ||
|| `--host`, `-h` | Oyunun yerel sunucusunun host adresi (örneğin `webpack-dev-server` için kullanılır). ||
|| `--path`, `-p` | Oyun kaynaklarının bulunduğu klasör yolu. ||
|| `--port` | Sunucunun açılacağı port (varsayılan: 8080). ||
|| `--app-id`, `-i` | Oyun taslağı ID'si. ||
|| `--csp`, `-c` | `Content-Security-Policy` içeren meta etiketi ekler. Bu etiket, servisteki `index.html` dosyasında oluşturulanla aynıdır. ||
|| `--log`, `-l` | İsteklerin konsola kaydedilmesini aktif eder (varsayılan: açık). ||
|| `--tld` | `yandex.tld` domainini değiştirir, örneğin `yandex.com` (varsayılan: `ru`). ||
|| `--dev-mode` | `true` ise oyun dev-ortamında başlar (varsayılan: `false`, prod-ortamına karşılık gelir). ||
|#



## Dev-ortamı {#dev-env}

{% note info %}

Yandex Oyunlar platformunda hesap oluşturma ve oyun taslağı gerekmez.

{% endnote %}

Aktif geliştirme ve oyun mantığını debug etme aşamasında uygundur. Bu modda oyunun Yandex Oyunlar platformuyla gerçek bir bağlantısı yoktur ve tüm SDK çağrıları [mocklar](*mock) ile değiştirilmiştir, bu sayede sayfa hızlıca yeniden yüklenebilir ve güncellemeler görülebilir.

Özellikler:

- Oyun doğrudan `https://localhost` adresinden açılır.
- CSP kısıtlaması yoktur, harici hostlara istek gönderilebilir.
- Reklamlar yerine sahte içerikler gösterilir, tüm callback fonksiyonları prod-ortamındaki gibi çalışır.
- Oyuncu girişi tarayıcı mock dialogu üzerinden yapılır.
- Oyuncu verileri ve liderlik tabloları `localStorage`'da saklanır.
- Ürün kataloğu [yerel dosyadan](#local-catalog-set) yüklenir, satın alımlar `localStorage`'a kaydedilir.
- Debug için tarayıcı adres çubuğundan [parametreler](#available-params) ayarlanabilir.
- Tarayıcı konsolunda tüm SDK çağrıları modüllere göre gruplandırılarak otomatik olarak kaydedilir.

Dev-ortamında başlatma da [@yandex-games/sdk-dev-proxy](https://www.npmjs.com/package/@yandex-games/sdk-dev-proxy){.external} npm paketi üzerinden yapılabilir. Kurulum talimatları [prod-ortamı](#setup-localhost) ile aynıdır, sadece başlatırken `--dev-mode=true` parametresi eklenmelidir.

Şunları yapabilirsiniz:

{% list tabs %}

   - Yerel sunucuya proxy yapın

      ```console
      npx @yandex-games/sdk-dev-proxy -h <Yerel sunucu adresi> --dev-mode=true
      ```

   - Oyun kaynaklarının bulunduğu klasörü belirtin

       ```console
       npx @yandex-games/sdk-dev-proxy -p <Oyun dosyalarının yolu> --dev-mode=true
       ```

{% endlist %}

#### Tarayıcı adres çubuğu için kullanılabilir parametreler {#available-params}

```ts showLineNumbers
export interface SDKMocks {
    /** Masaüstüne kısayol ekleme izni var mı? */
    canShowPrompt?: boolean;
    /** Oyuncu giriş yapmış mı? */
    isAuthorized?: boolean;
    /** Oyunun yönelimi kilitli mi? */
    lockedOrientation?: ELockedOrientation;
}

/** Mobil ekranda oyunun kilitli yönelimi. */
export enum ELockedOrientation {
    /** Oyun sadece [yatay modda](*landscape) desteklenir. */
    LANDSCAPE = 'landscape',
    /** Oyun her iki yönelimde de desteklenir. */
    NONE = 'none',
    /** Oyun sadece [dikey modda](*portrait) desteklenir. */
    PORTRAIT = 'portrait',
}
```

**Örnek**

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

#### Yerel ürün kataloğu ayarlama {#local-catalog-set}

Ürün kataloğunu mocklamak için proje kökünde `purchases-catalog.json` dosyası oluşturun ve içine [Geliştirici Konsolu'na](https://games.yandex.com/console){.external} eklediğiniz veya ekleyeceğiniz satın alma listesini ekleyin. SDK dev modunda bu dosyadan satın alma listesini yükleyecektir.

**Örnek**

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

Satın alma işlemi çağrıldığında, başarılı ve iptal edilmiş satın alma senaryolarını test etmek için mock dialog gösterilecektir.

[*landscape]: Yatay yönelim.

[*portrait]: Dikey yönelim.

[*mock]: Gerçek nesne veya fonksiyonların taklit edilmiş hali. Harici kaynak veya bileşenlere bağımlılık olmadan kod test etmek için kullanılır.

[*return]: `''` içine görselin yolu yazılabilir.