Cómo aprender Polycode

Polycode es un "marco para la codificación creativa" gratuito, de código abierto (con licencia de la licencia MIT) y multiplataforma. Este término rara vez se escucha dentro de la comunidad de desarrollo de juegos, pero lo que básicamente significa es simple: Polycode le proporciona herramientas para expresar su creatividad a través del código, y aunque está completamente calificado para soportar el "motor de juegos"apodo, prefiere no hacerlo. La razón es simple: Polycode se puede (y con frecuencia se usa) para proyectos que abarcan más que juegos interactivos, como visualizaciones utilizadas para entretenimiento o con fines científicos.

He utilizado Polycode para la mayoría de los juegos pequeños, pero también para una interfaz de usuario con zoom fuera de lo común y tuve un gran éxito en el desarrollo de todos los proyectos. Echemos un vistazo a lo que Polycode puede ofrecerle, y esperamos que le interese aprender a trabajar con este maravilloso marco..


¿Qué ofrece Polycode??

Como esta no es una pieza promocional para el marco, intentaré enfatizar las características clave que pueden ser de interés para los desarrolladores de juegos sin entrar en detalles..

  • Gráficos 2D y 3D: El marco de Polycode le proporciona sistemas simples y efectivamente diseñados para dibujar gráficos en 2D y 3D. No lo hace a expensas de la velocidad y no sacrifica las funciones que requieren los usuarios avanzados, una hazaña que muchos de los motores de renderizado populares de la actualidad no logran realizar. Al principio, sospeché que Polycode solo me daría capacidades básicas de gráficos en 3D, pero cambié de opinión cuando vi cómo se diseñó el oleoducto; Es tan personalizable como es posible, y permite la implementación de métodos como el paso previo claro o el sombreado diferido sin cambiar el código del marco.
  • Manejo de entrada: Polycode le permite manejar el mouse, el teclado, la palanca de mando y la entrada táctil a través de su sistema uniforme de manejo de eventos. Esta característica es obviamente esencial para cualquier cosa que se aproxime a llamarse motor de juego..
  • Soporte de redes: La API de red no parece demasiado complicada y tampoco sacrifica funciones. No lo he usado mucho personalmente, pero hasta ahora nunca me ha presentado ningún problema, y ​​sé que lo usan ampliamente los proyectos más aclamados desarrollados con la plataforma..
  • Audio: Con Polycode, puede reproducir audio posicional 2D y 3D, completo con funciones como transmisión (para archivos de audio largos como pistas de música). La característica establecida aquí no es espectacular, pero debería ser suficiente para las necesidades de la mayoría de los desarrolladores de juegos independientes que existen..
  • Física 2D y 3D: Realizado a través de complementos al marco central y utilizando Box2D y Bullet, ambas bibliotecas líderes en sus respectivas áreas, la API de física de Polycode es competente, bien pensada y robusta. También fue un placer usar, mucho más que usar las bibliotecas subyacentes: aunque no tenía problemas Al usar Bullet, encontré que para los usuarios que ingresan al campo de la física en 3D, hay mucho y muy poco material documentado. Con Polycode, el API de física es sencillo y casi puedes usar tu sentido común mientras lo tratas, lo que es muy alentador para los principiantes que pueden tener problemas para aprender cosas al principio.
  • Dual Lua y C ++ API: Este es un código único de un solo código que le ofrece su API de los lenguajes de programación C ++ y Lua. Esto le permite ofrecer publicaciones de un solo clic si escribe con Lua, así como la posibilidad de usar scripts en sus juegos y, por ejemplo, dar a su diseñador de niveles una forma más fácil de codificar la lógica del juego dentro de sus niveles.

Estas son sólo las características clave; Dejé de lado muchos otros, como la animación esquelética, el renderizado de fuentes TrueType para Unicode y el IDE de Polycode. Se puede encontrar una lista más completa (pero aún no exhaustiva) en el sitio web oficial.


Por qué Polycode?

¿Por qué otro marco? ¿Por qué debería siquiera considerar Polycode, y mucho menos comenzar a trabajar con él? No puedo persuadirte; Solo puedo dar mis propias opiniones y experiencias y dejarte ser el juez. Aquí hay algunas ventajas clave de Polycode que he encontrado durante mi tiempo con él..

  • Polycode es robusto. Con una API elegante y mínima, su forma concisa de exponer características y un editor sólido, Polycode realmente me hace sentir cómodo y en control, y soy el tipo de persona que le gusta tener todo lo posible al alcance de su mano, listo para ser Personalizado y adaptado a mis necesidades, por lo que está diciendo algo..
  • Polycode es fuerte. La amplia gama de características relevantes tanto para los pequeños plataformas 2D como para los sofisticados juegos 3D con una rica experiencia visual me ha ayudado a lograr lo que quería y a perfeccionar, sin tener que preocuparme de que mi juego se vuelva demasiado complejo para el motor. capacidades.
  • Polycode es fácil. Tiene una gran documentación y su facilidad de uso inherente nunca me ha dejado perdido. Aunque es joven y no hay muchos recursos en Internet, a menudo pude utilizar solo mi intuición y mi sentido común para deducir cómo funciona algo, lo que he aprendido es mucho más importante de lo que parece..

Proyectos notables

Aunque Polycode es muy joven, tiene varios proyectos para enorgullecerse. La mayoría de estos no son juegos, sino usos innovadores de nuestras tecnologías de simulación de reproducción, táctiles, de audio y física. Aquí están algunas:

Video musical de "Heaven" de Depeche Mode

En el video musical de la canción "Heaven" de Depeche Mode, dirigida por Tim Saccenti, se usó Polycode para hacer proyecciones decorativas en la pared detrás de la banda:


Polycode fue utilizado para proyecciones en la pared en el video musical.

U.S. Open IBM Data Wall

Cinco pantallas HD, administradas por cinco computadoras, trabajando en sincronización, todas con tecnología de Polycode. Este panel de datos visualiza los datos del US Open de 2012, y presenta simulación de física 3D, retroalimentación táctil, gráficos 3D superpuestos y redes para mantener los equipos que muestran los datos sincronizados. Desarrollado por HUSH. Más información se puede encontrar en la página del proyecto..


Polycode se usó para representar animaciones, superposiciones 3D, simular la física 3D y trabajar con la interacción del usuario. Imagen cortesía de HUSH, utilizada bajo los términos de uso justo..

Crucero espacial

Construido por Ivan Safrin, el mismo cerebro detrás del proyecto Polycode, Space Cruiser es un juego alucinante diseñado específicamente para proyecciones dentro de un domo planetario y un juego colaborativo. Se estrenó en el Planetario Hayden en el Museo Americano de Historia Natural. Polycode potencia completamente este juego interactivo, que ofrece gráficos 3D de alto rango dinámico desde seis computadoras diferentes, todo sincronizado utilizando las capacidades de red del marco. Puedes leer sobre este emocionante juego surreal en su página de proyecto.


Polycode reproduce estos gráficos asombrosos, todos en HDR, utilizando seis computadoras diferentes. Imagen cortesía de Ivan Safrin, utilizada bajo los términos de uso justo..

¿Qué conocimiento previo necesito??

Puede usar Polycode tanto desde C ++, desde Lua, como desde ambos al mismo tiempo, desacoplando los mecanismos principales de su juego (C ++ de rendimiento intensivo) y su lógica (Lua de script, intercambiable en caliente). Si solo usa Lua, no necesita tener conocimientos del lenguaje bastante complejo C ++, y puede comenzar a crear prototipos de inmediato en el gran IDE de Polycode, un editor integrado que viene con el marco..

Una vez que decida que desea más control sobre el funcionamiento interno, se encontrará en la necesidad de C ++. La decisión es tuya; Le sugiero que no aprenda C ++ si no lo sabe (especialmente si no tiene conocimientos previos de programación) de inmediato. Lua es mucho más liviano, amigable para los principiantes y más fácil de aprender, por lo que sería su mejor opción. Por otro lado, si eres un desarrollador de juegos experimentado que busca utilizar Polycode para juegos complejos y pensados, usar C ++ y Lua en tándem es el camino a seguir..

Para los tutoriales de C ++, puede consultar cplusplus.com, el lugar donde aprendí casi todo lo que sé sobre el idioma. En cuanto a Lua, puede consultar la lista exhaustiva de tutoriales en el Directorio de tutoriales de lua-users.org o, si lo prefiere, puede comprar el libro Programación en Lua que le dará una base sólida y cubrirá casi todo. todo lo que necesitas.

Se recomienda tener cierto conocimiento de cómo funcionan los juegos, pero no es realmente necesario: puede averiguarlo por su cuenta si sigue los excelentes tutoriales en Polycode.org, que se mencionan a continuación..


¿Cómo lo hago funcionar en mi máquina??

Polycode es un software joven; de hecho, en el momento de la escritura, todavía no ha alcanzado la versión 1.0.0. La mayoría de los proyectos en este estado no le dan binarios precompilados, y tampoco lo hace Polycode; Sin embargo, el sitio web oficial le proporciona todo lo necesario para que Polycode esté funcionando correctamente en su máquina..

Consulte la página en el wiki de Polycode, elija su plataforma (Polycode funciona en Windows, Linux y OS X, con soporte para Android e iOS planeado en el futuro, así que manténgase informado) ¡y puede comenzar! El proceso de construcción es sencillo; de hecho, en mi sistema Arch Linux pude construir el framework usando CMake sin siquiera leer ninguna de las instrucciones.

Nota del editor: LanceJZ ha agregado algunos consejos para que Polycode funcione con Visual Studio en los comentarios. Gracias lance!


¿Cómo empiezo a aprender a trabajar con él??

Hemos analizado las ventajas, las características, los proyectos destacados, el proceso de construcción de Polycode y ahora podemos ensuciarnos las manos y comenzar a hacer algo. El equipo de Polycode ha hecho un trabajo magnífico al cubrir muchos de los puntos clave que necesita el usuario final para comenzar a crear juegos, visualizaciones y similares de excelente apariencia. Los tutoriales de Polycode se pueden encontrar en la página de tutoriales en el sitio web oficial.

Si se queda atascado y necesita documentación detallada, siempre puede consultar la documentación oficial, a la que puede acceder desde la página "aprender" del sitio web. Si sigue atascado, siempre puede pedir ayuda en los foros o unirse al chat de IRC en #polycode a irc.freenode.net. La comunidad es amigable y útil, y el desarrollador principal a menudo responde preguntas de otros, junto con otros miembros del equipo. (He chateado con Ivan un par de veces en línea, y parece ser un gran tipo).


Conclusión

En este artículo, les presento un marco muy joven llamado Polycode. Hemos visto cómo se puede usar Polycode como motor de juego, así como para una amplia variedad de tipos de proyectos; Describí algunas de sus características clave, sus ventajas únicas y los proyectos geniales que lo utilizan, e hice todo lo posible para ayudarlo a entrar en el proceso de aprendizaje de este marco. Feliz policodificación!