# Panda3D/Manual/Introdução ao Panda
## Os fundamentos da engine Urso Panda

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 Licença de 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

Existem vários desenvolvedores na comunidade comercial e open-source. Atualmente, os membros mais ativos da comunidade de desenvolvimento são a Disney e o Centro de Tecnologia do Entretenimento em Carnegie Mellon. Devido ao fato de que ambas as organizações têm objetivos especificos, Panda3d deve necessariamente servir a ambos.
Como podemos ver, os dois conjuntos de objetivos são complementares. O rápido desenvolvimento e a alta confiança necessária pelo Centro de Tecnologia do Entretenimento também têm uma grande vantagem em um estúdio de desenvolvimento de jogos, já que o tempo de desenvolvimento e os custom caem. A boa qualidade visual e o completo set de capacidades necessários pela Disney para criar games de qualidade também é vantajoso para a universidade: Com uma variada gama de capacidades á sua disposição, estudantes podem explorar sua criatividade de forma mais completa do que poderiam com uma engine limitada.
A linguagem mais bem suportada é o Python. Apesar de você também poder usar C++, a documentação é geralmente dirigida aos usuários de Python.
O capítulo Introdutório
Esse capítulo introdutório do manual foi criado pensando em lhe mostrar alguns conceitos básicos do Panda3D. Esse capítulo está estruturado como em um tutorial, não como um trabalho de referência.