Polycode lernen

Polycode ist ein kostenloses Open Source (lizenziert unter der MIT-Lizenz) und ein plattformübergreifendes "Framework für kreative Codierung". Dieser Begriff ist in der Spieleentwicklungsgemeinschaft selten zu hören, aber im Grunde bedeutet das einfach: Polycode stellt Ihnen Werkzeuge zur Verfügung, mit denen Sie Ihre Kreativität durch Code ausdrücken können.Spiel-Engine"moniker, lieber nicht. Der Grund ist einfach: Polycode kann (und wird oft) für Projekte verwendet werden, die mehr als interaktive Spiele umfassen, wie z. B. Visualisierungen zur Unterhaltung oder zu wissenschaftlichen Zwecken.

Ich habe Polycode hauptsächlich für kleine Spiele, aber auch für eine außergewöhnliche Zoom-Benutzeroberfläche verwendet und hatte bei der Entwicklung aller Projekte gleichermaßen großen Erfolg. Lassen Sie uns einen Blick darauf werfen, was Polycode Ihnen bieten kann, und Sie hoffentlich dazu anregen, mit diesem wundervollen Rahmen zu arbeiten.


Was bietet Polycode??

Da dies kein Werbematerial für das Framework ist, werde ich versuchen, die wichtigsten Funktionen hervorzuheben, die für Spieleentwickler von Interesse sein könnten, ohne auf Details einzugehen.

  • 2D- und 3D-Grafik: Das Polycode-Framework bietet Ihnen einfache, effektiv entworfene Systeme zum Zeichnen von 2D- und 3D-Grafiken. Dies geschieht jedoch nicht auf Kosten der Geschwindigkeit, und es werden auch die für fortgeschrittene Benutzer erforderlichen Funktionen nicht beeinträchtigt - eine Leistung, die viele der heute gängigen Rendering-Engines nicht schaffen. Zuerst hatte ich den Verdacht, dass Polycode nur grundlegende 3D-Grafikfunktionen bieten würde, aber ich änderte meine Meinung, als ich sah, wie die Pipeline entworfen wurde. Es ist so anpassbar, wie es nur geht, und ermöglicht die Implementierung von Methoden wie z. B. leichten Pre-Pass oder verzögerten Schatten, ohne den Framework-Code zu ändern.
  • Eingabeverarbeitung: Mit Polycode können Sie Maus, Tastatur, Joystick und Berührungseingaben über ein einheitliches Ereignisverarbeitungssystem verwalten. Diese Funktion ist offensichtlich unerlässlich für alles, was sich selbst als Game Engine bezeichnet.
  • Netzwerkunterstützung: Die Netzwerk-API sieht nicht zu kompliziert aus und beeinträchtigt auch keine Funktionen. Ich habe es nicht viel persönlich gebraucht, aber bisher hat es für mich nie Probleme gebracht, und ich weiß, dass es von den bekanntesten Projekten, die mit der Plattform entwickelt wurden, ausgiebig genutzt wird.
  • Audio: Mit Polycode können Sie 2D- und 3D-Positionsaudio abspielen, einschließlich Funktionen wie Streaming (für lange Audiodateien wie Musiktitel). Das Feature-Set ist nicht spektakulär, sollte aber für die meisten Entwickler von Indie-Spielen ausreichen.
  • 2D- und 3D-Physik: Über Plugins mit dem Core-Framework realisiert und Box2D und Bullet verwendet - beides führende Bibliotheken in ihren jeweiligen Bereichen - Die Physics-API von Polycode ist kompetent, durchdacht und robust. Es war auch eine Freude gewesen, viel mehr als nur die darunterliegenden Bibliotheken zu benutzen: während ich es nicht hatte Probleme Mit Bullet habe ich festgestellt, dass es für Benutzer, die sich mit der 3D-Physik befassen, zu viel und zu spärlich dokumentiertes Material gibt. Mit Polycode ist die Physik-API unkompliziert und Sie können fast nur Ihren gesunden Menschenverstand einsetzen, was für Neulinge sehr ermutigend ist, die am Anfang Schwierigkeiten haben, Dinge zu finden.
  • Dual-Lua- und C ++ - API: Dies ist ein einzigartiger One-Polycode, der Ihnen seine API sowohl aus den Programmiersprachen C ++ als auch von Lua zur Verfügung stellt. Auf diese Weise können Sie mit nur einem Klick veröffentlichen, wenn Sie mit Lua schreiben. Außerdem haben Sie die Möglichkeit, Skripts in Ihren Spielen zu verwenden und beispielsweise Ihrem Level-Designer eine einfachere Möglichkeit zu geben, die Spielelogik in ihren Levels zu codieren.

Dies sind nur die Hauptmerkmale. Ich habe viele andere ausgelassen, darunter Skelett-Animationen, Unicode-fähige TrueType-Schriftarten und Polycode IDE. Eine vollständigere (aber immer noch nicht vollständige) Liste kann auf der offiziellen Website gefunden werden.


Warum Polycode??

Warum ein anderer Rahmen? Warum sollten Sie Polycode überhaupt in Betracht ziehen, geschweige denn damit arbeiten? Ich kann dich nicht überzeugen; Ich kann nur meine eigenen Meinungen und Erfahrungen abgeben und Sie dürfen Richter sein. Hier sind einige wichtige Vorteile von Polycode, die ich während meiner Zeit damit gefunden habe.

  • Polycode ist robust. Mit einer schlanken, minimalen API, der übersichtlichen Darstellung von Funktionen und einem soliden Editor, fühle ich mich bei Polycode wirklich wohl und unter Kontrolle - und ich bin der Typ, der gerne alles Mögliche in Reichweite hat maßgeschneidert und auf meine Bedürfnisse zugeschnitten, das heißt also etwas.
  • Polycode ist stark. Die breite Palette an Funktionen, die sowohl für kleine 2D-Plattformspieler als auch für anspruchsvolle 3D-Spiele mit reichem visuellem Erlebnis relevant sind, hat mir geholfen, das zu erreichen, was ich wollte, und es auf den Punkt zu bringen, ohne dass ich mir Sorgen machen musste, ob mein Spiel für die Engine zu komplex wird Fähigkeiten.
  • Polycode ist einfach. Es hat eine großartige Dokumentation und seine inhärente Benutzerfreundlichkeit hat mich nie verloren. Obwohl es noch jung ist und es im Internet nicht viele Ressourcen gibt, konnte ich oft nur meine Intuition und meinen gesunden Menschenverstand verwenden, um zu verstehen, wie etwas funktioniert, was ich gelernt habe, viel wichtiger als es klingt.

Bemerkenswerte Projekte

Obwohl Polycode noch sehr jung ist, hat es einige Projekte, auf die man stolz sein kann. Die meisten davon sind nicht einmal Spiele, sondern innovative Anwendungen unserer bekannten Rendering-, Taktil-, Audio- und Physik-Simulationstechnologien. Hier sind einige:

Music Video für "Heaven" von Depeche Mode

In dem Musikvideo zum Song "Heaven" von Depeche Mode unter der Regie von Tim Saccenti wurde Polycode verwendet, um dekorative Projektionen an der Wand hinter der Band zu erzeugen:


Polycode wurde für Projektionen an der Wand im Musikvideo verwendet.

US Open IBM Data Wall

Fünf HD-Bildschirme, die von fünf Computern verwaltet werden, arbeiten synchron und arbeiten alle mit Polycode. Diese Datenwand visualisiert Daten aus den US Open 2012 und bietet 3D-Physik-Simulation, Berührungsfeedback, überlagerte 3D-Grafik und Vernetzung, damit die Computer die Daten synchron anzeigen. Entwickelt von HUSH. Weitere Informationen finden Sie auf der Projektseite.


Polycode wurde zum Rendern von Animationen, 3D-Überlagerungen, zum Simulieren der 3D-Physik und zum Arbeiten mit Benutzerinteraktionen verwendet. Bild mit freundlicher Genehmigung von HUSH, verwendet unter den Bedingungen der fairen Nutzung.

Raumkreuzer

Space Cruiser wurde von Ivan Safrin, dem gleichen Vordenker hinter dem Polycode-Projekt selbst, erbaut und ist ein überwältigendes Spiel, das speziell für Projektionen in einer Planetariumskuppel und für gemeinsames Spielen entwickelt wurde. Es wurde im Hayden Planetarium des American Museum of Natural History uraufgeführt. Polycode unterstützt dieses interaktive Spiel vollständig und bietet hochdynamische 3D-Grafiken von sechs verschiedenen Computern, die alle mithilfe der Netzwerkfunktionen des Frameworks synchronisiert werden. Über dieses aufregende, surreale Spiel können Sie auf der Projektseite nachlesen.


Polycode rendert diese fantastischen Grafiken in HDR mit sechs verschiedenen Computern. Bild mit freundlicher Genehmigung von Ivan Safrin, verwendet unter den Bedingungen der fairen Nutzung.

Was für Vorwissen brauche ich??

Sie können Polycode sowohl von C ++ als auch von Lua oder von beiden gleichzeitig verwenden, um die Kernmechanismen Ihres Spiels (leistungsintensives C ++) und dessen Logik (skriptbasierte, hot-swappable Lua) zu entkoppeln. Wenn Sie nur Lua verwenden, benötigen Sie keine Kenntnisse der recht komplexen Sprache C ++, und Sie können sofort mit dem Prototyping in der großen Polycode IDE beginnen, einem integrierten Editor, der im Framework enthalten ist.

Wenn Sie sich entschieden haben, mehr Kontrolle über die inneren Abläufe zu haben, benötigen Sie C ++. Es ist deine Entscheidung; Ich schlage vor, Sie lernen C ++ nicht, wenn Sie es noch nicht kennen (insbesondere, wenn Sie keine Programmierkenntnisse haben). Lua ist viel leichter, Anfängerfreundlich und leichter zu erlernen, daher wäre dies die beste Wahl. Auf der anderen Seite, wenn Sie ein erfahrener Spieleentwickler sind, der Polycode für komplexe, durchdachte Spiele verwenden möchte, ist die Verwendung von C ++ und Lua der richtige Weg.

Für C ++ - Tutorials können Sie auf cplusplus.com verweisen, wo ich fast alles gelernt habe, was ich über die Sprache weiß. Was Lua betrifft, können Sie die ausführliche Liste der Tutorials im lua-users.org Tutorial-Verzeichnis nachschlagen. Wenn Sie möchten, können Sie das Buch „Programming in Lua“ kaufen, das Ihnen eine absolut solide Basis bietet Alles, was du brauchst.

Es ist empfehlenswert, etwas über die Funktionsweise von Spielen zu wissen, dies ist jedoch nicht unbedingt erforderlich. Wenn Sie die großartigen Tutorials auf Polycode.org (siehe unten) befolgen, können Sie dies selbst herausfinden.


Wie bekomme ich es auf meinem Rechner zum Laufen??

Polycode ist eine junge Software. zum jetzigen Zeitpunkt hat es noch nicht die Version 1.0.0 erreicht. Bei den meisten Projekten in diesem Zustand erhalten Sie keine vorkompilierten Binärdateien, und auch Polycode nicht. Auf der offiziellen Website finden Sie jedoch alles, was Sie benötigen, um Polycode erfolgreich auf Ihrem Computer zu installieren.

Auf der Seite des Polycode-Wikis können Sie Ihre Plattform auswählen (Polycode funktioniert unter Windows, Linux und OS X, Android- und iOS-Unterstützung ist in der Zukunft geplant, also bleiben Sie dran), und Sie können loslegen! Der Build-Prozess ist unkompliziert. Tatsächlich konnte ich auf meinem Arch Linux-System das Framework mit CMake erstellen, ohne die Anweisungen zu lesen.

Anmerkung des Herausgebers: LanceJZ hat einige Tipps hinzugefügt, damit Polycode in den Kommentaren mit Visual Studio zusammenarbeitet. Danke, Lance!


Wie fange ich an zu lernen, damit zu arbeiten??

Wir haben die Vorteile, Funktionen, bemerkenswerten Projekte und den Konstruktionsprozess von Polycode durchgesehen und können uns jetzt die Hände schmutzig machen und tatsächlich etwas damit anfangen. Das Polycode-Team hat hervorragende Arbeit geleistet, indem es viele der wichtigsten Punkte abdeckt, die ein Endbenutzer benötigt, um großartig aussehende Spiele, Visualisierungen und ähnliches zu erstellen. Die Polycode-Tutorials finden Sie auf der Tutorial-Seite der offiziellen Website.

Wenn Sie stecken bleiben und eine detaillierte Dokumentation benötigen, können Sie immer auf die offizielle Dokumentation zugreifen, die Sie auf der Seite "Lernen" der Website erreichen können. Wenn Sie immer noch nicht weiterkommen, können Sie immer um Hilfe in den Foren bitten oder am IRC-Chat teilnehmen #polycode beim irc.freenode.net. Die Community ist freundlich und hilfsbereit, und der Hauptentwickler selbst beantwortet häufig Fragen anderer Personen zusammen mit anderen Teammitgliedern. (Ich habe mich online ein paar Mal mit Ivan unterhalten, und er scheint ein großartiger Kerl zu sein.)


Fazit

In diesem Artikel habe ich Ihnen ein sehr junges Framework namens Polycode vorgestellt. Wir haben gesehen, wie Polycode sowohl als Spiel-Engine als auch für eine Vielzahl von Projekttypen verwendet werden kann. Ich habe einige der Hauptmerkmale, die einzigartigen Vorteile und die coolen Projekte, die es verwenden, beschrieben. Ich habe mein Bestes getan, um Ihnen beim Einstieg in den Lernprozess dieses Frameworks zu helfen. Viel Spaß beim Polycoding!