Panda3D/Manual/Introdução ao Panda: diferenças entre revisões

Origem: Wikilivros, livros abertos por um mundo aberto.
[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 18: Linha 18:


Para ter êxito ao usar a Panda3D, você deve ser um programador experiente. Se você não sabe o que é uma 'API', ou se você não sabe o que é uma 'árvore', você provavelmente vai achar a Panda3D deprimente. A Panda é uma ferramenta para profissionais. E também é importante estar ciente que a Panda3D é uma das mais fáceis e mais poderosas engines que você vai usar, e a sua participação é bem-vinda.
Para ter êxito ao usar a Panda3D, você deve ser um programador experiente. Se você não sabe o que é uma 'API', ou se você não sabe o que é uma 'árvore', você provavelmente vai achar a Panda3D deprimente. A Panda é uma ferramenta para profissionais. E também é importante estar ciente que a Panda3D é uma das mais fáceis e mais poderosas engines que você vai usar, e a sua participação é bem-vinda.

Se você está começando na programação, nós sugerimos que você tenha algumas aulas de programação. Alternativamente você pode ensinar a si mesmo usando uma ferramenta de treinamento com [http://alice.org/ Alice], também da CMU. Enquanto na discussão das ferramentas, deve ser notado de referencia que o Editor de cenas é uma ferramenta bastante útil para construção de componentes de sua aplicação panda e sugerimos que voce tente usa-lo assim que estiver confortavel usando o panda, então você pode achar informação sobre essa ferramenta no manual sessão VIII: H

Algumas pessoas viram screenshots de jogos infantis escritos em panda3d, e concluem que o panda3d é limitado graficamente. O que não é verdade. Desenvolvedores de jogos infantis normalmente escolhem não usar shaders ou gráficos avançados, porque as crianças geralmente tem computadores limitados. Mas Panda3D suporta o alcance completo do que os motores atuais teriam: ele providencia suporte conveniente suporte para mapas normais, mapeamento gloss, HDR shading cartoon e inking, bloom e várious outros efeitos. Ele também permite que voce escreva seus próprios shaders, o tornando capaz de qualquer coisa.

Pessoas as vezes têm a impressão errada que o Panda3D é escrito em python, o que o tornaria bem lento. Mas o panda3d não é escrito em python - é escrito em C++. O python existe apenas para criar scripts, os desenvolvedore normalmente escrever partes com perfomance intensica em C++. Para ver que tipo de framerate um pequeno programa panda3d consegue, olhe os screenshots dos programas de exemplo. Os screenshot foram tirados usando uma Radeon x700. É claro que apenas um programa de exemplo pode rodar a 400fps, mas para um jogo sério, 60fps é aceitavel. Um problema: para conseguir esse tipo de perfomance, voce precisa entender as placas 3d e otimização de perfomance 3d. Isso não ocorre automaticamente. Panda3d inclui as ferramentas que você precisa para conseguir 60fps.


'''Panda3D's Licensa Software'''

Desde a versão 1.5.3, Panda3D foi lançado com a chamada "licença BSD modificada", que é uma licença de software livre com poucas restrições de uso. Nas versões 1.5.2 e anteriores, panda usava uma licença proprietária, que era bem similar em intenção as licenças BSD e MIT, apesar de haver discordancias sobre a liberdade das clausulas. A licença antiga ainda pode ser acessada [http://panda3d.cvs.sourceforge.net/viewvc/*checkout*/panda3d/doc/doc/LICENSE?revision=1.1 aqui].

Apesar do motor em si ser completamente livre, ele vêm com várias bibliotecas de terceiros que não são gratuitas. Algumas delas ( como FMOD) até restringem você de a usar em jogos comerciais a não ser que voce tenha uma copia licenciada do FMOD. Devido a esta razão, Panda3D torna facil desabilitar ou remover essas bibliotecas restritas, e a maior parte do tempo ele oferece uma alternativa. Por exemplo, ao invés de usar o FMOD, você pode usar OpenAL, que também está incluso no panda3d.

Você pode ler a [http://panda3d.cvs.sourceforge.net/viewvc/*checkout*/panda3d/doc/doc/LICENSE?revision=1.1 licença Panda3D´s]

'''Quem está trabalhando no Panda3D'''

There are a number of developers in the commercial and open-source community. Currently, the two most active members of the development community are Disney and the Entertainment Technology Center at Carnegie Mellon. Because both organizations have specific goals, Panda3D must necessarily serve both:

* Disney's primary interest in Panda3D is commercial. Panda3D is being used in the development of a number of Disney games and amusement-park exhibits. To serve Disney's needs, Panda3D must be a fully-featured engine, capable of all the performance and quality one expects in any 'A-grade' commercial title.
* The Entertainment Technology Center's primary goal is education. To serve the Entertainment Technology Center's needs, Panda3D must be well-suited for use in student projects. Since students have a unique talent for causing crashes, bulletproof reliability is needed. Since projects only last one semester, the learning curve must be very short, and prototyping must be very rapid.

As it turns out, the two sets of goals are complementary. The rapid development and high reliability needed by the Entertainment Technology Center are also highly advantageous in a game-development studio, since they lower development time and costs. The good visual quality and full feature set needed by Disney to make a professional-quality game also turn out to be useful in a university setting: with a broad range of features at their disposal, students can explore their creativity more fully than they could with a more limited engine.

The most supported language is Python. Though you can use C++ too, the documentation is mostly aimed at Python use.
The Introductory Chapter

This introductory chapter of the manual is designed to walk you through some of the basics of using Panda3D. This chapter is structured as a tutorial, not as a reference work.


{{AutoCat}}
{{AutoCat}}

Revisão das 00h52min de 2 de dezembro de 2009

Os fundamentos da engine Panda3D

A Panda3D é uma engine 3D: uma biblioteca de subrotinas para a renderização 3D e desenvolvimento de jogos. A biblioteca está em C++ com a junção de Python. O desenvolvimento de jogos com a Panda3D normalmente consiste de um programa escrito em Python ou c++ que controla a biblioteca 3D.

A Panda foi criado para o desevolvimento de jogos comerciais, e seus usuários primários ainda são desenvolvedores de jogos comerciais. Por causa disso, a Panda precisa realçar quatro áreas: poder, velocidade, integralidade e tolerância a erros. Todos sabem o que poder e velocidade são. Mas integralidade e tolerância a erros merecem algum comentário extra.

Integralidade quer dizer que a Panda3D contém muitas ferramentas monótonas porém essenciais: navegação pela scene graph, monitoramento de performance, otimizadores de animação e muito mais. Estas coisas podem não parecer atraentes, e como resultado, frequentemente as engines open-source não possuem tais ferramentas. Mas quando você está programando sério, e não apenas jogando, estas ferramentas precisam estar ai.

Tolerância a erros é sobre o fato de que todos os desenvolvedores de jogos criam bugs. Quando você o criar, você vai querer que a sua engine mostre uma mensagem clara de erro e o ajude a encontrar o erro. Muitas engines vão parar de rodar instantaneamente se você passar o valor errado para uma função. A Panda3D quase nunca para, e muito código é dedicado ao problema de identificar e isolar erros.

Finalmente, voltando ao poder e velocidade: o melhor jeito de estimar as capacidades da Panda3D é dar uma olhada nos programas de exemplo. Eles são pequenos programas que demonstram as capacidades da engine.

A Panda3D foi desenvolvido pela Disney para o seu jogo online, Toontown. Ele foi lançado como um software livre em 2002. A Panda3D está sendo desenvolvida agora juntamente ao centro de tecnologia do entretenimento da universidade Carnegie Melon.

Você pode ler mais sobre as capacidades de panda3d

A Panda3D não é uma ferramenta para iniciantes ou um brinquedo

Para ter êxito ao usar a Panda3D, você deve ser um programador experiente. Se você não sabe o que é uma 'API', ou se você não sabe o que é uma 'árvore', você provavelmente vai achar a Panda3D deprimente. A Panda é uma ferramenta para profissionais. E também é importante estar ciente que a Panda3D é uma das mais fáceis e mais poderosas engines que você vai usar, e a sua participação é bem-vinda.

Se você está começando na programação, nós sugerimos que você tenha algumas aulas de programação. Alternativamente você pode ensinar a si mesmo usando uma ferramenta de treinamento com Alice, também da CMU. Enquanto na discussão das ferramentas, deve ser notado de referencia que o Editor de cenas é uma ferramenta bastante útil para construção de componentes de sua aplicação panda e sugerimos que voce tente usa-lo assim que estiver confortavel usando o panda, então você pode achar informação sobre essa ferramenta no manual sessão VIII: H

Algumas pessoas viram screenshots de jogos infantis escritos em panda3d, e concluem que o panda3d é limitado graficamente. O que não é verdade. Desenvolvedores de jogos infantis normalmente escolhem não usar shaders ou gráficos avançados, porque as crianças geralmente tem computadores limitados. Mas Panda3D suporta o alcance completo do que os motores atuais teriam: ele providencia suporte conveniente suporte para mapas normais, mapeamento gloss, HDR shading cartoon e inking, bloom e várious outros efeitos. Ele também permite que voce escreva seus próprios shaders, o tornando capaz de qualquer coisa.

Pessoas as vezes têm a impressão errada que o Panda3D é escrito em python, o que o tornaria bem lento. Mas o panda3d não é escrito em python - é escrito em C++. O python existe apenas para criar scripts, os desenvolvedore normalmente escrever partes com perfomance intensica em C++. Para ver que tipo de framerate um pequeno programa panda3d consegue, olhe os screenshots dos programas de exemplo. Os screenshot foram tirados usando uma Radeon x700. É claro que apenas um programa de exemplo pode rodar a 400fps, mas para um jogo sério, 60fps é aceitavel. Um problema: para conseguir esse tipo de perfomance, voce precisa entender as placas 3d e otimização de perfomance 3d. Isso não ocorre automaticamente. Panda3d inclui as ferramentas que você precisa para conseguir 60fps.


Panda3D's Licensa Software

Desde a versão 1.5.3, Panda3D foi lançado com a chamada "licença BSD modificada", que é uma licença de software livre com poucas restrições de uso. Nas versões 1.5.2 e anteriores, panda usava uma licença proprietária, que era bem similar em intenção as licenças BSD e MIT, apesar de haver discordancias sobre a liberdade das clausulas. A licença antiga ainda pode ser acessada aqui.

Apesar do motor em si ser completamente livre, ele vêm com várias bibliotecas de terceiros que não são gratuitas. Algumas delas ( como FMOD) até restringem você de a usar em jogos comerciais a não ser que voce tenha uma copia licenciada do FMOD. Devido a esta razão, Panda3D torna facil desabilitar ou remover essas bibliotecas restritas, e a maior parte do tempo ele oferece uma alternativa. Por exemplo, ao invés de usar o FMOD, você pode usar OpenAL, que também está incluso no panda3d.

Você pode ler a licença Panda3D´s

Quem está trabalhando no Panda3D

There are a number of developers in the commercial and open-source community. Currently, the two most active members of the development community are Disney and the Entertainment Technology Center at Carnegie Mellon. Because both organizations have specific goals, Panda3D must necessarily serve both:

   * Disney's primary interest in Panda3D is commercial. Panda3D is being used in the development of a number of Disney games and amusement-park exhibits. To serve Disney's needs, Panda3D must be a fully-featured engine, capable of all the performance and quality one expects in any 'A-grade' commercial title.
   * The Entertainment Technology Center's primary goal is education. To serve the Entertainment Technology Center's needs, Panda3D must be well-suited for use in student projects. Since students have a unique talent for causing crashes, bulletproof reliability is needed. Since projects only last one semester, the learning curve must be very short, and prototyping must be very rapid. 

As it turns out, the two sets of goals are complementary. The rapid development and high reliability needed by the Entertainment Technology Center are also highly advantageous in a game-development studio, since they lower development time and costs. The good visual quality and full feature set needed by Disney to make a professional-quality game also turn out to be useful in a university setting: with a broad range of features at their disposal, students can explore their creativity more fully than they could with a more limited engine.

The most supported language is Python. Though you can use C++ too, the documentation is mostly aimed at Python use. The Introductory Chapter

This introductory chapter of the manual is designed to walk you through some of the basics of using Panda3D. This chapter is structured as a tutorial, not as a reference work.