Kaydedilmiş (Saved) oyunlar nasıl oluşturulur

1
Published on 9 Nov, 2014. Last updated 25 Feb, 2019

Construct 2 kayıtlı oyunlar yapmak için kolay bir yöntem sunmaktadır. Bu oyunculara oyunları kaydetme, sonra gelip oyunu yükledikten sonra kaldıkları yerden devam etmeye olanak sağlamaktadır. Bu uzun oyunlar için önemli, özellikle leveller veya bölümler uzun olan oyunlarda daha önemli olmaktadır. WebStorage kullanılarak çok basit düzeyde “son seviyeye (level) ulaşılan” kayıtlar yapmak mümkün olmakla birlikte, her son objenin durumunu tamamiyle kaydetmek genellikle çok zordur. [System object] [2] (Sistem objesi) Kaydet ve Yükle faaliyetleriyle tam olarak, çok az çaba harcayarak kaydet oyunlarını kapsamlı olarak işlerlik kazandırarak size istediğinizi yapmaya imkan sağlıyor.

Basit kayıtlı oyun desteği

Belli tuşlara basıldığı zaman sadece sistemdeki Kaydet ve Yükle faaliyetlerini kullanarak kayıtlı oyunları eklemenin basit bir yolu. Örnek:

Mobile oyunlar için tabiî ki bir yerlerde dokunmatik tuşlar kullanmalısınız, ancak işi kolay tutmak için masaüstü oyunlara odaklanacağız.

Kayıtlı oyunlar diskte tarayıcı tarafından saklanır. Bu oyuncuların bilgisayarlarını veya cihazlarını kapatıp açtıktan sonra ertesi gün geldiklerinde hala oyunlarını başarıyla yükleyebilecekleri anlamına gelir. Şunu not etmek gerekir ki kayıtlı oyunlar tarayıcınıza özel ve ilişkili olacaktır. Örnek vermek gerekirse, Firefox ve Chrome kayıtlı oyunları ayrı ayrı kaydedecek; eğer oyuncu oyununu Chrome’u kullandığı sırada kaydederse, daha sonra Firefox’a geçerse kayıtlı oyunu yükleyemeyecektir.

Kayıtlı oyunlar cache’de kaydedilmez. Tarayıcı cacheleri, internet sayfalarındaki görüntüler gibi dosyaları tekrar tekrar yüklememek için bunları kaydetmek için var olan çok fazla geçici olan bir depodur ve mütemadiyen temizlenmektedir. Kayıtlı oyunlar kaybolmaz (şanslıyız), onlar WebStorage veya IndexedDB’nin birinde kaydedilmektedir, bunlar devamlı depolardır ve kullanıcının cachesini temizlemesinden etkilenmemektedir.

Hafıza yuvalarına Kaydetmek

Sıklıkla oyunculara çoklu oyun kayıtları yapmaya izin vermek yararlı olmaktadır. Bu işteHafıza yuvalarına kaydın yaptığı iştir. Her bir yuva farklı kaydın saklandığı ayrı dosyalar gibidir. Oyuncuya kayıt yapabileceği yuvalar kümesi sunabilirsiniz veya kayıtlı oyunlara kendi isimler girmesine izin vermektedir.

Çoğu tarayıcının internet sayfasına ne kadar veri yükleyebileceğinin bir sınırı olduğunu not etmek gerekmektedir. Çoğu oyunlar için bu bir problem olmayabilir ancak çok sayıda ayrı kayıt yuvaları olursa kayıt limitleri aşılabilir. Sınırı aşmamak için en iyi yol kayıt yuvalarının sayılarını sınırlı tutmaktır. Kayıt yok davranışlarının uygun kullanımı da kayıtlı oyunların küçük olmasına yardım etmektedir (aşağıya bakın)

Tamamlanmış Başlatıcılar

Kaydedilme zaman alabilir ve oyun bu sırada çalışıyor olabilir. Kayıt tamamlandığında, sistem Kaydedilme tamamlandı başlatılır. Benzer şekilde yüklemenin bitmesi zaman alır ve bu bittiği zaman Yükleme tamamlandığında tamamlanır. Kayıt faaliyeti sonrası oluşan değişimler, Kayıt tamamlandığında yazısı başlamadan öncesini de kaydetmiş olabilir.

Kaydedilmemiş olanların yuvalardan yüklenmeye çalışılması sonucu, Yükleme başarısız oldu yazısını başlatır. Eğer kullanıcı yüklemek için bir kayıt yuvası seçiyorsa, bu olayda yeni bir oyun başlamak istiyor olabilir.

’Kayıt Yok’(No Save) Davranışı

[No Save davranışıyla] hiçbirşey kaydedilmez ve yüklemelerden etkilenmez. Sahneler ve arka planlar gibi bazı sabit objelere Kayıt Yok davranışını eklemek iyi bir uygulamadır. Yine otomatik olarak güncellenen HUD ve metin objeleri içinde kullanılabilir. Bu oyunda hiçbir değişikliğe yol açmaz aksine kayıtlı oyunlar daha küçük olur ve kayıt ve yüklemeler daha hızlı olur, çünkü gereksiz bilgiler atılmış olmaktadır.( Sürekli öngörünümü daha efektif çalışması için gereklidir.)

Kayıttan sonra projenin değiştirilmesi

Kayıtlı oyunlar projelerinizdeki değişikliklere uyumlu olmalıdır. Oyunlarınızdaki değişkenleri, davranışları veya diğer objeler gibi çeşitli şeyleri ekleyebilmeli, kaldırabilmeli ve yeniden sıralayabilmelisiniz. Oyununuza eklediğiniz yeni şeylerin kayıtlı oyunlarda çalışmayacağını not etmek gerekir, bu yüklerken oyununuzu etkilemeyecektir. Ek olarak oyundan kaldırdığınız bir şey yeniden yüklediğinizde artık yüklenmeyecektir. Kayıtlı oyunları etkilemeden bireysel olayları silebilirsiniz ancak tüm obje tiplerini, layoutları (çalışma sayfalarını) veya katmanları tümüyle silerseniz, bunlar kayıtlı oyundan geriye yüklenmeyecektir.

İleri Konular

Kayıtlı oyun özelliğini ekleyebilmede buraya kadar aktarılanlar yeterlidir. Ancak üstdüzey kullanıcılar kayıtlı oyun sistemleri hakkında daha fazla detaylı bilgi için ileriki konularla ilgilenebilirler.

Hangi kayıt yuvalarının kullanıldığının takibi

Kaydet/Yükle sistem faaliyetleri hangi kayıt yuvalarının dolu olduğunu belirtmemektedir. Bunu takip etmenin en iyi yolu WebStorage objesinde kendiniz için bazı ek meta veriler oluşturarak saklamanızdır. Örnek vermek gerekirse, ne zaman bir yuvaya (slot) kaydettiğinizde, ek olarak WebStorage anahtarına kayıt yuvasında kayıt olduğunu belirtip yazın. Oyuncu isimleri veya hatta verinin URI’si gibi oyunun küçük ekran görüntüleri gibi diğer meta verilerini ekleyebilirsiniz. Artık kaydettiğiniz WebStorage verisini kullanarak hangi yuvaların (slotların) dolu olduğunu söyleyebilirsin. Bu meta-veri anahtarlarını uyarlayarak kayıtlı oyun verilerini temizleyerek veya reset atarak diğer operasyonları uygulayabilir, örnek olarak bunları kaldırarak tekrar yuvaları (slotları) boş olarak gösterebiliriz.

Ne kaydedildi ne kaydedilmedi

Oyunun tüm durumu – durum değişkenlerini dahil, global ve yerel değişkenler, davranış özellikleri, efektler, partiküller, cari çalan sesler vb. kaydedilir. Bununla birlikte bazı istisnalar vardır, ancak bunlardan hiçbiri şaşırtıcı değildir. Takip eden şeyler kaydedilmez ve yüklemelerden etkilenmez:

- Giriş durumu ( Örnek farenin pozisyonu veya oyuncunun son bastığı tuş veya dokunduğu yer)

- AJAX talepleri

-WebSocket bağlantıları

- XML objesi

-User Media ( Kullanıcı Medya) video veya ses destekleri

-Facebook bağlantısı

-WebStorage durumu

-CocoonJS/Windows 8 durumu

- Herhangi bir platformda herhangi uygulama satın alımları

-‘No Save’(Kayıt yok) davranışıyla bağlı olan objeler

JSON verisini doğrudan Kullanmak

Kayıt tamamlandığında veya Yükleme Tamamlandığında başladığında, sistem SaveStateJSON ifadesi kayıtlı oyunlar için tüm JSON verilerinin şart döndürmesidir. Bu tetikleyiciler dışında SaveStateJSON ifadeleri boş şart döndüreceğini not etmek gerekir; tetikleyiciler verilere doğrudan ulaşmak için tek fırsatınızdır.

Kendi serveriniz varsa, kendi serverinizin veri tabanında kayıtları tutabilir, AJAX objeleriyle servera JSON verilerinizi göndererek paylaşılan kayıtlı oyunlar yapmanız mümkün. Buna alternatif olarak Windows 8 ve Clay.io gibi bazı platformlar kullanıcı olarak bağlanılarak verileri kaydetmeye imkan sağlamakta böylece log in yapıldıktan sonra verilerinize her hangi bir yerden ulaşmak mümkün olmaktadır. Bu kullanıcılara nereden olursa olsun kayıtlı oyunlarına erişme imkanı vermektedir.

JSON koşuluna geri dönmek isterseniz, JSON dan yükle sistem faaliyetini kullanarak oyunları yükleyebiliriz.

Versiyonlaştırma

Projenizi genelde değiştirebilirsiniz ve eski oyunlar yinede iyi bir şekilde yüklenebilir. Bununla birlikte bazı üst düzey kullanıcılar kayıtlı oyunlarının hangi projeden geldiğini takip etmek isteyebilir. Versiyon değişkeni oluşturun ve 1 ile başlatın. Sonra, eğer oyununuzun yeni bir versiyonunu yayınlarsanız, değişkenin ilk değerini değiştirin. 2 gibi. On load complete (yükleme tamamlandı) çalıştığında global değişken yüklenir ve Versiyon değeri aynı zamanda Kaydet faaliyetiyle kullanılır. Bu oyuna pek çok yeni obje eklediğinizde yararlı olabilir ancak eski oyunları yüklerken bunların yok edilmesi ve saklanmasını istersiniz.

  • 0 Comments

Want to leave a comment? Login or Register an account!