Misafir Misafir
| Konu: Adventure Game Studio v3.0- Başlangıç C.tesi Mart 20 2010, 00:05 | |
| Adventure Game Studio (AGS) ile oyun yapmaya nasıl başlanılması gerektiğini anlatan bu makaleyi yenilememin nedeni hem varolan makalenin AGS’nin eski sürümüne dair olması, hem de makaleyi yayınladığım web sitemin (coolbluegames.com) ölmüş olması. AGS, bir adventure oyunu yapmak için en kullanışlı programlardan biridir. Basit arayüzü ile (gerçi artık o kadar basit değil) yapmak istediğiniz macera oyunlarındaki karakter, envanter eşyaları, dialoglar gibi macera oyunlarındaki önemli öğelerin ayarlarını yapabilirsiniz. Ve AGS ile basit bir macera oyunu yapmak için programlama bilmenize gerek yoktur, ama AGS ile beraber gelen AGS Script'i öğrenirseniz yaptığınız oyuna yeni özellikler ekleyebilirsiniz. Mesela Asporia: Gizli Tehdit gibi bir RPG yapmak için AGS scripting'i bilmek gerekiyor. Yani AGS sadece adventure oyunları yapmaya yaramıyor, isterseniz script kullanarak bir dövüş oyunu bile yapabilirsiniz. Ve en önemlisi de, AGS’nin yeni sürümüyle birlikte oyunda herhangi bir olay gerçekleşebilmesi için (mesela kapıya tıkladığınızda oyuncunun “Güzel kapı” demesi kadar basit şeyler için bile) artık kod yazmanız gerekiyor. Size bazı basit kodlara nasıl ulaşabileşeceğinizi de göstereceğim. AGS Arayüzü Arayüzdeki bazı bölümler AGS-Başlangıç seviyesi için uygun değil ve bir macera oyunu yapabilmeniz için o bölümlere girmek zorunda değilsiniz. Bu bölümlerde "Başlangıç için gerekli değil" yazıyor. O kısımların nasıl kullanıldığını daha sonra yazacağım makalelerde açıklamayı düşünüyorum. General Setting: Buradan oyunumuzla ilgili genel ayarları yapabiliriz. Mesela Resolution ile oyunun çözünürlüğünü, Default transition when changing rooms ile oyundaki odaların değişme efektini filan ayarlayabiliriz. Colours: Oyununuz içinde, seçtiğiniz renk derinliğine göre kullanılabilecek renkleri ve renklerin sayısal değerlerini (kod içinde kullanabilmek için) görebileceğiniz yardımcı bir kısım. Başlangıç için gerekli değil Sprites: Oyunda kullanılacak olan bütün 2D grafik öğelerini buradan oyuna ekleyebilir ve kullanabilirsiniz. Text parser: Metin tabanlı bir oyun yaptığınız takdirde, oyuncunun gireceği kelimelerle ilgili ayarları (mesela eşseslilik veya oyun tarafından ihmal edilecek kelimeler) yapabileceğiniz kısım. Başlangıç için gerekli değil Lip sync: Çok gelişmiş bir oyunda, karakterlerin dialoglarında kullandıklar heceler, karakterlerin dudak hareketlerini belirleyebilir. İşte burada gerekli ayarlar yapılıyor. Başlangıç için gerekli değil GUIs: Oyununuzdaki arayüzlerin ayarları. Mesela default bir AGS oyununda mouse imlecini ekranın üstüne getirirseniz bir menü ortaya çıkıyor. İşte bunları GUIs bölümünden ayarlıyorsunuz. Başlangıç için gerekli değil Inventory Items: Oyundaki envanter eşyaları. Bunlar da anahtar, dergi, yumurta, kalem gibi adventure oyunlarında kullanılacak eşyalar. Dialogs: Oyundaki karakterler arası konuşmalar. Views: Sprite Manager ile oyuna eklediğiniz sprite'ları karakterler ve (eğer animasyon kullanıyorsa) objeler için kullanırken View bölümünden gerekli sprite'ları düzenlemeniz gerekir. Characters: Oyununuza karakter ekleyeceğiniz ve gerekli ayarları yapacağınız yer. Fonts: Oyundaki yazıların fontlarını düzenleme. Başlangıç için gerekli değil Global variables: İleride scriptleri etkin bir şekilde kullanmaya başlayacağınız zaman ihtiyaç duyabileceğiniz bir kısım, global değişkenler. Başlangıç için gerekli değil Scripts: Oyunda kullandığınız scriptleri düzenleyebileceğimiz bir yer. Başlangıç için gerekli değil Plugins: Eğer AGS’ye ek olarak plug-in yüklediyseniz, oyunda bu pluginin kullanımını düzenleyebileceğiniz kısım. Başlangıç için gerekli değil Rooms: AGS içerisindeki en önemli kısımlardan birisi, oyunda kullanılacak sahneler. Kullanımını ayrıntılı bir şekilde anlatacağım. Translations: Eğer oyununuzu birden fazla dilde yayınlamak istiyorsanız, çeviri dosyalarını düzenleyebileceğiniz bir kısım. Başlangıç için gerekli değil İlk Oyunumuzu Yapalım Eveet, artık işe başlayabiliriz. Şimdi AGS'yi açın ve Start a new game'i ve Default Game’i seçin. Çıkan boşluklara oyunun ismini, oyunun sahip olmasını istediğiniz dosya adını yazın data dosyalarının yer almasını istediğiniz klasörü belirleyin. Karşınıza AGS’nin start-up ekranı çıkacak; eğer her AGS’yi açtığınızda bu ekranı görmek istemiyorsanız File/Preferences ile çıkan pencerenin sol tarafındaki Editor Appareance’deki When the editor starts up’tan bunu ayarlayabilirsiniz. Şimdi sağ taraftaki AGS arayüzünden General Settings’i açıp oyunun çözünürlüğünü seçelim. Size tavsiyem şimdilik 320*240'ı ve her ihtimale karşı 32-bit’lik color depth’i seçmeniz. Başka bir tavsiyem de Scripting bölümünden Enforce new-style strings’i ve Enforce object-based scripting’i false yapmanız. Bu seçenekler, AGS’deki bir takım yenilikleri kullanmanızı zorlamaktan başka bir şey yapmıyorlar, başlangıç seviyesindeki bir yapımcının bunları kapatmakta hiçbir kaybı olmayacaktır. Şimdi Paint'i açın ve 320*240 boyunda bir oda resmi yapın. Bu resmi de bilgisayarınıza kaydedip kullanabilirsiniz. Sonra Rooms’tan 1’in Edit room’unu seçip odamızı yaratalım. Background to Display’i Main Background olarak bırakıp yanındaki Change butonuyla odamızı oyuna yükleyelim. (Main Background’ın altındaki import new background, animasyonlu arkaplanlar için filan kullanılıyor. Şimdilik onunla işimiz yok) F5’e (veya AGS’deki Run butonuna veya Build/Run’a) basın ve oyunu test edin. Şimdi odanın tam ortasında hareketsiz bir adamın (adı Roger ) olması ve oyunun pencere içinde açılmış gerekiyor. Roger odanın tam ortasında, çünkü henüz 2 boyutlu düzlemdeki koordinatlarını belirlemedik, ve default olan x=160 y=120 koordinatı kullanılıyor. Roger hareket edemiyor, çünkü henüz Walkable Area'ları düzenlemedik. Room Editor'de mouse'u odanın üstünde gezdirdiğimizde Mouse Pos. yazısının sağındaki sayıların değiştiğini fark ettiniz mi? İşte bunlar oyundaki koordinatlar. Oyuncu karakterin odanın neresinde başlamak istediğini belirleyin (örneğin x=150 y=210 benim yaptığım oda için uygun bir koordinat) ve bu sayıları Characters ekranında Roger'ın (cEgo) sağ alttaki Start in room bölümündeki boşluklarına yazın.(160 - 120'nin yerlerine). Walkable Area'ları ayarlamak için ise Show this room's bölümünden walkable areas'ı seçin. Sonra sağ üstteki çizim butonlarından birini seçerek (mesela Draw Freehand) aynı Paint'te olduğu gibi oyuncunun yürüyebileceği alanları çizin (ve Fill Area ile içini doldurmayı unutmayın.). Mesela benim çizdiğim odadaki gri renkli zemin. Tekrar odayı kaydedip oyunu test edin. Eğer bir şeyleri yanlış yapmadıysanız bu sefer Roger'ın yürüyebildiğini göreceksiniz. Şimdi işi biraz daha ilerletelim. Size hotspotları anlatayım. Hotspotlar, bir adventure oyununda örneğin bir kapıya tıkladığınızda yeni bir odaya geçmeniz veya bir vazoyu incelemek için göz ikonuyla tıkladığınızda size o vazo hakkında bilgi verilmesi gibi olayların sağlandığı room içindeki arealardır. AGS'de hotspotları oyuna nsaıl walkable area eklediyeseniz öyle de ekleyebilirsiniz. Show this room's bölümünden Hotspots'u seçin ve kapının üstünü bu hotspot ile kaplayın. Şimdi kapıyı incelediğimiz zaman bir mesaj çıkmasını istiyoruz. Sağ alttaki menüden yarattığımız Hotspot’ı seçip (sağdaki resimde 1 diyor ama sizin yarattığınız muhtemelen 0’dı) events’e tıklayıp oyuncunun hotspot’la çeşitli etkileşimleri sonucu nelerin gerçekleşeceğini belirliyoruz. Mesela kapıya göz ikonuyla tıkladığımızda ekranda “Guzel bir kapi” yazmasini sağlamak için Look at hotspot’a tıklayın. Çıkan isim boşluğuna bir şey yazmak zorunda değilsiniz ama “… “ya tıklayarak kodları yazmamız gerekecek. Bu { ile } arasına istediğimiz kod parçasını yazıyoruz. Mesela ekranda “Guzel bir kapi” yazması için yazmamız gereken kod Display(“Guzel bir kapi.”); İşi biraz daha ilerletelim ve size oyunda odalar arası değişimin nasıl yapıldığnı göstereyim. Oyunda değişen odalar olabilmesi için önce ne lazım? Tabi ki yeni bir oda... AGS’nin sağındaki Rooms’a sağ tıklayıp Blank Room’u seçin ve yeni bir oda yaratın. İsterseniz 2'nci odanın (daha doğrusu; sahnenin) arkaplanı bu olsun? Birinci odadaki kapıya dokunduğumuzda bu odaya girebilmemiz için, birinci odaya geri dönün ve kapının üzerindeki hotspot’taki Interact hotspot’a biraz önceki işlemleri uygulayarak kod olarak NewRoomEx(2,70,200); yazın. Buradaki 2, oda numarası; 70 ve 200, başlama noktasının X ve Y değeri. (Eğer benim başlarda verdiğim tavsiyeyi gözden kaçırıp Enforce object-based scripting’i true olarak bıraktıysanız, yazmanız gereken kod player.ChangeRoom(2, 70, 200); olacaktır. İkisi de aynı işi görüyor, ama eğer o seçenek true olarak kalırsa ilk verdiğim türdeki kodları kullanamıyorsunuz). Şimdilik sanırım bu kadar yeter. Şimdi sırada karakter hazırlama, oda scripti ve dialog scripti yazma gibi konular hakkındaki makalelerde. Kolay gelsin |
|