Hazır Oynatıcı Web

Modern web için oyunlar geliştirme.

Tom Greenaway

İyi oyun geliştiriciler, belirli bir platformun sunduğu fırsattan yararlanmak için o platformun benzersiz özelliklerini benimsemenin önemli olduğunu bilir. Peki web'in benzersiz özellikleri nelerdir? Peki bir web oyununu tanımlayan şey nedir?

Google I/O 2019'da web oyunları ekosisteminin durumu, modern web oyunu geliştirme için mevcut en iyi uygulamalar ve sektörün gidişatıyla ilgili düşüncelerimi paylaştım. Bu blog gönderisinde, konuşmamla ilgili önemli noktaların bazılarını özetleyeceğim. Tamamını YouTube'da izleyebilirsiniz:

Web oyunlarının zorlukları

Google'a katılmadan önce Duet adında bir mobil oyun geliştirdim ve bu oyun yaklaşık 20 milyon kez indirildi. Bu deneyim sayesinde, bir oyundan başarılı bir iş kurmak için gereken üç temel bileşenin şunlar olduğunu öğrendim:

  • İşlevsel bir oyun
  • Kullanıcılar
  • Kullanıcılardan para kazanmanın bir yolu

Bir oyun geliştirici bu üç unsur olmadan başarılı olamaz. Günümüzde bu son iki nokta en önemli noktadır. WeChat ve Facebook Instant Games gibi kapalı HTML5 ekosistemleri, HTML5 kullanarak oyun oluşturmanın mümkün olduğunu göstermiştir.

Modern en iyi uygulamalar

"İşlevsel oyun" ifadesiyle, bir oyunun çalışmasını sağlayan en temel üç unsurdan bahsediyorum:

  • Performans
  • Görseller
  • Ses

Web platformu, bu alanların her birinde son birkaç yılda önemli gelişmeler kaydetti. CPU performansı için WebAssembly adlı yeni ve yüksek performanslı bir standarda erişebiliyoruz. Grafik açısından bakıldığında, WebGL 1.0 tarayıcılar arası iyi bir desteğe sahiptir ve WebGPU gibi gelecekteki standartlar, web platformunu Vulkan ve Metal'e benzer, daha geniş kapsamlı bir grafik programlama geleceği için konumlandırıyor. Son olarak, web sesi için ortak Web Audio API'sını ve daha yakın zamanda Audio Worklet API'sini sunuyoruz.

Unity kısa süre önce, HTML5 tabanlı platformlar için 2D oyunlar geliştirmeye odaklanan Project Tiny adlı yeni bir çalışma zamanını tanıttı. Project Tiny, Unity'nin motor yapısına yeni bir modüler tasarım uygulayarak çekirdek Unity motorunun 1 megabayttan küçük olmasını sağladı.

Savaşa giren iki tank.
Unity'nin Tanks Demosu HTML5 üzerinden dışa aktarıldı.

Teknik açıdan baktığımızda, web oyunu geliştirmeyi benimsemenin tam zamanı.

Döngüye girme

Mükemmel bir oyun kesinlikle iyi performans, grafikler ve sesten ibaret değildir. Bir oyunun mükemmel olması için de eğlenceli olması gerekir.

Eğlence, üründe ölçülmesi zor bir unsurdur. Bir oyun eğlenceli, ilgi çekici veya yenilikçiyse kullanıcılar arkadaşlarına anlatmak, diğer bir deyişle bu deneyimi paylaşmak ister. Bu fırsattan yararlanmak ve bunu web'le birleştirmek, viral büyüme için büyük potansiyel ortaya çıkaran güçlü bir kombinasyondur. Özellikle web'de, merkezi bir keşif platformu olmaksızın, kullanıcı edinmeye yönelik en iyi yolumuz oyunlarımızın mümkün olduğunca viral olmasını sağlamaktır.

İyi oyun geliştiriciler, belirli bir platformdan (yazılım veya donanım düzeyinde) çıkar elde etmek için o platformun benzersiz özelliklerini benimsemenin önemli olduğunu bilir. Örneğin, hareket kontrolleri olan bir konsol için oyun oluşturuyorsanız muhtemelen bu hareket kontrollerini benimsemenin en iyi yolunu düşünmeniz gerekir.

Başka bir deyişle, platformunuzu geliştirmek için kullandığınız platform kullanıcılarının beklentilerine saygı göstermeniz gerekir. Web kullanıcıları neler bekliyor? Web içeriğinin hızlı yüklenmesini ve hızlı bir şekilde etkileşimli olmasını beklerler. Konuşmamda, oyunların hızlı bir şekilde yüklenmek, kullanıcıların oyun dünyalarına çekmek, kullanıcıların katılımını sağlamak ve deneyimlerini paylaşmaları için kullanıcılara ek teşvikler sağlamak üzere tasarlandığı hem web'deki hem de web dışındaki yollarla ilgili birkaç örneği ele aldım.

Minimalist sanat tarzlarına sahip üç oyun.

Kişisel olarak, başarılı bir web oyunu oluşturmanın anahtarının web'in bu benzersiz özelliğinden yararlanmaktan geçtiğine inanıyorum. Özellikle, web'in URL yapısının gücü ve kullanıcıların katılabileceği paylaşım döngüsü.

Construct 3 kullanarak oluşturduğum, URL'yi eğlenceli ve ilgi çekici bir şekilde kullanan bir web oyunu örneğini burada bulabilirsiniz.

Bir oyun için seviye düzenleyici arayüzü.

Space Board, dokunmatik kontrollerle mobil cihazlarda veya klavye girişiyle masaüstü bilgisayarlarda oynanabilen çok basit bir oyundur. Amaç, engellerden oluşan bir labirentte ilerlemek ve sonunda hedefe ulaşmak.

Space Board URL'den benzersiz bir şekilde nasıl yararlanıyor? Düzey yapısını URL'nin içine kodlayarak. Tüm seviyeler 10'a 10'luk bir nesne ızgarası şeklinde tanımlanır (ör.duvarlar, düşman kuleleri, anahtarlar, kilitli kapılar vb.). Ardından URL, tüm bağımsız ızgara konumlarını ve içeriklerini listeler. Duvar, W karakteriyle temsil edilir. Boş boşluk, alt çizgi karakteridir.

Aşağıda bir örnek verilmiştir:

https://io-space-board.firebaseapp.com/?gameWorld=_wwwwwwwwww___ww__eww_k__d___ww___ww___ww_wwwww_www_wwwww_www___ww___ww_s_ww_f_ww___ww___wwwwwwwwwwww

Çok çirkin ama işini yapıyor.

Oyuncu, Uzay Panosu'nda bir seviyeyi tamamladıktan sonra yukarıda gösterilen basit seviye editörünü kullanarak kendi seviyesini tasarlama fırsatına sahip olur. Oyuncuların kendi seviyelerini tasarlamalarını sağlayarak onlara kişiselleştirme fırsatı sunuyoruz. Bir kullanıcı, oluşturma ve özelleştirme yoluyla bir oyunla bağ kurduğunu ve sahiplenme duygusunu hissettiğinde, bu "oyu" tüm dünyayla paylaşmak ister.

Bir oyunu paylaşma isteği, web oyunlarımızla ulaşmayı amaçladığımız viral döngünün başlangıcı. Bu oyun tasarımı ve paylaşma mekanizması, bunun sadece bir örneği olsa da pek çok başka olasılık da vardır. Daha fazla örnek için konuşmamı izlemenizi öneririz.

Yatırım geri dönüşü

Şu an için, oyun geliştiricilerin web oyunları üzerinden nasıl gelir elde edebileceğiyle ilgili iki farklı düşünce tarzı vardır:

  • Oyunlardan doğrudan para kazanma
  • Bu kullanıcıları bir edinme kanalı olarak ele alma

Web oyunlarını bir edinme kanalı olarak ele almak, oyuncularınızın ilgisini çekmek ve oyuncularınızı daha büyük iOS/Android/masaüstü ikili programınızı indirmeye ikna etmek için iOS/Android/masaüstü oyununuzun web sürümünden yararlanmanız anlamına gelir. Daha sonra, iOS/Android/masaüstü platformunun yerleşik ödeme ve faturalandırma arka uçlarıyla gelir elde edersiniz.

Para kazanma genellikle reklam ve mikro işlemlerin bir karışımıdır. Web'in oyun içi reklamcılıkta mobil platformlarla rekabet etmesi için hâlâ yapılacak işler var. Örneğin, Ödüllü Video Reklamlar gibi biçimler birkaç yıldır mobil oyunlar için son derece popüler olmasına rağmen bu biçimleri yalnızca reklam ağlarının web'de dağıttığını görebiliyoruz.

Bununla birlikte, geleneksel banner reklamlar ve geçiş video reklamları aracılığıyla reklam vererek açık web'de başarısını sürdüren oyun geliştiriciler de var. Bu biçimler hakkında daha fazla bilgi için Oyunlar için AdSense'e göz atın.

Mikro işlemler için, uygulanabilecek sınırsız sayıda ödeme yöntemi nedeniyle web tam bir esneklik sağlar. Ancak bu kalitenin iki tarafı da kötüdür. Bunun olumsuz tarafı, oyuncuların keşfettikleri yeni bir web sitesine, platforma özel mobil mağaza ödeme yöntemlerini bildiklerine kıyasla daha az dolaylı bir güven duymalarıdır.

Ödeme İsteği API'si, web'de daha tutarlı bir ödeme kullanıcı arayüzü sunan çözümlerden biridir. Bu API, tarayıcı tarafından gösterilen bir kullanıcı arayüzünü çağırarak kredi kartları ve fatura adresleri gibi ödeme ayrıntılarının edinilmesini kolaylaştırır. Ancak ödeme ayrıntılarının alınması, işlem yapmanın yalnızca ilk adımıdır. Arka uç faturalandırma platformuna da ihtiyacınız var.

Gelecek

Geçtiğimiz birkaç yıl içinde şaşırtıcı derecede başarılı birkaç web oyunu gördük. Slither.io, web'in sunduğu olağanüstü erişim ve viral büyüme fırsatlarını gösteren, hem web hem de platforma özgü bir iş kurmuştur. Poki.com gibi portallar kullanıcı deneyimlerinde yenilikler yapıyor ve her gün Subway Surfers veya Crossy Road gibi mobil rakiplerininkine uygun oyunların da bulunduğu yeni oyunlar yayınlıyor.

Dahası, açık web'in dışına bakarsanız web oyunlarının zaten yükselişe geçtiğini görebilirsiniz. WeChat ve LINE gibi kapalı ekosistemler, açık web'de oynanamayan ancak HTML5 ve WebView'lar gibi web teknolojileri üzerine kurulmuş tatmin edici oyunlar sunar. Bu durum, internetin platforma özgü mobil oyunlarla rekabet edebilecek bir doğruluk düzeyine ulaştığının açık bir göstergesi.