Tam Yeni Başlayanlar İçin Go ile Oyun Yapımı
(threedots.tech)Kodlamada Eğlenceyi Yeniden Bulmak: Oyun Geliştirerek Tükenmişliği Aşmak
- Geliştirici topluluklarında sık görülen bir şikayet: kodlamaya olan tutkunun kaybolması
- Tükenmişliği aşmak için bir ipucu: kodlamadan yeniden keyif almak adına kendi oyununu yapmak
- Oyun geliştirerek programlamaya bağlanma üzerine kişisel deneyim paylaşımı
- Oyun geliştirmek için Go dili ve Ebitengine kütüphanesinin kullanılması öneriliyor
Oyun geliştirmenin temel prensipleri
- Filmlere benzer şekilde oyunlar, hızlı biçimde art arda gösterilen görüntülerin (frame) toplamıdır
- Oyunlar görüntüleri gerçek zamanlı üretir ve kullanıcı girdisine göre bir sonraki frame'i değiştirir
- Oyunlar temelde sonsuz bir döngüdür; görüntü çizme ve mantık güncelleme tekrar eder
Proje kurulumu
- Go modülü oluşturma ve Ebitengine kütüphanesini ekleme
- Oyun arayüzünün asgari düzeyde uygulanmasıyla boş bir pencere çalıştırma
Varlık yükleme
- Programcı çizimleri kullanılması veya ücretsiz varlıklardan yararlanılması öneriliyor
embedpaketi kullanılarak varlıkların koda yüklenmesi
Görsel çizimi
- Tüm çizim işlemleri
Drawmetodu içinde gerçekleştirilir ebiten.ImageiçindekiDrawImagemetodu kullanılarak başka bir görselin üzerine görsel çizilirDrawImageOptionsyapısı üzerinden görselin konumu, dönüşü ve ölçeklendirmesi ayarlanır
Oyun mantığı
Gameyapısı oyun durumunu tutar veUpdatemetodu ile durumu değiştirir- Örnek olarak oyuncunun konumu (X, Y) vektörü olarak tutulur
Hareket
Updatemetodunda oyuncunun konumu güncellenerek hareket uygulanır- Klavye girdisine göre oyuncunun konumu değiştirilir
Zamanlayıcı
- Oyun içinde zamana bağlı mantık değişiklikleri için zamanlayıcı uygulanır
Timeryapısı kullanılarak belirli zaman aralıklarında olay tetiklenir
Oyun nesneleri
- Oyuncu gibi oyun nesneleri kapsüllenerek yönetilir
- Her nesnenin kendi
UpdateveDrawmetodları vardır
Nesne oluşturma
- Meteor nesneleri oluşturulur ve ekranın kenarlarından spawn edilir
Gameyapısı meteor nesnelerini takip eder
Mermi ateşleme
- Mermi ateşleme mantığı ve cooldown zamanlayıcısı uygulanır
Playermermi oluşturur veGamebunları takip eder
Çarpışma algılama
- Çarpışma algılaması için
Rectyapısı veCollider()metodu uygulanır - Oyunun
Updatekısmında nesneler arasındaki çarpışmalar kontrol edilir
GN⁺'un görüşü
Bu yazıdaki en önemli nokta, geliştiricilerin tükenmişliği aşmasına ve kodlamaya olan tutkusunu yeniden kazanmasına yardımcı olacak bir yol önermesidir. Oyun geliştirme, yaratıcı ve eğlenceli projeler üzerinden kodlama becerilerini pratik etme ve aynı anda yeni bir dil ya da kütüphane öğrenme fırsatı sunar. Bu yazı, geliştiricilere kodlamayı yeniden bir hobi olarak keyifle yaşayabilmeleri için ilham verirken, Go dili ve Ebitengine kütüphanesiyle oyun geliştirmeye yönelik temel yaklaşımı anlatarak ilgi uyandırıyor.
1 yorum
Hacker News görüşleri