In dit artikel verkennen we verschillende game engines en frameworks, met enkele van de belangrijkste voordelen die elk van hen biedt. Na het lezen van dit artikel heb je verschillende opties om uit te kiezen om de volgende grote hit te maken. Merk op dat we ons alleen richten op de 2D-aspecten van deze platforms. Laten we beginnen.
Cocos2d is een gratis, open-source framework, compatibel met zowel Swift als Objective-C. Het heeft ondersteuning voor iOS en OS X en het ondersteunt ook Android via de Android-plug-in van SpriteBuilder, mits uw code is geschreven in Objective-C. Snelle ondersteuning voor Android is in ontwikkeling.
Projecten in Cocos2d worden gemaakt met behulp van SpriteBuilder, een grafische ontwerpomgeving die u kunt gebruiken om snel prototypen en spellen te bouwen. Je bent niet verplicht om SpriteBuilder te gebruiken om je spel te bouwen, maar het maken van een project moet gebeuren via SpriteBuilder.
Scènebeheer wordt uitgevoerd via de CCDirector
klasse, die verschillende overgangen kan gebruiken met de CCTransition
klasse. Het biedt animaties via de CCAnimation
klasse en acties, zoals verplaatsen, schalen en roteren, met zijn CCAction
klasse. Cocos2d heeft ondersteuning voor deeltjessystemen met de CCParticleSystem
klasse en heeft ondersteuning voor tegelkaarten met de CCTiledMap
klasse.
Cocos2d gebruikt ook OpenGL als zijn rendering-engine. Het gebruikt Chipmunk als zijn physics-engine. Als je geniet van Objective-C of Swift en je wilt je ontwikkelen voor meerdere platforms (iOS en Android), dan is Cocos2d een raamwerk dat de moeite waard is om te overwegen.
Cocos2d-x is een C ++ -poort van Cocos2d die kan worden gecompileerd naar vele andere platforms. Cocos2d-x kan compileren naar iOS, Android, Windows Phone, OS X, Windows en Linux.
Cocos2d-x komt niet met SpriteBuilder. Er zijn echter enkele interessante projecten, zoals Cocos Creator, die het framework, scènebewerking, debugging, gamevoorbeeld en publicatie op meerdere platforms biedt..
Unity is een mobiele game-engine die C # en UnityScript ondersteunt, een taal die speciaal is ontworpen voor Unity en is gemodelleerd naar JavaScript. Het is platformonafhankelijk en kan worden ingezet op vele platforms, waaronder PlayStation en Xbox. Er is een gratis editie beschikbaar en een professionele editie met meer functies. Meer informatie is beschikbaar op de Unity-website.
Er is een ingebouwde sprite-editor waarin u uw afbeeldingen visueel kunt knippen en een animatievenster waarmee u animaties kunt indelen en organiseren en sleutelframe-animaties aan sprites kunt toevoegen. Het is ook mogelijk om deeltjessystemen visueel te ontwerpen binnen de Unity-editor.
Unity gebruikt zijn eigen, eigen physics-engine. Unity heeft een ingebouwde camera, waardoor navigeren in de gamewereld eenvoudig is. U kunt scènes visueel indelen en Unity heeft een gebruikersinterfacesysteem met componenten, zoals knoppen, schuifregelaars en menu's. Er is ook ondersteuning voor sprite-packing binnen de Unity-editor.
Unity is een krachtpatser als het gaat om game engines. Als u een platformonafhankelijke oplossing nodig heeft die over een groot aantal apparaten beschikt en u liever programmeert in C # of UnityScript, dan is Unity een goede keuze. Een andere leuke eigenschap van Unity is de assetstore waarin u items kunt vinden of kopen die u in uw games kunt gebruiken.
SpriteKit is Apple's gepatenteerde 2D-game-ontwikkelingsraamwerk. Het is alleen beschikbaar op iOS en OS X. SpriteKit ondersteunt zowel Swift als Objective-C, een combinatie van beide.
Scènebeheer gebeurt met de SKView
klasse en er is een grote verscheidenheid aan overgangen met de SKTransition
klasse. De kern van SpriteKit zijn acties, bijvoorbeeld van de SKAction
klasse, die worden gebruikt om spelobjecten te verplaatsen, roteren en schalen. Acties kunnen ook worden gebruikt om geluiden af te spelen en aangepaste code uit te voeren.
SpriteKit heeft een scène-editor waarin je de niveaus van je spel visueel kunt ontwerpen. Er is ook een deeltjeseditor beschikbaar waarmee u deeltjessystemen visueel kunt ontwerpen. Een aantal vooraf ontworpen deeltjessystemen is beschikbaar, zoals vuur en regen.
SpriteKit gebruikt Box2D voor zijn physics engine. SpriteKit biedt een vriendelijke verpakking rond Box2D, waardoor het heel gemakkelijk te gebruiken is. SpriteKit heeft ook een ingebouwde camera via de SKCameraNode
klasse, wat het navigeren in de gamewereld gemakkelijk maakt.
Als je gebonden bent aan het Apple-ecosysteem, dan is SpriteKit een zeer goede keuze.
Titanium is een framework dat JavaScript als programmeertaal gebruikt. Hoewel het van oudsher wordt gebruikt om applicaties te bouwen in plaats van games, kan het een levensvatbaar platform voor game-ontwikkeling zijn. Het is gratis te gebruiken tijdens de ontwikkeling. Als je je game wilt publiceren, heb je een licentie nodig.
Titanium ondersteunt veel native-besturingselementen van iOS en Android. Dit maakt het gemakkelijk om weergaven en afbeeldingen te animeren. Ik heb een Blackjack-game gebouwd, compleet met animaties en een leuk kaartflapeffect met behulp van Titanium.
Een van de leuke dingen over Titanium is de marktplaats voor het downloaden van aangepaste modules. Er is bijvoorbeeld een Box2D-module die u kunt aansluiten op uw app. Als je de complexiteit van Box2D niet nodig hebt, kan het gebruik van een eenvoudig begrenzingssysteem met een bounding box net zo goed werken.
Hoewel Titanium niet ideaal zou zijn voor games met veel bewegende delen en deeltje-explosies, is het gebruik ervan voor eenvoudige kaartspellen, trivia-spellen en games met een beperkt aantal bewegende objecten meer dan een haalbare optie.
Met PhoneGap kunt u uw bestaande HTML-, CSS- en JavaScript-vaardigheden gebruiken en deze als een mobiele app verpakken. De manier waarop het werkt, is door een webweergave in te sluiten in de app en uw items in die webweergave te laden. Dit betekent dat u de Canvas API kunt gebruiken om games te maken.
PhoneGap biedt toegang tot native API's, zoals de camera van het apparaat, microfoon en, het belangrijkste voor de ontwikkeling van games, de versnellingsmeter.
In de kern is PhoneGap vrij eenvoudig. Het heeft een HTML-gestuurde app nodig en verpakt het als een mobiele applicatie met behulp van een webweergave.
We zullen twee andere JavaScript-bibliotheken bekijken die je kunt gebruiken om een Canvas / WebGL-game te maken, Phaser en CreateJS.
Phaser is een open-source JavaScript-framework voor het schrijven van 2D-games. Het gebruikt Canvas of WebGL indien beschikbaar.
Phaser heeft ondersteuning voor animaties, deeltjes en tweens om sprites te verplaatsen, te schalen en te roteren. Het heeft ingebouwde ondersteuning voor tegelkaarten en maakt gebruik van drie verschillende physics-engines, afhankelijk van uw behoeften. Het heeft ook een ingebouwde camera, waardoor je eenvoudig door je spelwereld kunt navigeren.
Er zijn enkele plug-ins beschikbaar voor Phaser, waaronder een ontwerper van een particle system en een Box2D-plug-in. Als JavaScript uw voorkeurstaal is, kan Phaser in combinatie met PhoneGap een goede keuze zijn.
CreateJS is een suite van vier verschillende open source-bibliotheken:
EaselJS is een bibliotheek op basis van de Canvas API en kan WebGL gebruiken indien beschikbaar. TweenJS is gericht op het tweenen van elementen, terwijl SoundJS gericht is op het afspelen van audio. En last but not least helpt PreloadJS om activa vooraf te laden.
EaselJS heeft ondersteuning voor spritebladen en filters die u op uw elementen kunt plaatsen. Er is ook een Vorm
klasse moet je vector tekenen doen. Verplaatsen, schalen en roteren doe je door de TweenJS-bibliotheek in je game op te nemen.
Hoewel CreateJS niet veel API's heeft die zijn toegesneden op gameontwikkeling, is het geschreven in JavaScript, zodat u eventuele extra JavaScript-bibliotheken kunt opnemen die u wilt, zoals een JavaScript-poort van Box2D. Een bibliotheek die ik in het verleden met succes had gebruikt, is een bibliotheek voor botsingsdetectie voor EaselJS.
Ik heb een paar artikelen geschreven over CreateJS op Envato Tuts +. Als u op zoek bent naar een gedetailleerde inleiding tot deze bibliotheken, dan vindt u deze mogelijk interessant:
Unreal Engine is een game-engine die C ++ als programmeertaal gebruikt. Het is gratis om te gebruiken met limieten. Ga voor meer informatie naar de Unreal Engine-website. Je kunt je game inzetten op iOS en Android.
Unreal Engine bevat ook een Blueprint Editor, waarmee u uw applicaties visueel kunt scripten zonder dat u hoeft te programmeren. Met de editor kunt u spelniveaus ontwerpen, fysica-simulatie, gebruikersinterface, animaties, visuele effecten en meer toevoegen, op een visuele manier.
De Corona SDK is een software-ontwikkelkit die Lua als scripttaal gebruikt. Het is beschikbaar op Windows en OS X. U kunt uw games en apps gratis ontwikkelen met de Corona SDK, maar Perk, het bedrijf dat Corona Labs heeft overgenomen, biedt een enterprise-model dat toegang geeft tot native bibliotheken / API's en een paar andere Kenmerken. Bezoek hun website voor meer informatie over prijzen.
De Corona SDK exporteert naar iOS, Android, Kindle en Windows Phone 8. Windows- en OS X-exporten bevinden zich in privé-bèta en zullen binnenkort verschijnen.
Corona Labs biedt een aantal andere aantrekkelijke functies, zoals Corona Editor, een Sublime Text-plug-in die een debugger, code-aanvulling en een paar andere leuke opties bevat. Composer GUI, beschikbaar op OS X, biedt u een grafische omgeving waarin u de niveaus van uw spel kunt ontwerpen en kunt zien hoe de objecten met elkaar omgaan met Corona's physics engine.
De Corona SDK gebruikt OpenGL als de renderingengine en Box2D voor de fysica. De physics-engine biedt een verpakking rond Box2D, waardoor het gemakkelijker te gebruiken is. De Corona SDK bevat meer dan duizend API's die u kunt gebruiken om uw games te bouwen.
Het heeft ook een ingebouwd scènebeheer via de bibliotheek van de componist en biedt een geweldige overgangsbibliotheek die de grafische elementen van uw spel helpt verplaatsen, schalen en roteren.
Helaas heeft de Corona SDK niet de mogelijkheid om sprite-atlassen te bouwen en het gebruik van complexe vormen voor botsingdetectie van fysica kan moeilijk zijn. Er zijn echter enkele geweldige toepassingen van derden die deze pijn kunnen verlichten, zoals Texture Packer en Physics Editor.
Over het algemeen is de Corona SDK een geweldige SDK om te verkennen als u op zoek bent naar een platformonafhankelijke oplossing en het gemak van de Lua-scripttaal wilt.
Gideros, zoals Corona, gebruikt Lua als scripttaal. Gideros is gratis en open-source en kan worden gecompileerd naar iOS, Android, Windows Phone, OS X, Windows en Windows RT.
Lua is geen objectgeoriënteerde programmeertaal met een op klassen gebaseerd systeem, maar Gideros biedt een op klassen gebaseerde API, waarmee ontwikkelaars schone en herbruikbare code kunnen schrijven.
Gideros heeft een scènemanager met allerlei overgangen, een Filmclip
klasse voor animaties en biedt tweening via zijn GTween-bibliotheek, waarmee je entiteiten kunt verplaatsen, schalen, roteren en meer.
Gideros gebruikt, net als Corona, Box2D voor natuurkunde, hoewel de Box2D-API van Gideros iets meer in de buurt komt van de oorspronkelijke Box2D API en daarom iets moeilijker te gebruiken is.
Het biedt een aantal extra hulpmiddelen zoals een texture packer tool en een font creator, die te vinden is in de directory van de installatie. Met Gideros kunt u uw projecten direct testen op uw mobiele apparaat via een Wi-Fi-verbinding.
Net als Corona is dit een geweldig platform als u op zoek bent naar platformonafhankelijke ontwikkeling met het gemak van de Lua-programmeertaal.
And Engine is een mobiel ontwikkelingsraamwerk voor Android. Het is gratis en open-source. Zoals de naam aangeeft, is dit echter alleen voor Android. And Engine, net als veel andere mobiele platforms, gebruikt OpenGL als zijn rendering-engine en het gebruikt Box2D als zijn physics-engine via een extensie.
And Engine heeft ondersteuning voor geanimeerde sprites, deeltjessystemen en maakt het tweenen van entiteiten mogelijk via entiteitsmodifiers. And Engine biedt ook een Camera
klasse waarmee je gemakkelijk door de gamewereld kunt bewegen.
Er is geen specifiek scènebeheer in AndEngine, maar u kunt veel voorbeelden vinden over hoe u een eenvoudige scènemanager kunt bouwen. Als u alleen een Android-app wilt vrijgeven en Java uw voorkeurstaal is, is dit framework een goede optie.
libGDX is een ander Java-game-ontwikkelingsraamwerk. Het is platformonafhankelijk en kan worden gecompileerd naar Windows, OS X, Linux, Android, iOS, Blackberry en HTML5. libGDX gebruikt ook OpenGL als zijn rendering-engine en het maakt gebruik van Box2D voor het simuleren van fysica.
libGDX heeft een Camera
klas, een Actie
klasse om objecten te verplaatsen, te schalen en te roteren, en eenParticleEmitter
klasse voor het weergeven van deeltjes. Het heeft ondersteuning voor tegelkaarten via deTiledMap
klasse, die kan worden gebruikt met de Tiled-editor.
libGDX wordt geleverd met een aantal extra hulpmiddelen, zoals een texture-packer, een deeltjeseditor en een bitmap-lettertype-generator.
Als Java uw voorkeurstaal is en u een platformonafhankelijk spel wilt maken, dan is libGDX een goed raamwerk om naar te kijken.
In dit artikel hebben we verschillende frameworks en engines voor game-ontwikkeling besproken. U zou nu een beter idee moeten hebben welke oplossingen het beste aansluiten bij uw behoeften en die van uw volgende spel. Bedankt voor het lezen en ik hoop dat je het artikel nuttig hebt gevonden.