0 A.D.

İçerik:

Published: 10 July 2009

English 简体中文 Español Português Português Русский Français Deutsch Türkçe Polski Español de Chile Česky עברית Galego   Turkish translation by lipstick.

Swamp Defense screenshot

0 A.D. Nedir?

0 A.D ücretsiz, çok platformlu, geliştirilmekte olan, 3B, tarihi konu alan gerçek zamanlı bir strateji oyunudur.

Ne yapmaya çalışıyorsunuz?

Kapalı bir geliştirme ortamından açık kaynağa geçiyor; kaynak kodumuzu GPL ve sanatsal içeriğimizi CC-BY-SA ile lisanslayarak projeye katkı yapmak isteyenleri heveslendiriyoruz. Yıllardır 0 A.D. üzerinde çalışmaktayız ve artık neler başardığımızı göstermek, insanların katılımını kolaylaştırmak istiyoruz.

0 A.D. oldukça karmaşık ve iddialı bir proje; üzerinde gerçekten çok emek var. Fakat daha fazlasına ihtiyaç duyuyoruz. Maalesef şu an oynanabilir bir oyun sunamamaktayız – eğer oyunu oynayamak için hevesleniyorsanız UZUNCA BİR SÜRE beklemeniz lazım. Hala birçok temel özelliği eksik, tamamlanan kısımlarda ise buglar ve cilası atılmamış yerler var. Amacımız oyunu gelişmekte olan haliyle (pre-alfa sürümü olarak) sunarak, bu tarz bir şeyle ilgilenmek isteyebilecek geliştiricileri cezbetmek, ve de projenin gelişiminde süreklilik sağlamak için kaynaklarımızı bir toplulukla paylaşmak.

Bunu deneysel bir süreç olarak görüyoruz ve açıkçası ne yapmamız gerektiğinden tam olarak da emin değiliz. Bu nedenle dikkatlice hareket edip tecrübe edinmeye gayret göstereceğiz. Bu dökümanda şu anki planlarımızdan bahsediyoruz; yani fikirlerinizi bizimle paylaşırsanız çok mesut oluruz! Bizimle forumlarımız ya da QuakeNet üzerindeki #0ad IRC kanalımız aracılığıyla iletişime geçebilirsiniz.

Discovery screenshot

Neden ilgilenmeliyim?

Bizce bu benzersiz özelliklere sahip sıkı bir oyun yaratabilmek için iyi bir fırsat. Belki siz de bu oyunun gerçek bir deneyim haline gelebilmesi için bize yardım etmek istersiniz.

Büyük bir yazılım projesinde uğraşarak deneyim kazanmak istemez misiniz, özellikle bir oyun üzerinde? Grafik ve ses, AI ve UI, dosya yönetimi ve oyun betikleri, ağ vs. bir çok alanı kapsayan büyük bir proje önünüzde duruyor. Temelleri iyi attık ve bir çok yeri de oldukça sağlam, fakat ayrıntıları detaylandırmak ve bir takım bileşenlerin üzerinde uğraşmak gerekiyor.

Oyunu favori platformunuzun üzerinde daha iyi çalışması için geliştirmek isteyebilirsiniz. Ya da yaptığımız aptallıkları suratımıza vururcasına çok daha iyi kodlar yazmak için sabırsızlanıyorsunuzdur. (Kabul etmeliyiz ki mükemmellikten çok uzağız.)

Belki de kendi projenizde bizim kodlarımızı kullanmak istiyorsunuzdur. Kim bilir derslerde öğrencilerinize örnek oyun geliştirme kodları olarak göstermek isteyebilirsiniz.

Kişisel sebepleriniz de olabilir.

Gaugamela screenshot

Niçin böyle birşey yapıyorsunuz?

Bu oyun üzerinde bir şekilde 2001'den beri çalışmaktayız. O zamandan beri çok yol kat ettik, fakat bu tip bir oyunu geliştirmek çok zor. Orjinal ekibin büyük çoğunluğu öğrenciydi, fakat onlar artık hayata atıldılar ve projeye çok fazla zaman ayıramıyorlar. Yeni geliştiricileri projeye dahil etmek ise oldukça uğraştırıcı – çok az kişinin zamanı ve yeteneği bizim kodlarımızın üzerinde çalışıp katkıda bulunmasına olanak veriyor. İşte tüm bu nedenlerden dolayı engellerimizi kaldırıp, insanların projemizi rahatlıkla inceleyerek isterlerse bize katılmalarını kolaylaştırıyoruz.

Üstelik, bizim de paylaşmak istediğimiz güzel fikirlerimiz, araçlarımız ve kodlarımız mevcut. Onları kullanışlı hale sokup belgeleyerek insanların daha iyi kullanabilmesini arzuluyoruz, fakat kodları açmak ilk işimiz. Ayrıca belirtmeliyiz ki, Linux bize açık kaynak olan bu projenin dağıtım ya da hata ayıklamayla alakalı kısımlarını çok rahat halletme imkanı sağlıyor. Size de tavsiye ederiz.

Bu zamana kadar gönüllü olarak bir araya gelmiş bir ekiple ticari olmayan bir oyun geliştirmeye çalışmış olsak da gerçek şu ki koda sadece grubun 'resmi' üyeleri erişebilmekteydi. Açıkçası bundan birkaç yıl önce açık kaynak kavramı ilgi çeken birşey değildi, fakat artık zaman değişti ve görünen o ki projemize en uygun geliştirme yönteminin bu olduğunu düşünüyoruz.

Magna Graecia screenshot

Geliştirme işini nasıl organize edeceksiniz?

Projeye başlangıç olarak, toplulukla mümkün olduğunca kuvvetli bir iletişim kurmalı, onlara gerekli bilgileri ve desteği sağlayarak saygılarını kazanmalıyız. Bu sayede siz de bu projeye katılmaktan fayda göreceksiniz (Umarız bize de faydanızın dokunur). Amacımız, geçmişteki ilkelerimizden ödün vermeden yüksek standartlarda bir oyun ortaya getirebilmek.

Geçmişte, tüm geliştiriciler aynı zamanda 'ekibin' de bir parçasıydı. İsteyen herkes katılmak için başvurabiliyordu; önce onları tanımak için IRC üzerinden bir görüşmeye tabi tutar, sonra da yeterli zamanı, enerjisi ve kâbiliyeti olduğuna inanırsak onu projeye dahil ederdik. Geçmişteki bu çekirdek geliştirici ekibini ve iletişim metodlarımızı kullanmaya devam edeceğiz, çünkü elimizdeki ekibinin niteliklerini riske atmak istemiyoruz. Kendine has tasarım vizyonumuz var ve bu nedenle amacımıza uygun olmayan özellikleri projeye dahil etmemeyi tercih ediyoruz. Misal vermek gerekirse oyunda olması planlanan altı uygarlığın iki tanesini sürüme dahil ettik, fakat üzerinde çalışmaya devam ettiğimiz uygarlıkları tamamlayana kadar özgür kullanıma sunmayacağız.

Bu kısıtlamalar dışında, kaynak yönetim merkezimizi (Subversion), dökümanlarımızı ve hata takip sistemimizi (Trac) erişime açtık ve teknik tartışmalarımızı da herkese açık bir foruma koyduk. Bu sayede isteyen herkes oyunun en son versiyonunu indirip, derleyebilir ve çalıştırabilir. Gelecek katkılar için yürüteceğimiz iç protokol ise gayet basit; eğer elinizdeki kodlarda değişiklik yaptıysanız, bunu bir yama haline getirip bize gönderin, ve biz de bunu gözden geçirip üzerinde uygun gördüğümüz değişiklikleri yapalım veya doğrudan SVN depolarına koyalım.

Gelecek katkılar için nasıl bir lisans kullanılması gerektiği tartışılabilir. Bir taraftan, GPL'yi kullanarak katılımcıların kendi çalışmalarını adil olmayan bir şekilde kullanmayacağımızı garantilemiş oluruz. Diğer yandan da BSD tipi lisansların sağladığı seçeneklerden faydalanmak istiyoruz. Örneğin her ne kadar açık kaynak düşüncesiyle tezat oluştursa da yazılıma kapalı kaynak kodlu bir anti hile yazılımı ekleyerek çok oyuncululu ortamlarda harita istismarı(hack) yapılmasının önüne geçebiliriz. Ya da sahipli bir dijital dağıtım sistemi koyarak oyunun daha fazla kitleye ulaşmasını sağlayabiliriz. Görünüşe göre henüz ideal bir çözüme ulaşamadık, yine de bu sorunu tartışmaya açığız.

Savanna Biome screenshot

Kodun şu anki durumu nedir?

Kabaca söylemek gerekirse oyun motoru için 150K, ve düzenleme araçları için 25K C++ kodu mevcut. Oyun betikleri JavaScript ile yazıldı. Halihazırdaki bir oyun motorunu (OGRE gibi) kullanmıyor, düşük seviyeli kütüphanelerin (OpenGL, OpenAL, ENet, ...) üzerine inşa ediyoruz.

Kodun tamamen tertemiz, modüler ya da iyi yazılmış olduğunu söylemek güç. Daha önce bahsettiğimiz gibi kodlar bir çeşitli düzeydeki bir çok programcının katılımıyla yazıldı ve "tastamam" olmaktan uzak. Bu nedenle kod üzerinde yapılacak düzeltmeleri geliştirme sürecinin normal bir parçası olarak görüyoruz. Hatta gerekirse ihtiyaçlarımızı karşılayabilmesi için tüm alt sistemleri baştan yazmaktan çekinmeyiz. Yine de projenin çoğu yeri oldukça iyi durumda.

Kodların ne kadarı başka yerlerde kullanıma uygun?

Kodlarımızın birçoğu oyuna özgü ve dış kullanıma çok uygun değil, yine de bazı kısımları diğer projelerdeki geliştiriciler için ilgi çekici olabilir. Örneğin:

Diğer Oyunlarla Karşılaştırırsak?

Piyasada başka açık kaynaklı RTS oyunlarının da olduğunun farkındayız. Örneğin Glest artık 'stabil' olarak anılıyor ve ortaçağ/fantezi dünyasında geçiyor. Her ne kadar 0 A.D'ye göre daha ilkel bir oynanışa ve grafiklere sahip olsa da oyundaki rakipler yapay zekalı (0 A.D.'ye uyarlanmış böyle bir özellik şimdilik bulunmamakta). ORTS ise oynanabilir bir oyundan çok yapay zeka çalışmalarını vurgulayan taslak halindeki bir projeyi andırıyor. Spring RTS motoru kullanan, oynanabilirliğini Total Annihilation'a yakın tutmaya çalışan bir diğer örnek. 0 A.D. ise yenilikçi oynanabilirliği, detaylı frafikleri ve gerçekçi tarihi konusuyla diğerlerinden farklı bir konumda.

Nereden Başlayabilirim?

Başlangıç Rehberi'ne (Ç.N: yakında çevireceğim) göz atarak oyun hakkında daha fazla bilgiye sahip olabilirsiniz. Sorularınız için foruma, binalar ve oyunun çalıştırılması hakkında Açıklamalar bölümüne, diğer detaylar için ise dış bağlantılara bakmalısınız.