Rehber

HTML5 Oyunu Kendi Sitenizde Barındırma: Yükle, Göm, Düzelt

Statik bir oyun klasörü için uygulamalı bir anlatım: nereye konur, nasıl açılır, bir sayfaya nasıl eklenir ve başlamadığında nelere bakılır.

Polarzinho, bir oyun kutusunu parlayan bir borudan bir sunucudan, yüzen adalı bir oyun gösteren tarayıcı penceresine doğru itiyor.

HTML5 oyunu nasıl barındırılır, tek cümleyle: game/ klasörünün içeriğini statik dosya sunan herhangi bir web barındırmasına yükleyin, alt klasörleri olduğu gibi bırakın ve klasörün adresini tarayıcıda açın. Marketplace'imizdeki her sürümün barındırmaya hazır game/ klasörü olduğu gibi çalışır: PHP yok, veritabanı yok, derleme adımı yok, hesap yok; barındırmanın yapması gereken tek şey dosyaları oyuncunun tarayıcısına teslim etmektir.

Her şey yolunda gittiğinde iş bundan ibaret. Bu rehber ise öteki günler hakkında: boş ekran, 404 hataları, bir MIME türü iletisi, hiçbir şey göstermeyen bir iframe. Bu şablonları biz satıyoruz; bu yüzden onu kendi paketlerimiz için bir saha kılavuzu olarak okuyun. Gridspark ve Velvet Pool kopyalarını geçici bir yerel sunucudan yayınladık, Gridspark'ı bilerek birkaç farklı biçimde bozduk ve diğer sürümlerin herkese açık kılavuzlarını okuduk. Bir ifade kendi testimizden değil de bir kılavuzdan geliyorsa bunu belirtiyoruz.

Bir HTML5 oyununu barındırmak gerçekte neyi içerir?

Statik bir barındırma dosyaları saklar ve istendiğinde tarayıcılara verir. Oyununuzu asla kendisi çalıştırmaz; onu oyuncunun tarayıcısı çalıştırır. Sürümlerimizin gereksinimlerinin bu kadar sade okunmasının nedeni budur: güncel bir tarayıcı, dosyaları HTTP veya HTTPS üzerinden sunan bir barındırma ve oynamak için PHP, veritabanı ya da hesap yok. game/ klasörü zaten derlenmiştir; bu yüzden yayımlamak için npm de derleme adımı da gerekmez.

Başlamadan önce bilmeniz gereken iki sınır var. Bazı sürümlerin statik olmayan isteğe bağlı parçaları vardır: Zabum ve Ricopop, PHP 7.4 veya üstü ile yazılabilir bir klasör gerektiren isteğe bağlı bir skor tablosu listeler; TypeScript sürümleri (Beep Out, Pinloop, Trimora, Twirldrop, Riffvolt, Sunset Rally, Tenguin, Mochi Monsters, Deepforge, Barricade Z ve Zabum) ise yalnızca kaynağı düzenleyip yeniden derlemek istiyorsanız Node.js gerektirir; sürümü her kılavuz verir. Velvet Pool, Puttide, Ricopop ve Gridspark düz JavaScript ile gelir; düzenlemeleriniz ile yüklediğiniz dosyalar arasında derleme adımı yoktur. Oyunu teslim edildiği gibi yayımlamak için bunların hiçbirine gerek yok. Barındırmanın kendisi de satın almaya dahil değildir. Mağaza koşulları, barındırmayı ve sunucunuza kurulumu, herhangi bir çalışmadan önce fiyat teklifi verdiğimiz ayrı hizmetler arasında sayar; destek, sağlanan dosyaların kurulumu ve kullanımı hakkındaki soruları kapsar.

Nelerin yüklendiği ve nelerin bilgisayarınızda kaldığı:

  • game/ içindeki her şeyi yükleyin: index.html, betikler, stiller, görseller, sesler ve yazı tipleri.
  • source/ (düzenlenebilir geliştirici kopyası), documentation/ (kılavuz) ve ZIP dosyasının kendisini dışarıda bırakın. Zabum kılavuzu, source/ klasörünü yanlışlıkla yüklemeyi main.tsx gibi 404 hatalarının bir nedeni olarak sayar.
  • Koşulların istediği gibi, paketle gelen üçüncü taraf lisans bildirimlerini ürününüzün yanında saklayın.

Örnek olarak kullandığımız sürüm Gridspark'a bakın

HTML5 oyunu nasıl barındırılır: ZIP'ten oynanabilir sayfaya kısa yol

Bu adımlar Velvet Pool, Puttide, Gridspark ve Sunset Rally kılavuzlarının kurulum bölümlerini ve test ettikten sonra eklediğimiz kontrolleri izler. Örnek olarak Gridspark'ı kullanıyoruz; çünkü en sık yayınlayıp bozduğumuz sürüm o.

  1. Paketi bilgisayarınızda açın. game/ (yayımladığınız klasör), source/ (düzenlenebilir kopya) ve documentation/ (kılavuz) klasörlerini göreceksiniz.
  2. İsteğe bağlı ama ucuz: yerelde test edin. game/ içinde bir terminal açın, python -m http.server 8765 komutunu çalıştırın ve http://localhost:8765/ adresine gidin. Orada oynuyorsa dosyalar sağlamdır ve sonradan çıkan her sorun barındırmaya aittir.
  3. Nihai adresi şimdi seçin, örneğin https://your-site.example/games/gridspark/. Alt klasör çalışır, çünkü oyunun içindeki yollar göreceli; Gridspark kılavuzu public_html/games/gridspark/ önerir.
  4. game/ içeriğini, barındırmanızın dosya yöneticisi ya da bir FTP istemcisiyle o klasöre yükleyin ve her alt klasörü koruyun. index.html bir seviye daha derinde değil, doğrudan klasörün içinde olmalıdır.
  5. Klasörün adresini https üzerinden, sondaki eğik çizgiyle açın. Gridspark'ta başlangıç ekranına dokunursunuz (tarayıcılar sese izin vermeden önce bir dokunuş ya da tıklama bekler) ve Oyna'ya basarsınız.
  6. Bir hamle yapın, sayfayı yeniden yükleyin ve menünün artık Devam et sunduğunu kontrol edin. Bu, tarayıcının ilerlemeyi adresiniz için kaydettiğini kanıtlar.
  7. Sitenizden klasöre bağlantı verin ya da bir sayfaya gömün (aşağıdaki iframe bölümüne bakın).

Bitmiş bir Gridspark klasöründe index.html, style.css, gridspark.config.js, src/ ve assets/ yan yanadır ve kılavuz bunları bir arada tutmanızı ister. Diğer sürümler farklı düzenlenmiştir (Velvet Pool'da tek bir stil sayfası yerine css/ ve assets/ vardır), ama kural aynıdır: klasörü geldiği gibi yükleyin.

index.html'ye çift tıklamak neden boş bir sayfa verir?

Açtığımız sürümler kodlarını ES modülleri olarak yükler ve tarayıcılar file:// adreslerinden modül yüklemeyi reddeder. Gridspark'ı doğrudan diskten Chromium'da açtık ve koyu, boş bir ekran aldık. Konsol, betiğin CORS politikası tarafından engellendiğini söylüyordu; gerekçe, http ve https gibi protokol şemaları dışında çapraz kaynak isteklerinin desteklenmediğiydi. Aynı klasör yerel bir web sunucusundan sunulduğunda başlangıç ekranı hemen göründü. Velvet Pool, Puttide, Sunset Rally ve Gridspark kılavuzlarının hepsi aynı şeyi söyler: oyunu file:// üzerinden açmayın.

  • Çalışmaz: file:///C:/Users/you/games/gridspark/index.html
  • Çalışır: yerel bir test sunucusundan http://localhost:8765/ ya da barındırmanızda https://your-site.example/games/gridspark/.

Yalnızca Chromium'u test ettik. Kılavuzlar engeli yaygın tarayıcıların yaptığı bir şey olarak tarif ediyor; bu yüzden her yerde bunu hesaba katın.

Oyunu bir iframe ile sayfaya gömün

Oyunu zaten sahip olduğunuz bir sayfanın içinde göstermek için bir iframe'i yüklenen klasöre yöneltin. Test ettiğimiz etiket şu:

<iframe src="https://your-site.example/games/gridspark/" title="Gridspark" allow="fullscreen; autoplay" width="960" height="540" style="border:0"></iframe>

  • src: klasörün tam adresi, https ve sondaki eğik çizgiyle.
  • title: kısa bir ad. Ekran okuyucular çerçeveyi tarif etmek için bunu kullanır.
  • allow="fullscreen; autoplay": kılavuzlar gerektiğinde bir iframe'de tam ekrana ve otomatik oynatmaya izin vermenizi söyler. Testimizde bu olmadan başka bir adresten gelen çerçevede tam ekran devre dışıydı ve Gridspark tam ekran düğmesini gizledi. Eski allowfullscreen özniteliği allow ile aynı sonucu verdi. Sayfayla aynı adresteki bir çerçeve her iki durumda da tam ekran alır.
  • sandbox özniteliği yok. Yalnızca sandbox="allow-scripts" ile Gridspark hiç başlamadı: çerçeve null kaynak alır, tarayıcı oyunun kendi betiğini engelledi ve yerel depolama bir güvenlik hatası verdi. allow-same-origin eklemek çalıştırır, ancak MDN, aynı kaynaklı bir çerçevede bu ikilinin korumayı kaldırdığı konusunda uyarır; bu yüzden kendi barındırdığınız bir oyun için sandbox'ı kullanmayın.

Telefonlara göre boyutlandırın

Sabit bir 16:9 kutu masaüstünde doğru, telefonda yanlış görünür. 390 px genişlikte aspect-ratio 16/9 olan bir iframe yalnızca 219 px yüksekliğindedir ve Gridspark'ın menüsü Günlük meydan okuma düğmesinin altında kesildi. Çerçeveye ekran yüksekliğinin dörtte üçü olan 75svh yükseklik vermek menünün tamamını gösterdi. Kendi sayfanızın da bir viewport meta etiketine ihtiyacı var; açtığımız altı paketin hepsi kendi index.html dosyasında birini taşır, oyun doğrudan açıldığında ölçeklenmesinin nedeni budur.

Yan yana iki telefon ekranı; her biri bir iframe içinde Gridspark başlangıç menüsü olan bir sayfa gösteriyor: solda menüyü kesen kısa bir 16:9 çerçeve, sağda menünün tamamını gösteren uzun bir çerçeve.
Aynı oyun, aynı telefon genişliği. Solda: 16:9 bir iframe. Sağda: 75svh yüksekliğinde bir çerçeve.

Oyun, etrafında hiçbir sayfa olmadan kendi adresinde çalışır; dolayısıyla o adresi açan düz bir bağlantı her zaman geçerli bir yedektir.

Aynı şekilde gömülen 3B bir sürüm olan Velvet Pool'a bakın

WordPress ve diğer site oluşturucular

Klasörü barındırmak ve onu bir sayfada göstermek iki ayrı iştir ve WordPress'te iki farklı araç kullanır. Aşağıdakilerin hepsi WordPress belgelerinden ve geliştirici başvurusundan geliyor; WordPress'i kendimiz çalıştırmadık.

  1. Klasörü barındırmanızın dosya yöneticisi veya FTP ile sitenin klasör ağacına yükleyin (örneğin WordPress klasörlerinin yanında bir games/ klasörü). Ortam Kitaplığı üzerinden değil: WordPress'in kodu, kullanıcı unfiltered_html yetkisine sahip değilse .html ve .js dosyalarını izin verilen yükleme türlerinden çıkarır.
  2. Herhangi bir sayfaya dokunmadan önce klasörün adresini tek başına açın. WordPress'in belgelediği varsayılan Apache kuralları, bir isteği yalnızca eşleşen bir dosya ya da klasör yoksa index.php'ye gönderir (!-f ve !-d koşullarının sınadığı budur); bu yüzden yüklenen klasör olduğu gibi sunulur.
  3. iframe'i bir Özel HTML bloğuna ekleyin. WordPress, unfiltered_html yetkisi olmayan kullanıcıların, örneğin bir Katkıda Bulunan'ın, yazı kaydedildiğinde iframe etiketlerinin silindiğini belgeler. Çerçeve kaydettikten sonra kayboluyorsa sayfayı kimin düzenlediğine bakın.

Diğer site oluşturucular ve içerik yönetim sistemleri: bunları test etmedik ve hiçbiri hakkında bir iddiada bulunmuyoruz. Oyun her yerde aynı iki şeye ihtiyaç duyar: yüklenen klasör için bir yer ve iframe kabul eden bir gömme öğesi. Bir oluşturucu ikisini de sunmuyorsa klasörü statik dosya sunan herhangi bir yerde barındırın ve adresine bağlantı verin.

Başlamadığında: bir sorun giderme listesi

Herhangi bir şeyi değiştirmeden önce tarayıcının geliştirici araçlarını (çoğu masaüstü tarayıcıda F12) açın ve Konsol ile Ağ sekmelerine bakın. Aşağıdaki her hata orada kırmızı bir satır bırakır ve içindeki dosya adı genellikle nedeni gösterir.

Boş ekran

Şu sırayla kontrol edin: adres http:// veya https:// ile başlıyor; Konsol'da kırmızı satır yok; dosya adları büyük ve küçük harfleriyle tam olarak korunmuş; ve 3B sürümler için WebGL2 mevcut (Velvet Pool kılavuzu donanım hızlandırmayı açmanızı söyler). Linux barındırmalar Game.js ile game.js'yi iki ayrı dosya sayar, Windows saymaz; bu yüzden bilgisayarınızda çalışan bir klasör yüklemeden sonra bozulabilir. Velvet Pool ve Zabum kılavuzlarının ikisi de harf büyüklüğü konusunda uyarır.

src/main.js, yazı tipleri veya görseller için 404

Klasörün bir kısmı ulaşmadı ya da bir seviye fazla derine ulaştı. Bunu yalnızca index.html, style.css ve ayar dosyasını yükleyerek yeniden ürettik: ekran boş kaldı ve Ağ sekmesi src/main.js ile her yazı tipi için 404 listeledi. Eksik klasörleri yükleyin ya da index.html açtığınız adreste dursun diye içeriği yukarı taşıyın. Görseller veya sesler eksik ya da bozuksa Zabum kılavuzu FTP'yi ikili ya da otomatik kipte kullanmayı veya bir ZIP yükleyip barındırmanın dosya yöneticisinde açmayı önerir. 404 eksik bir dosyadır. Bir MIME sorunu değildir.

Sayfa stilsiz yükleniyor, devasa simgelerle

Bir yeniden yazma ya da temiz URL ayarı klasörü sondaki eğik çizgi olmadan sunarsa göreceli yollar bir seviye yukarıya çözülür. Bunu, klasör sayfasını yönlendirmeden döndüren bir test sunucusuyla yeniden ürettik. Tarayıcı /games/gridspark/ içindeki dosyalar yerine /games/style.css ve /games/src/main.js istedi, 404 aldı ve menüyü ham düğmeler ve aşırı büyük simgeler olarak çizdi. Klasöre sondaki eğik çizgiyle bağlantı verin ya da doğrudan index.html'ye yöneltin.

Stilsiz gri düğmeler ve aşırı büyük siyah simgeler içeren beyaz bir sayfa gösteren tarayıcı penceresi: stil sayfası olmayan Gridspark menüsü.
Yönlendirme yapmayan bir sunucuda, sondaki eğik çizgi olmadan bir adreste açılan Gridspark: stil sayfası yok, betik yok.

Modül betiğinde MIME türü hatası

Testimizde konsolda şu yazıyordu: Failed to load module script: Expected a JavaScript-or-Wasm module script but the server responded with a MIME type of "text/plain". Tarayıcılar modül betikleri konusunda katıdır. Kılavuzlar, sunucunun .js dosyalarını bir JavaScript MIME türüyle, .wasm dosyalarını ise application/wasm olarak göndermesi gerektiğini söyler; Sunset Rally kılavuzu .mjs'i de ekler. Ağ sekmesi her dosyanın Content-Type değerini gösterir. Açtığımız derlemelerde modüller .js dosyalarıdır. Kendi .mjs dosyalarınızı eklerseniz ve eski bir Apache yapılandırması onları eşlemiyorsa .htaccess içindeki tek satır sorunu çözer; kendi sitemizin kullandığı satırın aynısı:

AddType text/javascript .mjs

Test makinemizdeki Apache 2.4.62 tür tablosu js ve mjs'yi zaten text/javascript'e, wasm'i application/wasm'e eşliyor; yani standart bir kurulumun bu satıra ihtiyacı yok. Diğer sunucular kendi tablolarını tutar; sunucunuzu yöneten kişiye sorun.

CORS politikası tarafından engellendi

Farklı bir adresten yüklenen modül betikleri ve yazı tipleri, o adresten bir Access-Control-Allow-Origin üst bilgisi gerektirir. Testimizde bir portta duran bir sayfa, ikinci sunucu bu üst bilgiyi gönderene kadar başka bir porttaki modül betiğini yükleyemedi. Pratikte çözüm sıkıcıdır: oyunun dosyalarını tek bir adreste tek bir klasörde bir arada tutun; paketler de böyle kurulmuştur. Oyunu başka bir sitedeki iframe'e gömmek için CORS'a ihtiyacınız yok, çünkü iframe yalnızca oyunun adresini yükler. Bir gömmede görülen CORS hatası genellikle yukarıda anlatılan bir sandbox özniteliğinden gelir.

https sayfasında karma içerik

https üzerinden sunulan bir sayfa, http üzerinden betik ya da iframe yükleyemez: tarayıcılar ikisini de engeller ve MDN engellenen türler arasında yazı tiplerini ve fetch isteklerini de sayar. iframe src içinde ve yazdığınız her tam adreste https:// kullanın. Oyunun kendi dosyaları göreceli yollar kullanır; bu yüzden açtığınız adresin şemasını izler. https adresi hiç açılmıyorsa önce barındırmanızın panelinde sertifikayı etkinleştirin.

iframe “bağlanmayı reddetti” diyor

Testimizde Chromium şu satırı kaydetti; ilk tırnakların içinde engellenen çerçevenin adresi yer alıyor: Refused to display 'https://game-host.example/' in a frame because it set 'X-Frame-Options' to 'sameorigin'. Oyunu barındıran sunucu bu üst bilgiyi gönderiyordu. SAMEORIGIN yalnızca aynı adresten gömmeye izin verir, DENY ise hiçbir zaman izin vermez; bir Content-Security-Policy üst bilgisindeki frame-ancestors kuralı benzer bir iş görür. Oyunun klasörü için üst bilgiyi değiştirin ya da sayfayı ve oyunu tek bir adresten sunun.

Başta ses yok

Tarayıcılar ilk dokunuş ya da tıklamaya kadar sesi engeller; Gridspark'ın dokunarak başlama ekranıyla açılmasının nedeni budur. Bir kez dokunun, sonra ses seviyesini ve tarayıcının izinlerini kontrol edin.

Barındırmaya hazır derlemesiyle golf sürümü Puttide'a bakın

Oyunu yarı eski bir sürüm sunmadan güncelleme

Tarayıcılar betikleri önbelleğe alır; bu yüzden bir yüklemeden sonra siz ya da bir oyuncu hâlâ eski oyuna bakıyor olabilirsiniz. Gridspark kılavuzu kuralı verir: düzenlemelerinizi yedekleyin, oynanabilir dosyaları tek bir set olarak değiştirin, test edin ve barındırma eski modülleri önbelleğe alıyorsa sert yenileme yapın. Eski ve yeni modülleri karıştırmayın. Birbirini içe aktaran çok sayıda küçük dosyadan oluşan bir oyunu yarı yolda güncellemek yanlıştır.

Service worker kullanan sürümler kendi önbelleğini tutar. Zabum bir PWA'dır: bir güncellemeden sonra sert yenileme yapın (Ctrl veya Cmd artı Shift artı R). Ses dosyalarını değiştirdiyseniz sw.js içindeki önbellek adını değiştirin (kılavuzun örneği zabum-v5'ten zabum-v6'ya gider) ve o dosyayı yükleyin. Siteniz bir CDN'in arkasındaysa onun önbelleğini de temizleyin. Okuduğumuz kılavuzlardan yalnızca Zabum bir PWA'dır; Velvet Pool ve Puttide kılavuzları, kendilerinin kurulabilir bir çevrimdışı uygulama olmadığını açıkça söyler.

Dosyaları değiştirmeden önce değişiklik günlüğünü okuyun ve düzenlediğiniz her şeyin bir kopyasını saklayın. Kayıtlar yüklediğiniz klasörde değil, her oyuncunun tarayıcısında yaşar; bu yüzden dosyaları değiştirmek onları silmez.

İsteğe bağlı PHP skor tablosuyla PWA sürümü Zabum'a bakın

İlerleme nerede kaydedilir ve tarayıcıyı temizlemek ne yapar?

Bu sürümlerde hesap ve sunucu veritabanı yoktur. Ayarlar, dil, geçerli oyun ve kişisel rekorlar tarayıcının yerel depolamasında durur ve Polar Games'e hiçbir şey gönderilmez. Gridspark kılavuzu gridspark.standalone.v1.* anahtarlarını adlandırır; bir hamleden sonra gridspark.standalone.v1.best ve gridspark.standalone.v1.save anahtarlarını gördük.

Gridspark ana menüsü: Devam et düğmesi, Yeni oyun bağlantısı, Günlük meydan okuma düğmesi ve kayıtlı en iyi skor.
Tekrar ziyarette menü Devam et seçeneğini ve kayıtlı en iyi skoru sunar. İkisi de tarayıcıdan okunur.

Depolama klasöre değil, adrese (protokol, ana makine ve port) aittir. Bunu üç yolla denetledik. Aynı adresteki başka bir klasörde duran bir Gridspark kopyası aynı kayıtlı değerleri okudu. Aynı oyun 127.0.0.1 yerine localhost olarak açıldığında boş başladı, aynı adres başka bir portta da öyle. Zabum kılavuzu, http ile https'in, www ile www olmayanın ve alt alan adlarının her birinin kendi depolaması olduğunu ekler.

  • Site verilerini veya çerezleri temizlemek kayıtlı oyunu ve rekorları siler. Gizli pencerede ilerleme yalnızca oturum boyunca kalabilir; depolama engellendiğinde oyun çalışmaya devam eder.
  • Başka bir tarayıcı ya da cihaz sıfırdan başlar. Senkronizasyon yok ve giriş yapılacak bir hesap yok.
  • Adresi değiştirmek herkesi sıfırlar: http'den https'e, www'dan www olmayana, yeni bir alan adı.
  • Oyunu aynı adresin başka bir klasörüne taşımak, Gridspark testimizin gösterdiği gibi kayıtları korur.

Bağlantıyı paylaşmadan önce bir test listesi

  1. Nihai adresi oyuncularınızın kullandığı tarayıcılarda açın: Chromium tabanlı bir tarayıcı (Chrome veya Edge), Firefox ve Safari. Kendi testlerimiz yalnızca Chromium'da yapıldı; yani bu liste sizin çalıştıracağınız liste.
  2. Gerçek bir telefonda açın; önce oyunun kendi adresinde, sonra sayfanızın içinde, iki yönde de.
  3. Geliştirici araçlarında bağlantıyı kısıtlayın ve ilk yüklemeyi izleyin. Yerel sunucumuzdan sıkıştırılmadan sunulan Gridspark, başlangıç ekranına ulaşmak için yaklaşık 0,5 MB ve 26 istek gerektirdi. Chromium 1,6 Mbit/s ve 150 ms gecikmeye kısıtlandığında ekran yaklaşık 3 saniye sonra göründü. Kopyamızda game/ klasörünün tamamı yaklaşık 3,4 MB; Velvet Pool yaklaşık 7,3 MB, Puttide yaklaşık 15 MB. Eski telefonlar zorlanıyorsa Zabum kılavuzu barındırmanızın dosyaları gzip ya da brotli ile sıkıştırdığını kontrol etmenizi önerir.
  4. Bir hamle yapın, yeniden yükleyin ve Devam et ile en iyi skorun orada olduğunu doğrulayın.
  5. Bir kez dokunun ve sesin başladığını kontrol edin. İlk dokunuştan önceki sessizlik normaldir.
  6. Gizli bir pencere açın. Kapattığınızda ilerlemeyi unutsa bile oyun yine de çalışmalıdır.
  7. İlk yüklemede Konsol ve Ağ sekmelerini okuyun: kırmızı satır yok, 404 yok.
  8. Bir gömmede tam ekran düğmesinin göründüğünü ve çerçevenin telefonda yeterince uzun olduğunu kontrol edin.

SSS

Bir HTML5 oyununu barındırmak için PHP, veritabanı ya da özel bir sunucuya ihtiyacım var mı?

Teslim edildiği haliyle sürümlerimiz için hayır. Onlar statiktir: game/ klasörünü dosyaları HTTP veya HTTPS üzerinden sunan bir barındırmaya yükleyin ve açın. Zabum ve Ricopop'un, PHP 7.4 veya üstü ile yazılabilir bir klasör gerektiren isteğe bağlı bir skor tablosu vardır.

index.html'ye çift tıklayabilir miyim?

Hayır. Tarayıcılar file:// üzerinde oyun modüllerini engeller ve sayfa boş kalır. Oyunu bir http ya da https adresi üzerinden açın; ister barındırmanız ister python -m http.server 8765 gibi yerel bir test sunucusu olsun.

HTTPS gerekli mi?

Kılavuzlar herkese açık barındırma için HTTPS kullanmanızı söyler. Zabum kılavuzu, Ana ekrana ekle özelliğinin buna ihtiyaç duyduğunu söyler ve bir https sayfası, tarayıcılar karma içerik olarak engellediği için bir http iframe'ini gömemez.

Oyunu bir WordPress sayfasına nasıl eklerim?

Klasörü barındırmanızın dosya yöneticisi veya FTP ile yükleyin, oynadığını doğrulamak için adresini açın, sonra iframe'i bir Özel HTML bloğuna ekleyin. unfiltered_html yetkisi olmayan kullanıcıların iframe'leri silinir; bu yüzden sayfayı düzenleyen kişinin rolünü kontrol edin.

İlerleme nerede kaydedilir ve oyuncular tarayıcı verilerini temizlerse ne olur?

Tarayıcının yerel depolamasında, adres başına. Site verilerini temizlemek onu siler, başka bir tarayıcı ya da cihaz boş başlar ve alan adını değiştirmek ya da http ile https arasında geçmek onu sıfırlar. Hesap yok ve bize hiçbir şey gönderilmez.

Polar Games oyunu benim için barındırıyor mu?

Hayır. Mağaza dosyaları satar. Destek, onların kurulumu ve kullanımı hakkındaki soruları kapsar; barındırma ve sunucunuza kurulum, herhangi bir çalışmadan önce fiyat teklifi verdiğimiz ayrı hizmetlerdir.

Sonraki adım

Web siteniz için HTML5 oyunlarını hâlâ seçiyorsanız, her ürün sayfası gereksinimlerini listeler, kılavuzuna bağlantı verir ve ödemeden önce demoyu oynamanıza izin verir. Önce kılavuzun kurulum bölümünü okuyun: bu rehberdeki iş için kullanacağınız sayfa o.

HTML5 oyun şablonlarına göz atın