Documentación de Godot Engine 4.0 - Primeros pasos - Concepto de diseño de Godot

Este artículo es el resultado de la traducción al inglés de Google Translate, y DrGraph agregó algunas correcciones sobre esta base. Página original en inglés:

Filosofía de diseño de Godot — Documentación de Godot Engine (estable) en inglés

filosofía de diseño de Godot

Ahora que lo sabes, hablemos del diseño de Godot.

Cada motor de juego es diferente y se adapta a diferentes necesidades.  No solo ofrecen una variedad de características, sino que cada motor tiene un diseño único. Esto conduce a diferentes flujos de trabajo y diferentes formas de formar estructuras de juego. Todo esto se deriva de sus respectivos conceptos de diseño.

Esta página está diseñada para ayudarte a comprender cómo funciona Godot, comenzando con algunos de sus pilares fundamentales. No es una lista de funciones disponibles, ni es una comparación de motores. Para saber si algún motor es adecuado para su proyecto, debe probarlo usted mismo y comprender su diseño y limitaciones.

Si está buscando una descripción general de la funcionalidad del motor, vea la explicación de Godot en 5 minutos 

Diseño y composición orientados a objetos¶

Godot tiene un diseño orientado a objetos en su núcleo con su sistema de escena flexible y su jerarquía de nodos. Intenta mantenerse alejado de los patrones de programación estrictos para proporcionar una forma intuitiva de construir su juego.

Por un lado, Godot te permite combinar o agregar escenas. Es como prefabricados anidados: puede crear una escena BlinkingLight y una escena BrokenLantern que use BlinkingLight. Luego, crea una ciudad poblada con BrokenLanterns. Cambia el color de BlinkingLight, guárdalo y todos los BrokenLanterns de la ciudad se actualizarán inmediatamente.

Lo mejor de todo es que puedes heredar de cualquier escena.

Una escena de Godot puede ser un arma, un personaje, un objeto, una puerta, un nivel, parte de un nivel... lo que quieras. Funciona como una clase en código puro, excepto que puede diseñarla libremente usando el editor, usando solo código o mezclando y combinando los dos.

Es diferente de las prefabricadas que encontrará en otros motores 3D porque puede heredar y ampliar estas escenas. Puedes crear un Mago para ampliar tu Personaje. Modifica el Personaje en el editor y el Mago también se actualizará. Te ayuda a estructurar tu proyecto para que su estructura coincida con el diseño del juego.

También tenga en cuenta que Godot proporciona muchos tipos diferentes de objetos llamados nodos, cada uno con un propósito específico. Los nodos son parte de un árbol y siempre heredan la clase Nodo de su padre. En Godot, la mayoría de los nodos funcionan independientemente unos de otros, pero algunos nodos son utilizados por los cuerpos físicos principales, como las formas de colisión.

En otras palabras, los nodos de Godot no funcionan como componentes en otros motores de juegos.

Sprite2D es un Node2D, un CanvasItem y un Node. Tiene todas las propiedades y funciones de sus tres clases principales, como la capacidad de transformar o dibujar formas personalizadas y renderizar con sombreadores personalizados.

Colección de todos los paquetes¶

Godot intenta proporcionar sus propias herramientas para las necesidades más comunes. Tiene un espacio de trabajo de secuencias de comandos dedicado, un editor de animación, un editor de mapas de mosaicos, un editor de sombreadores, un depurador, un generador de perfiles, la capacidad de recargar en caliente en dispositivos locales y remotos, y más.

El objetivo es proporcionar un paquete completo para crear juegos y una experiencia de usuario continua. No solo puedes usar complementos de importación en Godot, también puedes usar programas externos. O puede crear uno, como el Importador de mapas en mosaico .

Esta es parte de la razón por la cual Godot proporciona sus propios lenguajes de programación GDScript y C#. GDScript está diseñado específicamente para las necesidades de los desarrolladores y diseñadores de juegos, y está estrechamente integrado en el motor y el editor.

GDScript le permite escribir código utilizando una sintaxis basada en sangría, pero detecta tipos y proporciona la calidad de autocompletado de un lenguaje estático. También está optimizado para el código del juego que tiene tipos incorporados, como vectores y colores.

Tenga en cuenta que, según GDExtension, puede escribir código de alto rendimiento en lenguajes compilados como C, C++, Rust o Python (usando el compilador Cython) sin volver a compilar el motor.

Tenga en cuenta que el espacio de trabajo 3D no tiene tantas herramientas como el espacio de trabajo 2D. Necesitará programas externos o complementos para editar el terreno, animar personajes complejos y más. Godot proporciona una API completa para ampliar la funcionalidad del editor con el código del juego. Ver más abajo Godot Editor es un juego de Godot .

Un complemento de editor de máquina de estado para Godot 2 por kubecz3k. Te permite gestionar estados y transiciones de forma intuitiva.

Código abierto¶

Godot proporciona una base de código completamente de código abierto bajo la licencia MIT. Esto significa que toda la tecnología que la acompaña también debe ser gratuita (como la libertad). En la mayoría de los casos, los colaboradores los desarrollan desde cero.

Cualquiera puede conectar herramientas propietarias según sea necesario para el proyecto; simplemente no se enviarán con el motor. Esto puede incluir Google AdMob o FMOD. Cualquiera de estos puede aparecer como complementos de terceros.

Por otro lado, una base de código abierta significa que puede aprender del motor y extenderlo al contenido de su corazón. También puedes depurar fácilmente tu juego, ya que Godot imprimirá errores con rastros de pila, incluso si provienen del propio motor.

NOTA: Esto no afecta de ninguna manera lo que haces con Godot: no hay ataduras al motor ni a nada que hagas con él.

Unidad comunitaria¶

Godot está hecho por su comunidad, para la comunidad y todos los creadores de juegos. La demanda de los usuarios y las discusiones abiertas impulsan las actualizaciones principales. Las nuevas características de los desarrolladores principales generalmente se enfocan en características que benefician primero a la mayoría de los usuarios.

Dicho esto, mientras que un puñado de desarrolladores principales trabajan a tiempo completo, el proyecto cuenta con más de 600 colaboradores en el momento de escribir este artículo. Los programadores benévolos trabajan en funciones que ellos mismos podrían necesitar, por lo que verá mejoras en todos los rincones del motor simultáneamente en cada versión importante.

Godot Editor es un juego de Godot¶

El editor de Godot se ejecuta sobre el motor del juego. Utiliza el propio sistema de interfaz de usuario del motor, que puede recargar en caliente el código y las escenas mientras prueba su proyecto o ejecuta el código del juego en el editor. Esto significa que puede usar el mismo código y escena para su juego  , o crear complementos y ampliar el editor.

Esto da como resultado un sistema de interfaz de usuario sólido y flexible, ya que alimenta al propio editor. Los comentarios @toolte permiten ejecutar cualquier código de juego en el editor.

RPG in a Box es un editor de juegos de rol de vóxeles hecho con Godot 2. Utiliza las herramientas de interfaz de usuario de Godot para su sistema de programación basado en nodos y el resto de la interfaz.

Coloque @toolel comentario en la parte superior de cualquier archivo GDScript y se ejecutará en el editor. Esto le permite importar y exportar complementos, crear un editor de nivel personalizado como complementos o crear scripts usando los mismos nodos y API que usa en sus proyectos.

NOTA: El editor está escrito completamente en C++ y compilado estáticamente en archivos binarios. Esto significa que no puede  project.godotimportarlo como un proyecto típico con archivos.

Motores separados 2D y 3D Godot explicado en 5 minutos

Godot proporciona motores de renderizado 2D y 3D dedicados. Por tanto, la unidad básica de una escena 2D es el píxel. Incluso con motores separados, puede renderizar 2D en 3D, 3D en 2D y superponer interfaces y sprites 2D sobre el mundo 3D.

おすすめ

転載: blog.csdn.net/drgraph/article/details/130791990