|
Half Life Nedir [ ? ]
|
||||
| Yazar | Mesaj | |||
|
||||
|
Mahmut Birgul Administrator ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Half Life Nedir [ ? ]
Half Life Nedir [ ? ] Half-Life enginesi nedir ? HL quake tabanlı bir enginedir. Quake 2'nin geliştrilerek sekeleton bazlı modelleme, geliştirilmiş sanal zeka ve geliştirilmiş grafikler eklenmiş halidir. Quake ile HL'ninengine çekirdeği aynıdır; aynı şekilde harita veya model işleyim, aynı şekilde programlanırlar. Half-Life iyi bir enginemidir ? HL enginesi hatasız bir engine değildir. HL'deki bu mod yapımlarının çoğalması ve amatör yapımların çoğunun kodunun denetim fonksiyonlarını içermeden kodlanması sonucu HL hem hileye açık, hemde hatalara açık bir engine durumana düşürmüştür. HL ile eskimiş quake 2 teknolojisini biraz daha geliştirilmek istenmesine karşın artık enginenein quake 2 çekirdeğinin geleceği en son noktaya gelinmiştir. Bununda sinyallerini nerede ise her bir ayda çıkan; kullanıcıya yeni harita, yeni model yada yeni mod eklentisi gibi gösterilmeye çalışan yamalar vermektedir. Half-Life MOD yapımı için uygunmudur ? Sierra ve valve'nin HL'yi biraz daha gündemde tutmak için geliştirdikler satış stratejisi HL'yi modlar için uygun hale getimiştir. HL amatör olarak mod yapımi için en uygun enginedir ama eger gelişmiş bir mod yapılacaksa kesinlikle HL seçilmemelidir. Peki niçin uygun değildir diye soracak olursanız; oyun teknolojileri şuanda çok gelişmiş bir düzeye gelmiştir ve bu gelişme sonucu ortaya kolay programlanan ve gerekli olan kodları zaten bünyesinde bulunduran engineler mod yazarları için piyasa sürülmey başlanmıştır. Valvenin tüm çabalarına rağmen HL bunların biraz daha geriden izlemektedir. Bir diğer hususda HL diğer enginelere göre MOD tasarımcıları için biraz daha fazla yardım içermesidir. Unutmayınızki yeni başlayan biri için yardım kelimesi çok önemli bir kelimedir. Half-Life'da programlama mantığı Evet geldik asıl konuya bu bölümü biraz daha samimi olarak anlatacağım. Şimdi HL'de programlama mantığının temeli "event"dır yani olay. (Burada bir husus var bazı kişiler HL progrmalma mantığının obje programlama olduğunu savuna bilirler. Bu çok yanlış ve anlaşılmaz bir açıklamadır. Obje programlama mantığı C++'nın mantığıdır.)Event programlama mantığı bir olay gerçekleştiğinde ne yapılacağını önceden belirlenmesidir. Örneğin : Eğer sana ateş edilirse en yakındaki adama hedef al ve ona saldır. Veya VB'nin mantığı şu buttona tıklanınca şu kodu çalıştır gibi. HL'de programlama mantığının haricinde birde enginenin çalışma prensibi vardır. Şimdi HL enginesi iki bölümden oluşur; Server ve Client. (Sunucu ve istemci) Server'da oyunla ilgili tüm mantıksal işlemler bulundurulur. Örneğin oyunun yapısı, oyuncular, canavarlar, silahlar, entityler v.b. Client'de ise oyuncuda çalışan grafikler ve sadece oyuncuda çalışması gereken kodlar bulunur. Örneğin skor tablosu, gelen mesajların ekrana yazdırılması, ateş edilince ekranın kırmızılaştırılması gibi. Multi player bir oyunda server bölümü server'da çalışır, client bölümü oyuncuda. Single player'da ise hem server hemde client oyuncuda çalışır yani bilgisayarınız hem serverlık hemde clientlik yapar. Peki bu iki kod nasıl birbiri ile anlaşır. Şimdi bu iki kod bir biri ile pek anlaşmaz bu anlaşmayı engine yapar. Yani koda a şu oyuncu haritanın şurasına gitmiş hemen bunu client'e göndereyim diye bir kod yazmazsınız bu gibi işleri server bizim yazdığımiz kodları kullanmadan kendi kodları ile işi götürür ama siz bu adam buraya gider ise ekrarna şu mesajı yaz diye ek bir event oluşturursanız o zaman kendi kodlarına ek olarak sizin yazdığınız kodu kullanır. Ya iyide bu client'e hiç iş düşmüyo tüm işleri server yapıyo peki niye koymuşlar bunu ? Şimdi ben size bir örnek vereceğim CS'deki alma menusü nasıl çalışır. Siz "b" tuşuna basınca client kodu server koduna "menudeki objeleri bana gönderder"der, Server koduda sizin buy bölgesinde olup olmadığınız kontrol eder ve t'ni yada ct'nin silah listesini gönderir. Sonra client kodu ekrana bir menu çizer ve seçmeniz için klavyeden basacağınız tuşu bekler. Siz tula bastıktan sonra client kendisi silah ve oyuncuların kodlarına karışamadığı için server'a "yaw ben şu silahlara falan ulaşamıyor sen benim yerime şunu şunu oyuncuya veri ver bi zahmet" der serverda oyuncuya client'den gönderildiği bilgiye göre silah ve mühimmat ekler. Umarım anlamışsınızdır. Peki server'dan client'e mesaj geliyomu ? Tabiki geliyor. Gene cs den bir örnek vericem şimdi siz bir sis bomabası attınız. Hemen server haritanın içinde sisbombası modelini koyar ve patlaması için geri sayımı başlatır. Bomba patlayınca ekranı bem beyaz yapmak gerekir. Eee tabiki server'ın olmayan ekranını değil oyuncunu ekranını. Server hemen client'e bir mesaj çeker ve derki "yaw ben ekranı beyazlatamıyorum sana zahmet şu ekranı beyazlat". Clientde hemen ekranı beyazlatma efektini kullanır ve ekran beyazlar. | |||
Çevrimdışı
|
|
|
||
|

Arama
Üye Listesi
Yardım





