Comment apprendre le polycode

Polycode est un "cadre pour le codage créatif" gratuit, à code source ouvert (sous licence MIT) et multiplate-forme. Ce terme est rarement entendu dans la communauté de développement de jeux, mais sa signification est simple: Polycode vous fournit des outils pour exprimer votre créativité au moyen de code, et même s'il est pleinement qualifié pour supporter les "moteur de jeu"moniker, il préfère ne pas le faire. La raison en est simple: Polycode peut être (et est souvent) utilisé pour des projets qui englobent plus que des jeux interactifs, tels que des visualisations utilisées à des fins de divertissement ou à des fins scientifiques..

J'ai utilisé Polycode pour la plupart des petits jeux, mais aussi pour une interface utilisateur de zoom inhabituelle et j'ai également eu beaucoup de succès dans le développement de tous les projets. Jetons un coup d'œil à ce que Polycode peut vous offrir et espérons-vous vous intéresser à apprendre à travailler avec ce cadre merveilleux.


Qu'est-ce que Polycode fournit??

Comme ce n’est pas une pièce promotionnelle pour le framework, je vais essayer de mettre l’accent sur les fonctionnalités clés qui pourraient intéresser les développeurs de jeux sans entrer dans les détails..

  • Graphiques 2D et 3D: Le framework Polycode vous fournit des systèmes simples et efficaces pour dessiner des graphiques 2D et 3D. Cela ne se fait pas au détriment de la vitesse, ni des fonctionnalités exigées par les utilisateurs expérimentés - un exploit que de nombreux moteurs de rendu populaires ne parviennent pas à réaliser. Au début, j’imaginais que Polycode ne me donnerait que des capacités graphiques 3D de base, mais j’ai changé d’avis lorsque j’ai vu comment le pipeline était conçu. il est aussi personnalisable que possible, et permet l'implémentation de méthodes telles que le pré-passage léger ou l'ombrage différé sans jamais changer le code du framework.
  • Traitement des entrées: Polycode vous permet de gérer la saisie de la souris, du clavier, du joystick et du toucher via son système uniforme de gestion des événements. Cette fonctionnalité est évidemment essentielle pour tout ce qui est proche de s'appeler un moteur de jeu..
  • Support de réseau: L'API de réseau ne semble pas trop compliquée et ne sacrifie pas non plus les fonctionnalités. Je ne l'ai pas beaucoup utilisé personnellement, mais jusqu'à présent, cela ne m'a jamais posé aucun problème, et je sais qu'il est largement utilisé par les projets les plus acclamés développés à l'aide de la plateforme..
  • l'audio: Avec Polycode, vous pouvez lire les positions audio 2D et 3D, avec des fonctionnalités telles que la diffusion en continu (pour les fichiers audio longs tels que les pistes de musique). Les fonctionnalités présentées ici ne sont pas spectaculaires, mais elles devraient suffire aux besoins de la plupart des développeurs de jeux indépendants..
  • Physique 2D et 3D: Réalisé via des plug-ins au cadre principal et en utilisant Box2D et Bullet, deux bibliothèques de pointe dans leurs domaines respectifs, l'API de physique de Polycode est compétente, bien pensée et robuste. C’était aussi un plaisir d’utiliser bien plus que d’utiliser les bibliothèques sous-jacentes: alors que je n’avais pas problèmes En utilisant Bullet, j’ai trouvé que, pour les utilisateurs qui entrent dans le domaine de la physique 3D, il existe trop de matériel documenté et trop peu documenté. Avec Polycode, l’API de physique est simple et vous pouvez presque utiliser votre bon sens pour vous en occuper, ce qui est très encourageant pour les novices qui peuvent avoir du mal à comprendre le début..
  • API Dual Lua et C ++: Ceci est un one-Polycode unique qui vous propose son API à la fois des langages de programmation C ++ et Lua. Cela vous permet de publier en un clic si vous écrivez avec Lua, avec la possibilité d'utiliser des scripts dans vos jeux et, par exemple, de donner à votre concepteur de niveaux un moyen plus simple de coder la logique de jeu dans leurs niveaux..

Ce ne sont que les principales caractéristiques. J'ai omis de nombreuses autres tâches, notamment l'animation squelettique, le rendu des polices TrueType compatible Unicode et l'EDI Polycode. Une liste plus complète (mais pas encore exhaustive) peut être trouvée sur le site officiel.


Pourquoi Polycode?

Pourquoi un autre cadre? Pourquoi devriez-vous même considérer Polycode, et encore moins commencer à travailler avec lui? Je ne peux pas vous persuader; Je ne peux que donner mes propres opinions et expériences et vous laisser être le juge. Voici quelques avantages clés de Polycode que j'ai découverts au cours de ma vie.

  • Le polycode est robuste. Avec une API épurée et minimale, une manière concise d’exposer les fonctionnalités et un éditeur solide, Polycode me permet vraiment de me sentir à l'aise et en contrôle - et je suis le genre de personne qui aime avoir tout ce qui est possible à portée de main, prête à être personnalisé et adapté à mes besoins, de sorte que dire quelque chose.
  • Le polycode est fort. La large gamme de fonctionnalités utiles aussi bien pour les petits joueurs de plateforme 2D que pour les jeux 3D sophistiqués avec une expérience visuelle riche m'a aidée à réaliser ce que je voulais et à le peaufiner à la perfection, sans avoir à me soucier de la complexité de mon jeu pour le moteur capacités.
  • Le polycode est facile. Il possède une excellente documentation et sa facilité d'utilisation inhérente ne m'a jamais perdu. Bien qu’il soit jeune et qu’il n’y ait pas beaucoup de ressources sur Internet, j’étais souvent capable d’utiliser mon intuition et mon bon sens pour comprendre comment quelque chose fonctionne, ce que j’ai appris est bien plus important que l’on dirait..

Projets notables

Bien que Polycode soit très jeune, il a plusieurs projets sur lesquels se vanter. La plupart d’entre elles ne sont même pas des jeux, mais plutôt des utilisations novatrices de nos technologies de rendu habituelles, de rendu tactile, audio et physique. Voilà quelque:

Clip vidéo pour "Heaven" de Depeche Mode

Dans le clip vidéo de la chanson "Heaven" de Depeche Mode, réalisé par Tim Saccenti, Polycode était utilisé pour réaliser des projections décoratives sur le mur derrière le groupe:


Le polycode a été utilisé pour des projections sur le mur dans le clip vidéo.

US Open IBM Data Wall

Cinq écrans HD gérés par cinq ordinateurs et synchronisés, tous alimentés par Polycode. Ce mur de données visualise les données de l’US Open de 2012 et comporte une simulation physique 3D, des retours tactiles, des graphiques 3D superposés et un réseau pour que les ordinateurs affichent les données de manière synchronisée. Développé par HUSH. Plus d'informations peuvent être trouvées sur la page du projet.


Polycode a été utilisé pour rendre des animations, des superpositions 3D, simuler la physique 3D et travailler avec l’interaction de l’utilisateur. Image reproduite avec l'aimable autorisation de HUSH, utilisée selon les conditions d'utilisation équitable.

Space Cruiser

Construit par Ivan Safrin, le même cerveau derrière le projet Polycode, Space Cruiser est un jeu hallucinant conçu spécialement pour les projections à l'intérieur d'un dôme de planétarium et le jeu collaboratif. Il a été créé pour la première fois au Hayden Planetarium du American Museum of Natural History. Polycode exploite pleinement ce jeu interactif en générant des graphismes 3D à plage dynamique élevée à partir de six ordinateurs différents, tous synchronisés à l'aide des capacités de mise en réseau du framework. Vous pouvez lire sur ce jeu excitant et surréaliste sur sa page de projet.


Polycode rend ces graphiques impressionnants, tous en HDR, en utilisant six ordinateurs différents. Image reproduite avec la permission d'Ivan Safrin, utilisée dans les conditions d'utilisation équitable.

De quelles connaissances antérieures ai-je besoin??

Vous pouvez utiliser Polycode à la fois à partir de C ++, de Lua ou des deux à la fois, pour découpler les mécanismes centraux de votre jeu (C ++ à hautes performances) et sa logique (Lua scripté et remplaçable à chaud). Si vous utilisez uniquement Lua, vous n'avez pas besoin de connaître le langage plutôt complexe C ++, et vous pouvez commencer immédiatement à prototyper dans le formidable IDE Polycode, un éditeur intégré fourni avec le cadre..

Une fois que vous décidez que vous voulez plus de contrôle sur le fonctionnement interne, vous vous retrouvez dans le besoin de C ++. Le choix t'appartient; Je suggère de ne pas apprendre le C ++ si vous ne le connaissez pas déjà (surtout si vous n’avez pas de connaissances en programmation préalable) tout de suite. Lua est beaucoup plus léger, convivial pour les débutants et plus facile à apprendre. Ce serait donc votre meilleur pari. D'un autre côté, si vous êtes un développeur de jeux expérimenté et que vous souhaitez utiliser Polycode pour des jeux complexes et pensés, utiliser C ++ et Lua en tandem est la solution..

Pour les tutoriels C ++, vous pouvez vous référer à cplusplus.com, le lieu où j'ai appris à peu près tout ce que je sais de la langue. Quant à Lua, vous pouvez vous reporter à la liste exhaustive des tutoriels du répertoire de tutoriels lua-users.org ou, si vous préférez, acheter le livre Programming in Lua, qui vous donnera une base solide et couvre à peu près tout ce dont vous avez besoin.

Avoir quelques connaissances sur le fonctionnement des jeux est recommandé, mais pas vraiment requis: vous pouvez le découvrir vous-même si vous suivez les formidables tutoriels sur Polycode.org, mentionnés ci-dessous..


Comment puis-je le faire fonctionner sur ma machine?

Polycode est un jeune logiciel. en fait, à la date d'écriture, il n'avait toujours pas atteint la version 1.0.0. La plupart des projets dans cet état ne vous fournissent pas de fichiers binaires précompilés, pas plus que Polycode; Cependant, le site officiel vous fournit tout ce dont vous avez besoin pour que Polycode soit opérationnel sur votre machine..

Reportez-vous à la page du wiki Polycode, choisissez votre plate-forme (Polycode fonctionne sous Windows, Linux et OS X, avec la prise en charge Android et iOS prévue à l'avenir, alors restez à l'écoute) et vous pourrez commencer! Le processus de construction est simple. En fait, sur mon système Arch Linux, j'ai pu construire le framework en utilisant CMake sans même lire les instructions..

Note de l'éditeur: LanceJZ a ajouté quelques conseils pour que Polycode fonctionne avec Visual Studio dans les commentaires. Merci, Lance!


Comment puis-je commencer à apprendre à travailler avec elle?

Nous avons survolé les avantages, les fonctionnalités, les projets remarquables, le processus de construction de Polycode et maintenant nous pouvons nous salir les mains et commencer à réellement y jouer un rôle. L’équipe Polycode a fait un travail magnifique en couvrant un grand nombre des points clés dont un utilisateur final a besoin pour créer de superbes jeux, visualisations, etc. Les didacticiels Polycode sont disponibles sur la page de didacticiels du site officiel..

Si vous êtes bloqué et avez besoin d'une documentation détaillée, vous pouvez toujours vous reporter à la documentation officielle, accessible depuis la page "Apprendre" du site Web. Si vous êtes toujours bloqué, vous pouvez toujours demander de l'aide sur les forums ou rejoindre le chat IRC sur #polycode à irc.freenode.net. La communauté est amicale et serviable, et le développeur principal lui-même répond souvent aux questions des autres, ainsi que des autres membres de l'équipe. (J'ai discuté avec Ivan à quelques reprises en ligne et il a l'air d'un gars formidable.)


Conclusion

Dans cet article, je vous présente un très jeune framework appelé Polycode. Nous avons vu comment Polycode peut être utilisé comme moteur de jeu ainsi que pour une grande variété de types de projets. J'ai décrit certaines de ses caractéristiques principales, ses avantages uniques et les projets intéressants qui l'utilisent, et j'ai fait de mon mieux pour vous aider à intégrer le processus d'apprentissage de ce cadre. Joyeux Polycodage!