oyun etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
oyun etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

1 Eylül 2009 Salı

Basit bir chat uygulaması

Eventmachine ile istemci/sunucu modelinde hazırladığım basit bir sohbet uygulamasına http://github.com/airy/EM-simpechat adresinden ulaşabilirsiniz.

20 Ağustos 2009 Perşembe

Bir Oyunun Anatomisi - II

İnternet üzerinde çalışan çok kullanıcılı bir oyun, birden fazla katman ve öğeden oluşur. Bu katmanlara ve öğelera kısa bir bakış atalım.


İstemci katmanı
İstemci katmanı, kullanıcının bilgisayarında çalışan parçadır. Bu katman, sunucu katmanı ile internet bağlantısı üzerinden haberleşir.

Bu katmanda, yükleyici program, kullanıcı arabirimi ve eklentiler çalışır. Ayrıca oyunda kullanılan modeller, sesler, görseller gibi veriler de burada tutulur.

Yükleyici program, oyun ve oyunla ilgili dosyaları güncellemek ve oyunu yüklemekle görevlidir. Yükleyici programın her zaman ayrı olması gerekmez, oyun istemcisinin bir parçası olarak da tasarlanabilir.

İnternet tarayıcısı bazlı oyunlarda ise tüm bu görevleri üstlenen öğeler bir web sunucusunda tutularak, tarayıcı ile erişim sağlanmaktadır.

Sunucu Katmanı
Sunucu katmanı; kullanıcıların, internet üzerinden uygun araçlarla erişebilecekleri, servis sunucularını içeren katmandır. Bu katmanda bulunan sunucular ve görevleri şunlardır:
  • Kimlik Sunucusu: Kullanıcıların, kullanıcı adı ve şifrelerinin kontrol edildiği sunucudur.
  • Güncelleme Sunucusu: Kullanıcı katmanında bulunan dosyaların güncellemesi için gerekli yamaları servise sunan sunucudur.
  • Web Sunucusu: Kullanıcıların, hesaplarına eriştikleri ve oyunla ilgili web hizmetlerinin verildiği sunucudur.
  • Oyun Sunucusu: Oyun ile ilgili işlemlerin ve hesaplamaların yapıldığı sunucudur. Kimi zaman birbirinden bağımsız (paralel) dünyalar oluşturmak için, kimi zaman ise oyunun kullanıcı yoğunluğu farklı bölgelerini çalıştırmak için birden fazla oyun sunucusu bulunabilir.
  • Sohbet Sunucusu: Kullanıcıların, birbirleri ile haberleşmelerini sağlayan sunucudur.
Veri Katmanı
Veri katmanı; internet üzerinden erişilemeyen, oyun içi ve oyuncu bilgilerini tutan veri tabanlarının bulunduğu katmandır.

Yukarıda, sunucu olarak bahsettiğimiz tüm öğeler, sunucu yazılımlardır. Kullanıcı yoğunluğuna bağlı olarak tümü tek bir makinada bulunabileceği gibi, her biri ayrı makinalarda bulunabilir ve hatta ihtiyaç halinde bir servis (sunucu) birden fazla makinada da çalışabilir.

16 Ağustos 2009 Pazar

Bir Oyunun Anatomisi - I

Bir mmo oyun tasarlarken, birden çok parçayı bir araya getirmemiz gerekiyor. Bu parçaların hepsi programlama ile ilgili değildir. Genel olarak oyuncuların en sık karşılaştıkları parçalar, en az programlama gerektiren parçalardır. Hatta diyebiliriz ki, oyuncunun programlama kısmı ile her karşılaşması bir hata (bug) demektir.

Ben bu parçaları iki grup halinde grupluyorum. İlk grup, oyuncuların gözü önünde olan kısımları içeriyor. İkinci grup ise, oyuncunun görmeyeceği, duymayacağı kısımlar, yani programlama ile ilgili parçalar. Genel olarak ikinci gruptaki parçalar, birinci gruptaki parçaların sunumu ve kullanımı ile ilgilidir.

Birinci gruptaki yer alan parçalar şunlardır;
  • Hikaye
  • Görevler
  • Karakterler
  • Nesneler
  • Etkileşim
  • Müzik
  • Görsel efektler
  • İşitsel efektler
  • Arabirim
  • ...

İkinci grupta ele alacağım programlama ile ilgili maddeler ise şunlardır;
  • İstemci yazılımı
  • Sunucu yazılımı
  • Veri depolama sistemi
  • Yardımcı araçlar
  • Oyun eklentileri (addonlar)
  • ...

Tüm bu başlıkları detaylı olarak incelemeyi düşünmüyorum. Daha çok ikinci gruba yoğunlaşarak, bu grupta yer alan parçaların uygulamada nasıl olacağına odaklanacağım. Uzun süredir, extreme programming teknikleri ile çalışmaktan dolayı, uygulamada ve yazılarımda belirli bir sırayı takip etmeyebilirim. Bu konuda şimdiden affınıza sığınıyorum.

Sözlük

Makaleler içerisinde yer alan teknik teirmler ve türkçe karşılıklarını, toplu halde bu başlık altında bulabilirsiniz.