I den här artikeln utforskar vi flera spelmotorer och ramverk, och belyser några av de viktigaste fördelarna som de erbjuder. Efter att ha läst den här artikeln kommer du att ha flera alternativ att välja mellan för att göra nästa stora hit. Observera att vi bara fokuserar på 2D-aspekterna av dessa plattformar. Låt oss börja.
Cocos2d är en fri, öppen källkod, kompatibel med både Swift och Objective-C. Den har stöd för iOS och OS X, och det stöder också Android via SpriteBuilder Android-plugin, förutsatt att din kod är skriven i Objective-C. Snabbt stöd för Android är under utveckling.
Projekt i Cocos2d skapas genom SpriteBuilder, en grafisk designmiljö som du kan använda för att snabbt prototyper och bygga spel. Du behöver inte använda SpriteBuilder för att bygga ditt spel, men projektskapande måste ske via SpriteBuilder.
Scenhantering sker via CCDirector
klass, som kan utnyttja många övergångar med CCTransition
klass. Det erbjuder animationer genom CCAnimation
klass och handlingar, till exempel flytta, skala och rotera, med dess CCAction
klass. Cocos2d har stöd för partikelsystem med CCParticleSystem
klass och har stöd för kakel kartor med CCTiledMap
klass.
Cocos2d använder också OpenGL som dess återgivningsmotor. Det använder Chipmunk som sin fysikmotor. Om du gillar Objective-C eller Swift, och du vill utveckla för flera plattformar (iOS och Android), är Cocos2d en ram värt att överväga.
Cocos2d-x är en C ++-port av Cocos2d som kan kompilera till många andra plattformar. Cocos2d-x kan kompilera till iOS, Android, Windows Phone, OS X, Windows och Linux.
Cocos2d-x kommer inte med SpriteBuilder. Det har dock några intressanta projekt, som Cocos Creator, som tillhandahåller ramar, scenredigering, debugging, förhandsgranskning av spel och publicering till flera plattformar.
Unity är en mobilspelmotor som stöder C # och UnityScript, ett språk utformat specifikt för Unity och modellerat efter JavaScript. Det är plattform och kan distribueras till många plattformar, inklusive PlayStation och Xbox. Det finns en fri utgåva och en professionell upplaga som erbjuder fler funktioner. Mer information finns på Unity webbplats.
Det finns en inbyggd sprite editor där du kan visuellt skära dina bilder och ett animeringsfönster som låter dig lägga ut och organisera animeringar och lägga till nyckelram animeringar att sprites. Det är också möjligt att visuellt designa partikelsystem inom Unity-redigeraren.
Unity använder sin egen proprietära fysikmotor. Enhet har en inbyggd kamera, vilket gör att navigering i spelvärlden är enkel. Du kan visuellt lägga ut scener och Unity har ett användargränssnitt med komponenter, till exempel knappar, reglage och menyer. Det finns också stöd för sprite-packning inom Unity-redigeraren.
Enhet är ett kraftverk när det gäller spelmotorer. Om du behöver en plattformslösning som har förmågan att använda ett brett utbud av enheter och du föredrar att programmera i antingen C # eller UnityScript, är Unity ett bra val. En annan trevlig sak om Unity är tillgångsbutiken där du kan hitta eller köpa tillgångar du kan använda i dina spel.
SpriteKit är Apples proprietära 2D-spelutvecklingsram. Det är bara tillgängligt på iOS och OS X. SpriteKit stöder både Swift och Objective-C, en kombination av de två.
Scenhantering görs med SKView
klass och det finns ett stort antal övergångar med SKTransition
klass. I hjärtat av SpriteKit är handlingar, exempel på SKAction
klass, som används för att flytta, rotera och skala spelobjekt. Åtgärder kan också användas för att spela ljud och utföra anpassad kod.
SpriteKit har en scenredigerare där du kan visuellt utforma nivåerna i ditt spel. Också tillgängligt är en partikelredigerare där du kan visuellt utforma partikelsystem. Ett antal förformade partikelsystem finns tillgängliga, såsom brand och regn.
SpriteKit använder Box2D för sin fysikmotor. SpriteKit ger ett vänligt omslag runt Box2D, vilket gör det mycket enkelt att använda. SpriteKit har också en inbyggd kamera genom SKCameraNode
klass, vilket gör det lätt att navigera runt spelvärlden.
Om du är knuten till Apples ekosystem, är SpriteKit ett mycket bra val.
Titan är en ram som använder JavaScript som sitt programmeringsspråk. Medan traditionellt brukar bygga applikationer istället för spel kan det vara en livskraftig plattform för spelutveckling. Den är fri att använda under utveckling. Om du vill publicera ditt spel behöver du en licens.
Titanium stöder många infödda kontroller från iOS och Android. Detta gör det enkelt att animera åsikter och bilder. Jag har byggt ett Blackjack-spel, komplett med animeringar och en fin kortspelande effekt med Titanium.
En av de fina sakerna om Titanium är marknaden för nedladdning av anpassade moduler. Det finns till exempel en Box2D-modul som du kan ansluta till din app. Om du inte behöver Box2D komplexitet, kan det med en enkel avgränsningsbox kollisionssystem fungera lika bra.
Medan Titanium inte skulle vara idealiskt för spel med många rörliga delar och partikelexplosioner, använder man det för enkla kortspel, trivia-spel och spel med ett begränsat antal rörliga objekt är mer än ett lönsamt alternativ.
PhoneGap tillåter dig att ta dina befintliga HTML-, CSS- och JavaScript-färdigheter och förpacka dem som en mobilapp. Sättet fungerar genom att bädda in en webbvy i appen och ladda dina tillgångar till den webbvisningen. Det betyder att du kan använda Canvas API för att skapa spel.
PhoneGap möjliggör åtkomst till inbyggda API, t.ex. enhetens kamera, mikrofon och, viktigast av allt för spelutveckling, accelerometern.
I sin kärna är PhoneGap ganska enkelt. Det tar en HTML-driven app och paketerar den upp som en mobil applikation med en webbvy.
Vi kommer att titta på två andra JavaScript-bibliotek som du kan använda för att skapa ett Canvas / WebGL-spel, Phaser och CreateJS.
Phaser är ett open-source JavaScript-ramverk för skrivning av 2D-spel. Den använder Canvas eller WebGL om det finns tillgängligt.
Phaser har stöd för animeringar, partiklar och tweens för att flytta, skala och rotera sprites. Den har inbyggt stöd för kakelplattor och använder tre olika fysikmotorer, beroende på dina behov. Den har också en inbyggd kamera, vilket gör det enkelt att navigera i spelvärlden.
Det finns några plugins tillgängliga för Phaser, inklusive en partikelsystemdesigner och ett Box2D-plugin. Om JavaScript är ditt språk, kan Phaser, i kombination med PhoneGap, vara ett bra val.
CreateJS är en serie med fyra olika open source-bibliotek:
EaselJS är ett bibliotek baserat på Canvas API och det kan använda WebGL om det finns tillgängligt. TweenJS är inriktad på tweening-element medan SoundJS är inriktad på ljuduppspelning. Sist men inte minst, PreloadJS hjälper till att ladda in tillgångar.
EaselJS har stöd för sprite sheets och filter som du kan placera på dina element. Det finns även en Form
klass bör du behöva göra vektorteckning. Flytta, skala och rotera görs genom att integrera TweenJS-biblioteket i ditt spel.
Medan CreateJS inte har många API-skivor som är skräddarsydda för spelutveckling skrivs den i JavaScript så att du kan inkludera extra JavaScript-bibliotek du vill ha, till exempel en JavaScript-port i Box2D. Ett bibliotek som jag hade framgång med tidigare är ett kollisionsdetekteringsbibliotek för EaselJS.
Jag har skrivit ett par artiklar om CreateJS på Envato Tuts +. Om du letar efter en detaljerad introduktion till dessa bibliotek kan du hitta dessa intressanta:
Unreal Engine är en spelmotor som använder C ++ som sitt programmeringsspråk. Den är fri att använda med gränser. För mer information, besök Unreal Engine webbplats. Du kan distribuera ditt spel till iOS och Android.
Unreal Engine innehåller också en Blueprint Editor, som låter dig visa dina program visuellt utan att behöva programmera. Med redaktören kan du utforma spelnivåer, lägga till fysiksimulering, användargränssnitt, animationer, visuella effekter och mer på ett visuellt sätt.
Corona SDK är en mjukvaruutvecklingskit som använder Lua som skriptspråk. Det är tillgängligt på Windows och OS X. Du kan utveckla dina spel och appar gratis med Corona SDK, men Perk, företaget som förvärvade Corona Labs, erbjuder en företagsmodell som ger tillgång till inbyggda bibliotek / API och några andra funktioner. Besök deras hemsida för mer information om prissättning.
Corona SDK exporterar till iOS, Android, Kindle och Windows Phone 8. Windows och OS X-exporten är i privat beta och kommer snart.
Corona Labs erbjuder några andra attraktiva funktioner, som Corona Editor, ett Sublime Text-plugin som innehåller en debugger, code completion och några andra fina alternativ. Kompositör GUI, tillgänglig på OS X, ger dig en grafisk miljö där du kan designa spelets nivåer och se hur objekten interagerar med varandra med Coronas fysikmotor.
Corona SDK använder OpenGL som dess återgivningsmotor och Box2D för fysik. Dess fysikmotor ger ett omslag runt Box2D, vilket gör det enklare att använda. Corona SDK innehåller över tusen API som du kan använda för att bygga dina spel.
Den har också inbyggd scenhantering genom sitt kompositörsbibliotek och erbjuder ett bra övergångsbibliotek som hjälper till att flytta, skala och rotera spelets grafiska tillgångar.
Tyvärr har Corona SDK inte möjlighet att bygga spriteatlaser och använda komplexa former för kollisionsdetektering av fysik kan vara svåra. Det finns dock några bra tredjepartsprogram som kan lindra smärtan, som Texture Packer och Physics Editor.
Sammanfattningsvis är Corona SDK en utmärkt SDK för att undersöka om du letar efter en plattformslösning och vill ha det lättsamma språket i Lua.
Gideros, som Corona, använder Lua som skriptspråk. Gideros är gratis och öppen källkod, och den kan kompilera till iOS, Android, Windows Phone, OS X, Windows och Windows RT.
Medan Lua inte är ett objektorienterat programmeringsspråk med ett klassbaserat system, tillhandahåller Gideros ett klassbaserat API, så att utvecklare kan skriva ren och återanvändbar kod.
Gideros har en scenschef med alla möjliga övergångar, a Filmklipp
klass för animeringar, och ger tweening genom sitt GTween-bibliotek, vilket gör att du kan flytta, skala, rotera enheter och mer.
Gideros, som Corona, använder Box2D för fysik, även om Box2D API för Gideros är lite mer nära det ursprungliga Box2D API och därför lite svårare att använda.
Det ger några extra verktyg som ett texturförpackningsverktyg och en typsnitt skapare, som finns i installations katalog. Med Gideros kan du göra omedelbar testning av dina projekt på din mobila enhet via en Wi-Fi-anslutning.
Precis som med Corona är det här en bra plattform om du letar efter plattformsutveckling med det ljuva programmeringsspråket i Lua.
AndEngine är en mobil utvecklingsram för Android. Det är gratis och öppen källkod. Men som namnet antyder, är det bara för Android. AndEngine, som många andra mobila plattformar, använder OpenGL som sin återgivningsmotor och använder Box2D som sin fysikmotor genom en förlängning.
AndEngine har stöd för animerade sprites, partikelsystem, och tillåter tweening av enheter via enhet modifierare. AndEngine ger också en Kamera
klass som gör att du enkelt kan flytta runt spelvärlden.
Det finns ingen dedikerad scenhantering i AndEngine, men du kan hitta gott om exempel på hur man bygger en enkel scenhanterare. Om du bara vill släppa en Android-app och Java är ditt eget språk, så är det här ett bra alternativ.
libGDX är en annan Java-spelutvecklingsram. Det är plattform och kan kompilera till Windows, OS X, Linux, Android, IOS, Blackberry och HTML5. libGDX använder också OpenGL som dess återgivningsmotor och det utnyttjar Box2D för simulering av fysik.
libGDX har a Kamera
klass, an Verkan
klass för att flytta, skala och rotera objekt, och aParticleEmitter
klass för att visa partiklar. Den har stöd för kakelplattor viaTiledMap
klass, som kan användas med flisad redaktör.
libGDX levereras med några extra verktyg, till exempel en texturförpackare, en partikelredigerare och en bitmap-fontgenerator.
Om Java är ditt föredragna språk och du vill skapa ett plattformsspel, är libGDX en bra ram för att titta på.
I den här artikeln gick vi över flera spelutvecklingsramar och -motorer. Du borde nu få en bättre uppfattning vilka lösningar som bäst passar dina behov och ditt nästa spel. Tack för att du läste och jag hoppas att du hittade artikeln användbar.