Polycode är en fri, öppen källkod (licensierad enligt MIT-licensen) och plattformen "Framework for Creative Coding". Denna term hörs sällan inom spelutvecklingsgemenskapen, men vad det i grunden betyder är enkelt: Polycode ger dig verktyg för att uttrycka din kreativitet genom kod och även om det är fullt kvalificerat att bära "spelmotor"moniker, det föredrar inte. Orsaken är enkel: Polycode kan (och ofta används) för projekt som omfattar mer än interaktiva spel, såsom visualiseringar som används för underhållning eller vetenskapliga ändamål.
Jag har använt Polycode för mestadels små spel, men också för ett vanligt användargränssnitt och hade lika stor framgång för att utveckla alla projekt. Låt oss ta en titt på vad Polycode kan erbjuda dig, och förhoppningsvis få dig intresserad av att lära dig att arbeta med denna underbara ram.
Eftersom det här inte är en kampanj för ramverket ska jag försöka betona viktiga funktioner som kan vara av intresse för spelutvecklare utan att gå in i överdriven detalj.
Dessa är bara nyckelfunktionerna; Jag slog ut många andra, inklusive skelettanimering, Unicode-redo TrueType-teckensnitt och Polycode IDE. En mer fullständig (men fortfarande inte uttömmande) lista finns på den officiella hemsidan.
Varför en annan ram? Varför ska du ens överväga Polycode, än mindre börja jobba med det? Jag kan inte övertyga dig Jag kan bara ge mina egna åsikter och erfarenheter och låta dig vara domaren. Här är några viktiga fördelar med Polycode jag har hittat under min tid.
Även om Polycode är väldigt ung, har det många projekt att stolta på. De flesta av dessa är inte ens spel, utan ganska innovativa användningsområden av vår kända teknik för simulering, taktil, ljud och fysik. Här är några:
I musikvideot för låten "Heaven" av Depeche Mode, regisserad av Tim Saccenti, användes Polycode för att göra dekorativa projektioner på väggen bakom bandet:
Fem HD-skärmar, som hanteras av fem datorer, arbetar i synkronisering, alla drivna av Polycode. Denna datavägg visualiserar data från 2012 U.S. Open, och har 3D-fysik simulering, touch feedback, överlagrad 3D-grafik och nätverk för att hålla datorerna som visar data i synkronisering. Utvecklad av HUSH. Mer information finns på projektsidan.
Byggd av Ivan Safrin, samma mastermind bakom Polycode-projektet i sig, är Space Cruiser ett tänkande spel som är utformat speciellt för projektioner i en planetariumkupol och samspel. Det var premiär i Hayden Planetarium på American Museum of Natural History. Polycode fullt ut driver detta interaktiva spel, vilket ger hög dynamiskt intervall 3D-grafik från sex olika datorer, alla synkroniseras med rammens nätverksfunktioner. Du kan läsa om detta spännande, surrealistiska spel på sin projektsida.
Du kan använda Polycode både från C ++, från Lua eller från båda samtidigt, koppla bort spelets kärnmekanismer (prestationsintensiva C ++) och dess logik (skriptad, hot-swappable Lua). Om du bara använder Lua behöver du inte kännedom om det ganska komplicerade språket C ++, och du kan börja prototypera direkt i den stora Polycode IDE, en integrerad redaktör som följer med ramverket.
När du bestämmer dig för att du vill ha mer kontroll över de inre arbeten, hittar du dig själv i behov av C ++. Valet är ditt; Jag föreslår att du inte lär dig C ++ om du inte redan vet det (speciellt om du inte har tidigare programmeringskunskaper) direkt. Lua är mycket lättare, nybörjevänlig och lättare att lära sig, så det skulle vara din bästa satsning. Å andra sidan, om du är en erfaren spelutvecklare som vill använda Polycode för komplexa, genomtänkta spel, använder du C ++ och Lua i tandem är vägen att gå.
För C ++-handledning kan du hänvisa till cplusplus.com, den plats där jag lärde mig nästan allt jag vet om språket. När det gäller Lua kan du se den uttömmande listan över handledning på Lua-users.org Handledningskatalog eller, om du föredrar, kan du köpa boken Programmering i Lua, som ger dig en fast bas och täcker bara om allt du behöver.
Har lite kunskap om hur spelarbete rekommenderas men inte egentligen krävs: du kan räkna ut det själv om du följer de stora handledningarna på Polycode.org, som anges nedan.
Polycode är ung programvara; Faktum är att det fortfarande inte har nått version 1.0.0 som skrivande. De flesta projekt i detta tillstånd ger dig inte förkompilerade binärer, och inte heller Polycode; Den officiella hemsidan ger dig emellertid allt som behövs för att framgångsrikt få Polycode upp och köra på din maskin.
Se sidan på Polycode wiki, välj din plattform (Polycode fungerar på Windows, Linux och OS X, med Android och iOS-stöd som planeras i framtiden, så håll dig stillad) och du kan komma igång! Byggprocessen är enkel; Faktum är att jag på min Arch Linux-system kunde bygga ramverket med CMake utan att ens läsa någon av instruktionerna.
Redaktörens anteckning: LanceJZ har lagt till några tips för att få Polycode att arbeta med Visual Studio i kommentarerna. Tack, Lance!
Vi har skumrat genom Polykods fördelar, funktioner, anmärkningsvärda projekt, byggprocessen och nu kan vi få våra händer smutsiga och börja faktiskt göra någonting i den. Polycode-teamet har gjort ett fantastiskt jobb för att täcka många viktiga punkter som en slutanvändare behöver för att skapa snygga spel, visualiseringar och liknande. Polycode tutorials finns på handledningssidan på den officiella hemsidan.
Om du fastnar och behöver detaljerad dokumentation kan du alltid referera till den officiella dokumentationen, som du kan nå från sidan "Lär dig" på webbplatsen. Om du fortfarande är fast kan du alltid be om hjälp på forumet eller gå med i IRC-chatten på #polycode
på irc.freenode.net
. Gemenskapen är vänlig och hjälpsam, och huvudutvecklaren själv svarar ofta frågor från andra, tillsammans med andra medlemmar i laget. (Jag har chattat med Ivan ett par gånger på nätet, och han verkar som en bra kille.)
I denna artikel har jag presenterat en mycket ung ram som heter Polycode. Vi har sett hur Polycode kan användas som en spelmotor såväl som för en mängd olika projekttyper; Jag beskrev några av dess nyckelfunktioner, dess unika fördelar och coola projekt som använder det, och jag gjorde mitt bästa för att hjälpa dig att komma in i lärandeprocessen av denna ram. Glad Polykodning!