Polycode is een gratis open-source (gelicentieerd onder de MIT-licentie) en platformonafhankelijk "raamwerk voor creatieve codering". Deze term is zelden te horen in de game-ontwikkelingsgemeenschap, maar wat het eigenlijk betekent, is simpel: Polycode biedt je tools om je creativiteit via code uit te drukken, en hoewel het volledig gekwalificeerd is om de "game-engine"moniker, het geeft de voorkeur aan niet. De reden is simpel: Polycode kan (en wordt) vaak gebruikt voor projecten die meer omvatten dan interactieve spellen, zoals visualisaties voor entertainment of voor wetenschappelijke doeleinden.
Ik heb Polycode gebruikt voor voornamelijk kleine games, maar ook voor een buitengewone gebruikersinterface voor zoomen en had evenveel succes bij het ontwikkelen van alle projecten. Laten we eens kijken naar wat Polycode u te bieden heeft en hopelijk u interesseren om te leren werken met dit prachtige kader.
Omdat dit geen promotiestuk is voor het framework, zal ik proberen belangrijke functies te benadrukken die interessant kunnen zijn voor gameontwikkelaars zonder in te gaan op overdreven details.
Dit zijn slechts de belangrijkste kenmerken; Ik heb veel andere dingen weggelaten, waaronder skeletanimatie, Unicode-ready TrueType-lettertypen renderen en Polycode IDE. Een vollediger (maar nog steeds niet uitputtende) lijst is te vinden op de officiële website.
Waarom een ander kader? Waarom zou u Polycode overwegen, laat staan dat u ermee gaat werken? Ik kan je niet overhalen; Ik kan alleen mijn eigen mening en ervaringen geven en je de rechter laten zijn. Hier zijn enkele belangrijke voordelen van Polycode die ik heb gevonden tijdens mijn tijd ermee.
Hoewel Polycode erg jong is, heeft het nogal wat projecten om trots op te zijn. De meeste hiervan zijn niet eens spellen, maar eerder innovatief gebruik van onze vertrouwde renderen, tactiele, audio en fysica simulatietechnieken. Hier zijn een paar:
In de videoclip voor het nummer "Heaven" van Depeche Mode, geregisseerd door Tim Saccenti, werd Polycode gebruikt om decoratieve projecties op de muur achter de band te maken:
Vijf HD-schermen, beheerd door vijf computers, werken synchroon, allemaal aangedreven door Polycode. Deze gegevensmuur visualiseert gegevens van de 2012 Open van de Verenigde Staten en biedt 3D-simulatie van fysica, aanraakfeedback, overlay 3D-afbeeldingen en netwerken om te zorgen dat de computers de gegevens synchroon weergeven. Ontwikkeld door HUSH. Meer info is te vinden op de projectpagina.
Space Cruiser, gebouwd door Ivan Safrin, hetzelfde meesterbrein achter het Polycode-project zelf, is een verbazingwekkend spel dat speciaal is ontworpen voor projecties in een planetarium-koepel en een gezamenlijk spel. Het ging in première in het Hayden Planetarium in het American Museum of Natural History. Polycode drijft dit interactieve spel volledig aan, waardoor 3D-afbeeldingen met een hoog dynamisch bereik van zes verschillende computers worden weergegeven, allemaal gesynchroniseerd met behulp van de netwerkmogelijkheden van het framework. Je kunt over dit spannende, surrealistische spel lezen op de projectpagina.
Je kunt Polycode zowel van C ++, van Lua of van allebei tegelijkertijd gebruiken, waarbij je de kernmechanismen van je spel (prestatie-intensieve C ++) en de logica (gescripte, hot-swappable Lua) ontkoppelt. Als je alleen Lua gebruikt, hoef je geen kennis te hebben van de vrij complexe taal C ++, en kun je meteen prototypen in de geweldige Polycode IDE, een geïntegreerde editor die wordt meegeleverd met het framework.
Als je eenmaal hebt besloten dat je meer controle wilt hebben over de innerlijke werking, zul je merken dat je C ++ nodig hebt. De keuze is aan jou; Ik stel voor dat je C ++ niet leert als je het nog niet weet (vooral als je geen voorafgaande programmeerkennis hebt). Lua is veel lichter, beginnersvriendelijk en gemakkelijker te leren, dus dat zou je beste gok zijn. Aan de andere kant, als je een ervaren game-ontwikkelaar bent die Polycode wil gebruiken voor complexe, doordachte games, is het gebruik van C ++ en Lua de juiste keuze.
Voor C ++ -lessen kunt u verwijzen naar cplusplus.com, de plaats waar ik bijna alles heb geleerd wat ik over de taal weet. Wat Lua betreft, kun je de uitgebreide lijst met tutorials raadplegen op de lua-users.org Tutorial Directory, of, als je dat liever hebt, je het boek Programming in Lua kopen, dat je een oerdegelijke basis geeft en ongeveer alles wat je nodig hebt.
Kennis hebben van hoe games werken, wordt aanbevolen, maar niet echt vereist: je kunt het zelf uitvogelen als je de geweldige tutorials op Polycode.org volgt, waarnaar hieronder wordt verwezen.
Polycode is jonge software; in feite heeft het nog steeds niet versie 1.0.0 bereikt. De meeste projecten in deze status geven u geen vooraf gecompileerde binaire bestanden en evenmin Polycode; de officiële website biedt u echter alles wat nodig is om Polycode succesvol op uw machine te krijgen.
Raadpleeg de pagina op de Polycode-wiki, kies uw platform (Polycode werkt op Windows, Linux en OS X, met Android- en iOS-ondersteuning gepland in de toekomst, dus houd het in de gaten) en u kunt aan de slag! Het bouwproces is eenvoudig; in feite kon ik op mijn Arch Linux-systeem het framework bouwen met behulp van CMake zonder zelfs maar een van de instructies te lezen.
Opmerking van de uitgever: LanceJZ heeft enkele tips toegevoegd om Polycode in de opmerkingen met Visual Studio te laten werken. Bedankt, Lance!
We hebben de voordelen, functies, opmerkelijke projecten, het bouwproces van Polycode doorgenomen en nu kunnen we onze handen vies maken en beginnen er iets in te doen. Het Polycode-team heeft fantastisch werk geleverd door een groot aantal belangrijke punten te behandelen die een eindgebruiker nodig heeft om prachtige games, visualisaties en dergelijke te maken. De zelfstudies van Polycode zijn te vinden op de zelfstudiepagina op de officiële website.
Als je vastloopt en gedetailleerde documentatie nodig hebt, kun je altijd de officiële documentatie raadplegen die je kunt vinden op de "learn" -pagina van de website. Als je nog steeds vastzit, kun je altijd om hulp vragen op de forums of lid worden van de IRC-chat #polycode
op irc.freenode.net
. De community is vriendelijk en behulpzaam, en de hoofdontwikkelaar zelf beantwoordt vaak vragen van anderen, samen met andere leden van het team. (Ik heb een paar keer online met Ivan gesproken en hij lijkt me een geweldige kerel.)
In dit artikel introduceer ik een heel jong raamwerk met de naam Polycode. We hebben gezien hoe Polycode zowel als game-engine als voor een breed scala aan projecttypen kan worden gebruikt; Ik beschreef enkele van zijn belangrijkste functies, zijn unieke voordelen en coole projecten die het gebruiken, en ik heb mijn best gedaan om je te helpen het leerproces van dit raamwerk te leren kennen. Blije Polycoding!