0 A.D.

Spis treści:

Publikacja: 10 lipca 2009

English 简体中文 Español Português Français Deutsch Türkçe Español de Chile עברית Galego Polski    Polish translation by Amfidiusz.

Swamp Defense screenshot

Czym jest 0 A.D.?

0 A.D. jest darmową, wieloplatformową, aktywnie rozwijaną, trójwymiarową, historyczną grą strategiczną czasu rzeczywistego.

Co robicie?

Zmieniamy model rozwoju z zamkniętego na open source: upubliczniamy kod na licencji GPL oraz materiały artystyczne na CC-BY-SA, a także zachęcamy do niezależnego wkładu w rozwój projektu. Nad 0 A.D. pracowaliśmy przez lata w wolnym czasie, a teraz pragniemy pokazać, co osiągnęliśmy i ułatwić dostęp do projektu większej liczbie osób.

0 A.D. jest niezwykle skomplikowanym i ambitnym projektem. Włożyliśmy w niego wiele pracy, lecz wciąż większa część przed nami. Nie wydajemy grywalnej gry – będziesz musiał poczekać znacznie dłużej jeśli tego oczekujesz. W grze wciąż znajduje się wiele niewprowadzonych rozwiązań, poważnych błędów oraz mniejszych niedociągnięć. Wydajemy ją jako wersję pre-alpha skierowaną do deweloperów, których może ona zainteresować, mając nadzieję na dzielenie się zasobami ze społecznością, która w innym przypadku byłaby wyłączona z procesu rozwoju.

Jest to eksperymentalny krok i nie jesteśmy jeszcze pewni, jakie przyniesie on skutki. Będziemy więc posuwać się ostrożnie oraz próbować odnaleźć się w nowej sytuacji. Ten dokument opisuje nasze obecne plany; opinie będą mile widziane! Skontaktuj się z nami poprzez forum lub #0ad na QuakeNet IRC.

Discovery screenshot

Dlaczego dotyczy to mnie?

Uważamy, że istnieje duża szansa na stworzenie całkiem przyzwoitej gry z unikalnymi możliwościami. Być może będziesz chciał pomóc doprowadzić projekt do jego finalnego etapu.

Być może pragniesz nauczyć się czegoś nowego poprzez doświadczenia w pracy nad złożonym projektem programistycznym. Oferujemy całą gamę kierunków rozwoju: grafika i dźwięk, AI i UI, zarządzanie plikami, skrypt gry, rozwiązania sieciowe itp. Podstawy już istnieją, w niektórych miejscach całkiem solidne, ale wciąż istnieje szeroki wachlarz możliwości do zanurzenia się w szczegóły i pracy nad poszczególnymi komponentami.

Być może chciałbyś ulepszyć działanie gry na swoim ulubionym systemie. Może chcesz nam udowodnić, jak bardzo głupi jesteśmy i pokazać nam sposób na pisanie o wiele lepszego kodu. (Daleko nam do doskonałości!)

Być może chcesz wykorzystać część naszego kodu lub grafiki w innym swoim projekcie. Może chcesz wykorzystać naszą grę jako przykład podczas zajęć informatycznych. A być może masz swoje własne powody.

Gaugamela screenshot

Dlaczego to robicie?

Pracowaliśmy nad tą grą w tej czy innej formie od 2001 roku. Od tamtego okresu przebyliśmy długą drogą, jednak tworzenie tego typu gry jest dość trudne. W skład pierwotnego zespołu wchodzili głównie studenci, którzy obecnie prowadzą dorosłe życie i nie mogą poświęcić wiele czasu na ten projekt. Szukanie nowych deweloperów jest ciężkie i czasochłonne – niewielu ludzi ma czas i umiejętności do nauczenia się pracy z istniejącym kodem oraz wniesienia do niego znaczących poprawek. Postanowiliśmy więc obniżyć progi, ułatwiając ludziom dostęp do plików, a przez to zainteresowanie ich projektem.

Ponadto, posiadamy pewne pomysły, narzędzia i kod, które uważamy za całkiem przyjemne i którymi chcielibyśmy się podzielić. Powinniśmy go oczyścić i porządnie udokumentować, żeby był bardziej przydatny innym użytkownikom, ale publikacja kodu jest dopiero pierwszym krokiem. Także, w szczególności na Linuksie, open source ułatwia wiele spraw związanych z dystrybucją i debugowaniem. Jest więc to ułatwienie i dla nas, i dla użytkowników.

Aż do tego momentu, dostęp do projektu był ograniczony do 'oficjalnych' członków zespołu, jednak zawsze założeniem było wyprodukowanie niekomercyjnej gry, a członkostwo w grupie nie było trudne do uzyskania. po prostu koncept open source nie był uważany za interesujący kilka lat temu, ale czasy się zmieniły i obecnie wydaje się on naturalnym krokiem w kierunku rozwoju naszego projektu.

Magna Graecia screenshot

Jak zorganizowany jest rozwój projektu?

Po otwarciu projektu, zamierzamy szanować społeczność poprzez dostarczanie jej tyle informacji i wsparcia, ile to tylko możliwe, aby każdy mógł skorzystać w uczestnictwie z projektu (oczywiście zawsze mamy nadzieję na dalszą kontrybucję!). Jednocześnie chcemy ukończyć grę na wysokim standardzie związanym z naszą dotychczasową organizacją.

W przeszłości, wszyscy deweloperzy należeli do oficjalnej 'ekipy': każdy mógł dołączyć po krótkim wywiadzie na kanale IRC, aby poznać nową osobę i upewnić się, że ma czas, energię i umiejętności, aby wnieść coś pożytecznego. Utrzymamy więc podstawową grupę deweloperów i prywatne metody komunikacji – nie chcemy ryzykować rozpadu grupy, którą już stworzyliśmy. Zamierzamy dążyć do ustalonej już wizji projektu i nie chcemy zbytnio od niej odbiegać – nie chcielibyśmy wprowadzić (i rozwijać) funkcji, które nie są częścią naszych celów. Upubliczniamy więc grafikę i skrypty rozgrywki dla dwóch z sześciu cywilizacji dostępnych w grze, wstrzymując rozwijane części projektu do momentu, aż będą one bardziej kompletne i użyteczne.

Oprócz tych restrykcji, otwieramy dostęp do serwera kodu źródłowego (Subversion) oraz dokumentacji i trackera błędów (Trac), a całą dyskusję techniczną przenosimy na forum. Każdy może pobrać, zbudować i uruchomić najnowszą wersję gry. Nasz początkowy proces kontrybucji będzie bardzo prosty: Jeśli dokonasz jakichkolwiek zmian, powinieneś utworzyć patch i przesłać go do nas. Po weryfikacji i ewentualnych zmianach zostanie on przesłany do SVN.

Licencjonowanie kontrybucji jest wciąż tematem otwartym. Z jednej strony, akceptacja kodu GPL zagwarantuje deweloperom, że nie wykorzystamy ich pracy w nieuczciwy sposób. Z drugiej strony, chcielibyśmy zachować pole manewru akceptując jedynie kod licencjonowany pod BSD. Pozwoliłoby to na zabezpieczenie gry przed złośliwym umieszczaniem kodu ułatwiającym rozgrywkę wieloosobową, co w przypadku projektu open source nie byłoby trudne. Idealne rozwiązanie nie jest jeszcze sprecyzowane, zachęcamy więc do dyskusji na ten temat.

Savanna Biome screenshot

Jak wygląda kod?

Istnieje już blisko 150k linii kodu C++ opisujących silnik gry oraz dodatkowe 25k dla narzędzi edytujących. Skrypty rozgrywki korzystają z JavaScript. Bazujemy na bibliotekach niskiego poziomu (OpenGL, OpenAL, ENet, ...), a nie na istniejącym już silniku gry (typu OGRE).

Kod nie jest perfekcyjnie czysty czy modularny. Został on napisany przez wielu programistów i daleko mu do "kompletności". Chcemy kontynuować czyszczenie niektórych skryptów w ramach naturalnego procesu rozwoju. Nie jesteśmy przeciwni całkowitemu przepisaniu subsystemów, jeśli będzie to najwydatniejsza droga do sprostania naszym wymaganiom. Jednakże w wielu częściach jest on solidny.

Czy kod może być ponownie wykorzystany?

Większość kodu jest specyficzna dla samej gry i nie przyniesie korzyści jeśli zostanie wykorzystana poza projektem. Jednak niektóre części mogą zainteresować deweloperów pracujących nad innymi projektami. Kilka przykładów:

Jak gra wypada na tle innych projektów?

Jesteśmy świadomi istnienia kilku innych open source'owych gier RTS. Glest osiągnął status wersji stabilnej i jest osadzony w świecie średniowiecza/fantasy z mniej rozbudowanym trybem gry i grafiką, za to z przeciwnikami AI (co nie zostało jeszcze zaimplementowane w 0 A.D.). ORTS jest bardziej projektem nastawionym na rozwój AI niż na grywalność, podobnym do Total Annihilation. 0 A.D. próbuje się wyróżnić dostarczając nowe pomysły rozgrywki, szczegółową grafikę i tło historyczne.

Jak mogę zacząć?

Przeczytaj przewodnik Jak zacząć, aby znaleźć informacje o grze i forum dyskusyjnym, instrukcje dotyczące budowania i uruchomienia gry oraz odnośniki do dalszych szczegółów.