HTML / JavaScript tabanlı oyunlar yapmak için temel bilgi [kapalı]


17

Oradaki herhangi bir uzmanın, en son HTML standartları ve JavaScript (veya bazılarının HTML 5 olarak adlandırmayı sevdikleri) ile oyun yapmaya başlamak için gerekli olan şeylerin bilgi ve kaynaklarını paylaşıp paylaşamayacağını merak ediyordum. İşlem için gerekli olan JavaScript kütüphaneleri var mı? <canvas>Etiketin yanı sıra , başka hangi HTML parçalarının farkında olmamız gerekiyor?

Yanıtlar:


9

Ses ve Video etiketlerinden haberdar olmalısınız . Kaydedilmiş oyunlar vb. İçin çok fazla veri kaydetmeniz gerekiyorsa Web Depolama oldukça kritiktir.

Zaten birkaç Javascript html5 oyun çerçevesi var, Akihabara oldukça popüler.

Bildiğim kadarıyla diğer kütüphaneler, Jquery ve Fonksiyonel Javascript favorilerim arasında.


her bir çerçevenin güçlü yanları nelerdir? Hangisi en basit, en sağlam ve en temiz kodla? Fonksiyonel Javascript -term "Fonksiyonel" kelimesi ilginç geliyor, gerçekten ne hakkında? Pythonist'e hangi çerçeveyi önerirsiniz?

Web Depolama bir db yapamaz ne sağlar?
expiredninja

@ expiredninja bir veritabanı aslında daha iyi olurdu ama web depolama kullanıcının makinesinde yerel. Hayır barındırma & ajax aramalar vb yapmak daha hızlı. Bu cevap (biraz) modern tarayıcı tabanlı oyunlar için kullanılan teknikleri ile güncel değil.
jdeseno

6

Zaten birkaç çerçeve var: GameQuery ve Akihabara , jQuery'nin animasyonlar, gruplama spriteları, çarpışmaları tespit etme ve oyuncu girdisini okuma gibi oyunla ilgili bazı aktiviteler yapması için bir eklenti.


4

Sadece daha fazla kaynak dışarı atmak için, RaphaelJS'e atın . Güzel bir API'ye sahip çok güzel bir SVG çizim ve animasyon kütüphanesi. Demoları kontrol etmeyi unutmayın.

Genel olarak, <canvas>etiketleri düz DOM manipülasyonu üzerinde öneriyorum (örneğin <div>, hit testi inanılmaz derecede basit hale getirmek için her bir sprite'ı kendi yapmak). DOM manipülasyonunu yanlış ve kötü performans göstermek kolaydır, ancak geleneksel 2d geliştirme stratejileri bir HTML tuvalinde iyi çalışır.


3

Orada bulunan bazı oyun yapma çerçevelerine ek olarak, bir HTML5 Canvas'ta SVG tabanlı animasyonları görüntülemek için bir JS çerçevesi olan Burst Engine'den de haberdar olmalısınız:

http://burst.bocoup.com/

Şimdiye kadar insanların ve etiketlerinden bahsettiklerini gördüm, ancak JS / HTML oyun geliştirme için hayati önem taşıyan diğer DOM şeyleri de var, bunlar arasında 'mousemove' ve 'mouseown' etkinlikleri gibi öğeye EventListener geri çağrıları eklemek gibi şeyler var. Örneğin, bu bulduğu ilk tuval öğesini alır ve tuvali tıkladığınızda, "shootAtClick" olarak tanımladığınız bir işlevi çağırması için ayarlar.

document.getElementsByTagName ("CANVAS") [0] .addEventListener ('mousedown', shootAtClick, false);

Sen eylem görebiliyorum Bu örnekte temel fare kontrolünü kabul etmek Akihabara motorunu genişlettik. (Başlamak için Z tuşuna basın, hareket etmek için ok tuşlarını kullanın, imleç yönünde ateş etmek için fareyi tıklayın.)


3

Hangi tarayıcılarda hangi HTML5 bileşenlerinin desteklendiğinin bilinmesi.

Çapraz tarayıcı uyumluluğu zaman geçtikçe daha iyi ve daha düzenli hale gelmesine rağmen, bazı yeni bileşenler hala tamamen eşit olarak desteklenmemektedir.

Yerel depolama biriminin tarayıcıya özgü bazı farklılıkları olabilir ve eski destek için kesinlikle jStorage veya YUI Storage Lite gibi bir kütüphaneye ihtiyacınız olacaktır .

Web soketleri de tarayıcıya özgü farklılıklar gösterebilir, ancak socket.io uygun bir soyutlama sağlayan umut verici bir kütüphane gibi görünür.

Ses uyumluluğu, farklı tarayıcılar için farklı ses dosyaları gerektiren oldukça önemli bir bileşendir: http://html5doctor.com/native-audio-in-the-browser/

Chrome'un kısa ses dosyalarını çalamamak gibi birkaç önemli ses hatası vardır ve aynı anda birçok sesin çalınması tüm tarayıcının çökmesine neden olabilir.

Önemli olan, soyutlamak ve gerektiğinde eski destek sağlamak için kütüphaneleri kullanarak tarayıcı farklılıklarını anlamaktır.


1

HTML ve JavaScript, oyun geliştirme için oldukça kötü platformlardır, ancak bir tür oyuna karar verene kadar bu önemli değildir. Cevap, birinci şahıs nişancı, RTS veya bulmaca oyunu için radikal olarak farklı olurdu.

Belirsiz olmaya başladığınıza dikkat edin, el-dalgalı cevaplar düzgün görünen rastgele teknolojileri tıkar. Bu, özellikle meşru bir cevabı olan bir soru sormamış olduğunuz bir uyarı işaretidir.

Ayrıca, uygulamaları yazmak için hangi C ++ öğelerine ihtiyacınız olduğunu sorabilirsiniz. Bu bağlıdır. Bize proje hakkında daha fazla bilgi verin, yararlı bir yanıt alabilirsiniz.

Genel olarak, neredeyse tüm web oyunlarının hala Flash olmasının bir nedeni var.


4
Sorunun belirsiz olduğunu ve her yerde cevap olduğunu kabul ediyorum, ancak "HTML ve [JS] ... oyun geliştirme için kötü platformlar" olduğu konusunda hemfikir değilim. Google'ın Pac-Man doodle'ını hatırlıyor musunuz? Düz HTML ve JS. Bence belirli bir sıradan oyun bu platformda oldukça iyi çalışıyor ve web kullanan insanların zaten çalışma zamanı var. (=
drhayes

1
Vay canına, pac-man. Çığır. Hiç kimsenin teknik demolar dışında herhangi bir şey için oyunlarda HTML / JS kullanmamasının bir nedeni var.
John Haugeland

1
@Edmundito: Eğer bu 'sorunun' böyle gitmesi gerektiğini düşünüyorsanız, CW olarak işaretlenmelidir.
Jesse Dorsey

12
-1 değersiz cevap. Sizce web oyunları iyi bir platform değilse, oturun. Bunun neden bu kadar çok oy aldığını bilmiyorum, belki başkaları düşüncelerinizi paylaşıyor, ancak bu soruyu cevaplamaya hiç katkıda bulunmuyor.
Ricket

1
Çocuklar, öfkeden çıkın. Cevap 2010'da bugün 2014'tekinden çok farklıydı. Şu anda bir sürü HTML oyunum var.
John Haugeland
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.