# Aktör Bağlantıları Nelerdir ?

Unreal Engine’de çok oyunculu oyunlarda, bir aktörün replikasyonu, sunucu ve istemciler arasında aktör verilerinin her zaman tutarlı ve senkronize olmasını sağlar. Bu süreç, oyun dünyasında yer alan aktörlerin **oluşturulması, güncellenmesi ve yönetilmesi** gibi yaşam döngüsü olaylarını kapsar. Ayrıca, aktörlerin **değişken (Variable) değerlerinin güncellenmesi** ve **remote procedure call (RPC'ler)** gibi önemli ağ işlemlerinin sorunsuz şekilde çalışmasını sağlar.

İşte **Aktör Bağlantıları** ile ilgili üç temel özellik:

* **Aktörün Yaşam Süresi Senkronizasyonu**: Bir aktör replikasyon yaptığında, aktörün yaşam süresi sunucu ve istemciler arasında senkronize edilir. Örneğin, sunucu bir replikasyonlu aktör oluşturduğunda, istemciler bu durumu bilgilendirilir ve kendi kopyalarını oluştururlar. Benzer şekilde, sunucuda bir aktör yok edildiğinde, istemci üzerinde de otomatik olarak yok edilir. Bu süreç, oyun dünyasında aktörlerin uyumlu bir şekilde var olmalarını sağlar.

{% tabs %}
{% tab title="Sunucuda Aktör Oluşturulduğunda" %}

<figure><img src="https://499018633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZiZeirBAvbtaBiMPpunl%2Fuploads%2FYM8bnQV1oXvIytdmpZoj%2Fimage.png?alt=media&#x26;token=9b46368a-54df-47ef-bb7d-49fde8f1f242" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="İstemciler Bilgilendirildiğinde" %}

<figure><img src="https://499018633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZiZeirBAvbtaBiMPpunl%2Fuploads%2FD7kMVAgFM84DSV2PcWI4%2Fimage.png?alt=media&#x26;token=28238878-52b0-4800-9db4-26eece5ec046" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Aktör Sunucuda Yok Edildiğinde" %}

<figure><img src="https://499018633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZiZeirBAvbtaBiMPpunl%2Fuploads%2F1i7FvugMF3T19ZwxteW5%2Fimage.png?alt=media&#x26;token=34270796-280c-48a6-9aca-fef36818526a" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="İstemciler Bilgilendirildiğinde" %}

<figure><img src="https://499018633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZiZeirBAvbtaBiMPpunl%2Fuploads%2F13poH6i4tCEu1cbTy5K2%2Fimage.png?alt=media&#x26;token=83c077e7-0a23-465f-b821-c2ccb56d66e1" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

* Bir aktörde **replikasyon için işaretlenmiş bir değişken** varsa, bu değişkenin değeri **sunucuda değiştiğinde** otomatik olarak istemcilere iletilir. Böylece, aktörün durumu tüm istemcilerde **tutarlı** ve **senkronize** bir şekilde güncellenir. Bu sayede, **oyuncular arasındaki veri tutarsızlıkları önlenir** ve herkes aynı oyun dünyasını deneyimler. Örnek:<br>
* Bir oyuncunun **canı azaldığında**, bu değişiklik tüm istemcilere yansıtılır ve herkes aynı güncellenmiş değeri görür.
* Bir aktör **yok edildiğinde**, istemcilerde de aynı yok olma olayı gerçekleşir.

{% tabs %}
{% tab title="Aktörün Değişkeni Sunucuda Değiştirildiğinde (bOpen)" %}

<figure><img src="https://499018633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZiZeirBAvbtaBiMPpunl%2Fuploads%2FNJj6B6JQozWyQdH4B01h%2Fimage.png?alt=media&#x26;token=2d975fbb-d637-486d-bcd0-0a6a8b8dcc9e" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="İstemciler Bilgilendirildiğinde" %}

<figure><img src="https://499018633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZiZeirBAvbtaBiMPpunl%2Fuploads%2FR8b0eGbyO1Om47ErkJQ9%2Fimage.png?alt=media&#x26;token=ee3179f7-9136-4617-93d1-d1d77c38b973" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

* **RPC'ler (Remote Procedure Call)**: RPC'ler, sunucu ve istemciler arasındaki etkileşimi yönetir. Bir event **Multicast RPC** olarak tanımlandığında, bu event sunucuda çağrıldığında, sunucu bu aktörü replicate eden her istemciye bir mesaj gönderir ve her istemcinin bu eventi aktörün kendi kopyasında çağırmasını sağlar.&#x20;
* Ayrıca, **İstemci ve Sunucu RPC'leri** ile, yalnızca sunucunun sahibi olan istemciyle mesajlaşabilirsiniz. Bu yöntem, daha özelleştirilmiş ve kontrollü ağ etkileşimleri sağlar.

{% tabs %}
{% tab title="Sunucu Multicsat RPC" %}

<figure><img src="https://499018633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZiZeirBAvbtaBiMPpunl%2Fuploads%2FPZzxOeiw8bs9VFGNChCX%2Fimage.png?alt=media&#x26;token=406d5e7c-657d-4ff7-992d-c4e576a8b73e" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="İstemciler Bilgilendirildiğinde" %}

<figure><img src="https://499018633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZiZeirBAvbtaBiMPpunl%2Fuploads%2FwuXXcu6FczUC6dR8oEdw%2Fimage.png?alt=media&#x26;token=525a8255-9bc8-4b09-b8a7-6cbf8df0504e" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}
