Som du kanske vet är den tredje upplagan av js13kGames-tävlingen här: Den officiella starten är den 13 augusti, 13:00 CEST. Js13kGames är en tävling för HTML5-spelutvecklare där den roliga och utmanande delen av compo håller hela ditt spel under 13KB.
Den här artikeln bör vara en bra utgångspunkt om du vill lära dig hur du genererar tillgångarna och minifiera och komprimera koden så att du kan uppfylla kraven för tävlingen. Jag ger dig också verktyg som kan hjälpa dig i dina dagliga projekt om du behöver hålla dina resurser lätta.
Konkurrensen js13kGames är avsedd för HTML5-spelutvecklare och JavaScript-programmörer som vill testa sina färdigheter i strid med andra utvecklare, följa reglerna, hålla sig till deadline och vinna några priser. Tävlingen går från 13 augusti till 13 september - du har hela månaden att koda och skicka in din post. Inga externa bibliotek eller resurser som Google-teckensnitt är tillåtna. Allt du vill använda i ditt spel måste passa in i 13 kilobytes av ett ZIP-paket. Tävlingen är gratis för alla, men källkoden måste vara värd på GitHub så att andra kan lära av det i framtiden.
Den 13 kilobytegränsen är mycket restriktiv, men begränsningar gör ofta kreativitet: du måste noggrant tänka på hur man implementerar dina idéer, eftersom varje byte verkligen räknas.
Huvudsyftet med kompo är roligt. Fristen hjälper till att hålla det roligt, för du måste sluta projektet vid någon tidpunkt och kan inte fortsätta slava bort på det för alltid.
Att delta i tävlingen förbättrar din skicklighet, hjälper dig att hantera din tid på projektet och ger dig möjlighet att samarbeta med samhället. Plus det finns en chans att du kan vinna massor av intressanta priser, bli välkända, och så småningom tjäna en hink med pengar att vara en spelutvecklare. Vad mer behöver du?
Låt oss gå igenom de specifika tips och knep som du kan använda för att minska ditt spels källkod och alla använda tillgångar, från JavaScript-minifiering, genom att klippa bildstorlekar, till processnivå och ljudgenerering.
Du har en hel månad för att koda ditt spel, så du behöver inte spendera sömnlösa nätter under helgen och dricker kaffe och energidrycker för att konkurrera med andra. Du kan arbeta i din egen takt när du har tid och när du känner för det.
På grund av de snäva begränsningarna på storleken på det slutliga paketet är det nästan omöjligt att använda några ramar. Om du själv kan förbereda en liten uppsättning hjälparfunktioner som passar in i 13 kilobytgränsen är du naturligtvis mer än välkommen att göra det.
Detsamma gäller bilderna - skärmdumpar av spelen är ofta större än spelen själva, så du måste vara smart. Du kommer noga att generera allt på egen hand, eller använda mycket små, komprimerade tillgångar; det är det bästa sättet att passa hela spelet i storleken gräns.
Huvudkärnan i ditt JavaScript-spel är källkoden. Du kan generera absolut allt utan att använda andra resurser som bilder eller ljud, så det är väldigt viktigt att optimera den här koden..
Det enklaste att göra är att minska koden, vilket innebär att den kommer att bli avskriven av blankytor (flikar, mellanslag, nya linjer osv.), Utan att själva koden ändras.
Du kan ta det här ytterligare genom att använda andra verktyg som kommer att ändra din ursprungliga källkod för att komprimera dess storlek så mycket som möjligt, genom att använda kortare variabla namn och andra sådana tricks. Som en bieffekt döljer dessa verktyg också källkoden och gör den oläslig förvirring. En av de viktigaste konkurrensreglerna är att du måste ha en läsbar version av ditt inlägg på GitHub i alla fall, så klämma varje byte genom att koden i paketet med zippar är oläsligt, är helt bra.
Verktyg som Google Closure Compiler, YUI Compressor eller UglifyJS, och onlinetjänster som Compressor Rater, JSMini eller JSObfuscate, kan hjälpa dig att komprimera din kod så mycket som möjligt. Använd dem till din fördel.
Det kommer inte att finnas många bildfiler i ditt spel om du vill anpassa den till 13 kilobytes, men ändå, om du vill använda en bild måste du komprimera den så mycket som möjligt. Det finns onlineverktyg som TinyPNG och Optimizilla, installerbara applikationer som ImageOptim, kommandoradsverktyg och bygga skript för att göra det så att du kan hitta något som passar ditt arbetsflöde.
Du kan också koda ditt spel i låg upplösning med små bilder och sedan skala allt upp, eller kasta bort alla bilder och skapa allt på duken från början.
Med tanke på det begränsade utrymmet är det klokt att tänka på att randomisera nivåerna i ditt spel. Det bästa sättet att behålla det höga uppspelningsvärdet för ditt spel är att generera dina nivåer procedurellt, så att du i stället för att ha en eller två fasta nivåer kan leverera en annan upplevelse varje gång spelet spelas.
De bästa exemplen i den kategorin är roguelikes som använder labyrinter och fängelsehålor för deras nivåer. Du kan skapa en stor värld från bara några små bitar, och det kan vara annorlunda varje gång du börjar spelet. Tack vare detta tillvägagångssätt kommer dina spelare inte att bli uttråkad för fort.
Lägga till ljud i ditt spel ökar den övergripande upplevelsen, men med låtar som vanligtvis väger in på 5 MB eller mer, hur kan du passa någon i din js13k-post? Jsfxr till undsättning!
I stället för att krympa en MP3 kan du skapa egna musik och ljud effekter. Jsfxr är en JavaScript-port i sfxr-biblioteket och användes allmänt av deltagarna i förra årets tävling, vilket innebär att det är slagetestat och ger bra resultat.
Förutom de verktyg som redan nämnts kan du hjälpa dig själv genom att automatisera några av de uppgifter du har bygga system som Grunt eller Gulp kan göra förberedelserna för alla dina tillgångar mycket enklare.
Om du är fan av Gulp finns det en hel rad byggnadsuppgifter att välja mellan: Jack Rugile föreslår en Gulp-kombinationsruta av gulp-uglify + gulp-htmlmin + gulp-zip + gulp-file-storlek
medan Csaba Csecskedi lägger till klunk-imagemin
till denna samling. Du behöver inte använda den om du inte känner dig bekväm med Gulp eller bara vill arbeta bra, men den här uppsättningen kan förbättra ditt totala arbetsflöde för din js13kGames-post.
Det enda strukturella kravet bredvid storleken är att du måste ha index.html
filen i paketets huvudkatalog - allt annat är valfritt. Du kan strukturera din kod hur du vill, inkludera mappar för JavaScript, CSS och bildfiler separat, eller lägg bara in allt i HTML-filen och glöm allt annat. Du kan göra allt för hand, eller använd browserify, förbättra din CSS med LESS eller SASS, eller till och med lina din kod med ESLint. (Det var det som Florent Cailhol förberedde i sitt experimentella js13k-boilerplattor på GitHub.) Återigen: det här kan alla hjälpa dig, men inget av det krävs.
Detta kan vara uppenbart, men glöm inte att noga välja en lämplig typ av spel som passar in i 13 kilobytes, eftersom vissa av spelen är svårare att bygga (och för att hålla små) än andra. Jag säger inte att du inte kan skapa en 3D-personspelare, realtidsstrategi, stadssimulator, 3D-racingspel, trafikljusansvarig eller till och med jogga ett nätt gult blockspel som några galna utvecklare gjorde under de senaste åren, men det stora Majoriteten av posterna handlar om enkla spel med en kärnmekaniker som du sätter ihop ditt spel runt, några genererade bilder och ibland enkelt ljud.
Kom ihåg att det är bättre än att ha ett stort, oavslutat projekt som människor aldrig kommer att se. Följ initiativet One Game a Month, håll fast vid deadline och försök att avsluta din post i tid. Håll det litet i omfattning såväl som storlek; Om du är nöjd med den fungerande prototypen och har lite ledigt utrymme, kan du alltid lägga till nya funktioner i spelet senare. Polska ditt projekt så mycket som möjligt och du kommer att kunna vinna tävlingen genom att bygga spel som SpacePi eller Radius Raid.
Det här är de grundläggande tips och tekniker som kan hjälpa dig att koda ditt spel för js13kGames-tävlingen, men du behöver inte använda dem. Det finns många verktyg du kan använda i ditt spel för att hålla det i storleksgränsen. det beror på dina önskemål. Om du inte har någon erfarenhet, det bästa är att lära av andra.
Du kan kontrollera källkoden för inmatningarna från de föregående åren, spela spel och se vad som är möjligt inom gränsen, gräva genom blogginlägget som förklarar människors erfarenheter och läs källkoden och lära av den. Ställ frågor genom sociala medier, diskutera dina idéer och problem med andra. Det är en tävlings skönhet - du är inte ensam; du kan samarbeta med andra, bilda lag och nivåera dina färdigheter på nolltid.
Alla verktyg och tjänster som anges i den här artikeln ska hjälpa dig att förbereda dig för js13kGames-tävlingen. Det är viktigt att inte fixa din uppmärksamhet på verktygen ensam; du bör också titta på vad andra gör, lära av sina erfarenheter och vara en del av samhället.
Om du har olika sätt att förbereda dig på tävlingen, snälla dela dem i kommentarerna! Låt oss alla gynna, lära och hjälpa varandra. Trots allt började tävlingen vara rolig och underhållande, med lite lärande under vägen.
Kolla in dessa ytterligare resurser till tävlingen: