0 A.D.

Contido:

Publicado o 10 de xullo do 2009

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

Captura de pantalla «A defensa do groto»

Que é o 0 A.D.?

O 0 A.D. é un videoxogo de estratexia en tempo real en tres dimensións libre e dispoñible para varias plataformas que busca o realismo histórico.

De que vai isto?

Trátase de pasar dun proceso de desenvolvemento pechado a un aberto: liberar o código baixo a licenza GPL (versión 2) e o material artístico baixo a licenza CC-BY-SA, favorecendo así as colaboracións externas. Levamos anos traballando no 0 A.D. durante o noso tempo de lecer, e agora queremos publicar o que levamos acadado e facilitar que máis xente faga achegas ao proxecto.

0 A.D. é un proxecto moi complexo e ambicioso. Púxóse moito traballo nel, mais aínda queda moito por facer. Non estamos liberando un xogo completo ─para iso aínda queda moito─. Faltan unha morea de funcionalidades, erros por corrixir e detalles finais. Isto non é máis que un proxecto en fase pre-alfa e pleno desenvolvemento, dirixido a desenvolvedores interesados coa esperanzas de compartir recursos cunha comunidade que ata o de agora quedara excluída do proceso de desenvolvemento.

Este paso é un pouco un experimento, e non sabemos moi ben que será mellor, polo que iremos a modo e procuraremos adaptarnos baseándonos na experiencia obtida. Este documento describe os nosos plans actuais. Agradécese calquera suxerencia! Contacta connosco (en inglés) no foro, ou na sala #0ad do servidor de IRC QuakeNet.

Captura de pantalla «O descubrimento»

A min que me importa?

Cremos que temos a oportunidade de crear un xogo bastante decente con algunhas funcionalidades únicas. Ao mellor che interesa axudar a crealo.

Ao mellor queres aprender da experiencia de traballar nun proxecto de software complexo, ou concretamente nun videoxogo. Hai moitos apartados implicados: gráficos, son, intelixencia artificial, interface de usuario, manexo de ficheiros, guións de xogo, traballo en rede, etc. Temos xa a infraestrutura básica, e parte dela está xa nun estado bastante avanzado, pero hai moitos detalles nos que afpndaar e compoñentes nos que traballar.

Quizais queiras mellorar o rendemento do xogo na túa plataforma. Ou quizais queiras demostrar o parvos que somos e que podes escribir código mil veces mellor que o noso (ninguén é perfecto!).

Ao mellor che interesa utilizar partes do noso código ou o material artístico para o teu propio proxecto. Pode que queiras aprobeitar o videoxogo para impartir unha clase práctica sobre desenvolvemento de videoxogos. Ou poed que teñas outros motivos.

Captura de pantalla de «Gaugamela»

Por que o facedes?

Dunha ou doutra maneira, levamos traballando neste xogo dende o ano 2001.Xa avanzamos bastantes, pero facer un videoxogo coma este é bastante difícil. Os membros orixinais do equipo eran na súa meirande parte estudantes, xa avanzaron na súa vida e non poden adicarlle moito tempo ao proxecto. Atraer a novos desenvolvedores é difícil e leva tempo, xa que poucos son os que teñen o tempo e maila habilidade precisos para aprender a traballar co código que levamos feito de momento e facer achegas importantes. Así que queremos reducir as barreiras de acceso, facilitando que a xente lle bote unha ollada ao proxecto e decida se lle interesa, coa esperanza de que algún se anime.

Asemade, temos algunhas ideas, ferramentas e código que consideramos bastantes boas e gustaríanos compartilo. Cómpre que os limpemos e documentemos axeitadamente de xeito que lle resulten de maior utilidade a outras persoas, pero liberar o código é un primeiro paso. E, concretamente en GNU/Linux, a liberación reduce os problemas relacionados coa distribución e a correción de erros, e facilítanos as cousas a nós e aos usuarios.

Ata o de agora, o acceso ao proxecto estivera limitado aos membros "oficiais" do noso grupo, a pesar de que o obxectivo xa dende o principio fora o de crear un xogo non comercial e o proceso para formar parte do equipo foi sempre bastante aberto. O concepto de "software libre" simplemente non se considerou interesante hai un par de anos, pero xa choveu e nestes momentos semella o xeito natural de desenvolver o noso proxecto.

Captura de pantalla de «Magna Græcia»

Como se vai organizar o desenvolvemento?

Ao abrirmos o proxecto, temos que respectar a comunidade fornecendo tanta información, soporte e medios de comunicación como sexa posible, de xeito que podas beneficiarte da túa participación no proxecto (e con sorte as túas achegas nos beneficien a nós, por suposto!), sen deixar de lado o noso desexo de completar o xogo e deixalo nun nivel alto de calidade.

Outrora, todos os desenvolvedores formaran parte do "equipo oficial": calquera podía presentarse voluntario, e tras unha pequena entrevista por IRC para coñecelo, e en caso de ter o tempo, enerxía e habilidade necesarios para contribuír de maneira efectiva ao proxecto a persoa pasaría a ser membro do equipo. A nosa idea é a de manter o grupo principal de desenvolvedores e os métodos de comunicación privados ─non queremos arriscarnos a perder o equipo que xa formamos─. Imos manter unha dirección de traballo cara unha visión de deseño concreta, e non queremos desviarnos moito desa visión ─preferimos non engadir (e ter que manter) funcionalidades que non forman parte do obxectivo─. Liberamos o material artístico e lóxico de dúas das seis civilizacións do videoxogo, pero gardaremos o traballo en progreso feito co resto das civilizacións hasta que estea máis completo e poda usarse.

Ao marxe desas restricións, abrimos o acceso ao sistema de control do código fonte (Subversion), a documentación e o sistema de xestión de taredas (Trac); ademais de trasladar as nosas discusións técnicas a un foro aberto. Calquera pode descargar, compilar e executar a última versión do xogo. O proceso inicial para as achegas vai ser moi básico: se fas algún cambio, cómpre que crees un parche e nolo envíes, e entón o revisaremos e pode que te suxiramos algún cambio ou o enviemos ao SVN.

A cuestión da licenza das contribucións está aberta. Por unha banda, aceptar código GPL garantiría aos contribuidores que non imos usar o seu código dun xeito inxusto. Pola outra, gustaríanos manter as nosas opcións abertas aceptando únicamente código baixo licenza BSD, quizais para crear unha versión especial ligada a software privativo de detección de trucos para evitar os trucos nos mapas do modo de xogo en liña que resultaría trivial engadir a un videoxogo libre, ou para ligar con sistemas de distribución dixital privativos para unha maior distribución. A solución ideal aínda non está clara, polo que nos interesaría conversar sobre este tema.

Captura de pantalla «A vida da savana»

Como vai o código?

Temos preto de 150.000 liñas de código C++ para o motor do xogo, outras 25.000 para as ferramentas de edición. Os guións están feitos en JavaScript. Codificamos baseándonos en bibliotecas de baixo nivel (OpenGL, OpenAL, ENet, etc., sen utilizar ningún motor existente (coma OGRE).

O código non está moi limpo, nin moi modulado, nin moi ben escrito. Escribírono unha gran variedade de programadores, e está lonxe de ser un código base "completo". Queremos seguir limpando cousas coma parte do proceso normal de desenvolvemento. Non nos opoñemos á rescritura de subsistemas enteiros se ese é o xeito máis efectivo de satisfacer as nosas necesidades. Pero moitas partes están bastante avanzadas.

Que código hai que se poda reutilizar?

A meirande parte do código é específico para o xogo e fóra del non resulta de moita utilidade, pero algunhas partes poderían resultar interesantes para desenvolvedores que traballen noutros proxectos. Algunhas destas partes son:

En que se diferencia doutros xogos?

Somos conscientes da existencia de moitos outros xogos libres de estratexia en tempo real. Glest atópase nun estado "estable" e está ambientado nun mundo fantástico-medieval, cun modo de xogo e gráficos máis simples, pero con intelixencia artificial (que aínda non foi integrada no 0 A.D.). ORTS é unha infraestrutura enfocada máis á investigación sobre a intelixencia artificial que á xogabilidade. Spring é outro motor para xogos de estratexia en tempo real que semella deseñado para modos de xogo similares ao do Total Annihilation. O 0 A.D. diferénciase destes xogos e motores polas novas ideas que aporta ao modo de xogo, os seus gráficos avanzados e un gran realismo histórico.

Por onde empezo?

Bótelle unha ollada á guía para principiantes (en inglés) para informarte mellor sobre o xogo, os foros de conversa, as instrucións para compilar e executar o xogo, e ligazóns a información máis detallada.