MARIO.GAME
tr
Geliştirici günlüğü

Perde Arkası: Mario.Game Adventure'ı Yaparken

Mario.Game Adventure'ı nasıl yaptık: kodla çizilmiş piksel sanat, klasik hissi veren fizik, Web Audio ile üretilen müzikler ve bir bot tarafından test edilen sekiz bölüm.

5 dk okuma

Perde Arkası: Mario.Game Adventure'ı Yaparken

Mario.Game Adventure, oyun motoru, görsel dosyası ve ses dosyası olmayan tek bir JavaScript dosyasından oluşuyor. İşte nasıl ortaya çıktığı.

Kodla çizilen piksel sanat

Küçük ve büyük haliyle kahraman, Walker'lar, Koopa'lar, Spiny'ler, Piranha Plant'ler, boss, bloklar, bulutlar ve kaleler dahil her sprite, kaynak kodda renk harflerinden oluşan satırlar olarak tanımlanıyor ya da küçük şekil rutinleriyle çiziliyor. Oyun açılırken bunları ekran dışı canvas'lara bir kez çiziyor, ardından her karede ekrana kopyalıyor. Her dünyanın kendi renk paleti var: aynı tuğlalar yer altında mavi, gece buz gibi, kalede ise gri oluyor.

Klasik hissi veren fizik

Bir platform oyununun kaderi hareketle belirlenir. Kahramanın yürüme ve koşma hızları ayrı; ayrıca ivmelenme, yavaşlama, yön değiştirirken sert bir kayma ve değişken zıplama yüksekliği var: zıplama tuşunu basılı tutarken ve hâlâ yükselirken yer çekimi daha düşük. Değerleri, koşarak yapılan zıplama üç karelik boşlukları rahatça aşana, yürüyerek yapılan zıplama aşamayana kadar ayarladık. Böylece koşmak öğrenmeye değer bir beceri gibi hissettiriyor. Ayrıntılar için hareket rehberini oku.

Sekiz bölüm, dört tema

Her dünya tek bir ana fikir sunuyor:

  1. Dünya 1 — temel bilgiler: borular, çukurlar, güçlendirmeler ve ardından tavanı alçak bir mağara.
  2. Dünya 2 — üzerine basılamayan Spiny'ler ve bulutların arasındaki ilk hareketli asansörler.
  3. Dünya 3 — her şeyi karıştıran bir gece bölümü, ardından dipsiz bir uçurumun üstündeki ağaç tepeleri.
  4. Dünya 4 — kalabalık kale yolları, ardından ateş çubukları, lav ve bir boss içeren bir kale.

Her bölümü oynayan bir bot

Her bölümün bitirilebildiğinden emin olmak için, ölümsüzlük açıkken her aşamayı duvarlara ve boşluklara zıplayarak geçen bir test botu yazdık. Takıldığı yere baktık: birkaç kez bir piksel fazla yüksek bir zıplamayı ya da ulaşılamayan bir bloğu ortaya çıkardı ve bölümü düzelttik. Her bloğun zıplama yüksekliği kontrolüyle birlikte bu yöntem, bulabildiğimiz tüm ulaşılamaz noktaları yakaladı.

Web Audio ile müzik

Müzikler, tarayıcının Web Audio API'sini kullanan minik bir sequencer tarafından canlı olarak üretiliyor: melodi ve bas için kare ve üçgen dalgalar, davul için gürültü. Her dünyanın kendine özgü bir melodisi var; ayrıca güçlendirmeler, bayrak, oyun sonu ve final için kısa jingle'lar da bulunuyor. Süre 100'e düştüğünde tempo yükseliyor, tam da beklediğin gibi.

Hemen dene

Mario.Game Adventure'ı oyna ya da takılırsan doğrudan çözüm rehberimize göz at.

Daha fazla haber