In this article, we explore several game engines and frameworks, highlighting some of the key advantages they each offer. After reading this article, you will have a variety of options to make your next big hit. Note that we only focus on the 2D aspects of these platforms. let's start.
Cocos2d is a free and open source framework compatible with Swift and Objective-C. It supports iOS and OS X, and if your code is written in Objective-C, it also supports Android via the SpriteBuilder Android plugin. Swift support for Android is in development.
Projects in Cocos2d are created with SpriteBuilder, a graphic design environment that can be used for rapid prototyping and building games. You do not need to use SpriteBuilder to build your game, however, project creation must be done through SpriteBuilder.
Scene management is done through the CCDirector
class, which can be done through the CCTransition
class. It provides animation through the CCAnimation
class, and operations such as movement, scaling, and rotation through its CCAction
class. Cocos2d supports particle systems through the CCParticleSystem
class, and supports tile maps through the CCTiledMap
class.
Cocos2d also uses OpenGL as its rendering engine. It uses Chipmunk as its physics engine. If you prefer Objective-C or Swift and want to develop for multiple platforms (iOS and Android), Cocos2d is a framework worth considering.
Cocos2d-x is a C port of Cocos2d that compiles to many other platforms. Cocos2d-x compiles to iOS, Android, Windows Phone, OS X, Windows and Linux.
Cocos2d-x does not come with SpriteBuilder. However, it does have some interesting projects, such as Cocos Creator, which provides frameworks, scene editing, debugging, game previewing, and publishing to multiple platforms.
Unity is a mobile game engine that supports C# and UnityScript, a language designed specifically for Unity and modeled after JavaScript. It is cross-platform and can be deployed to many platforms, including PlayStation and Xbox. There is a free version and a pro version that offers more features. Visit the Unity website for more information.
There is a built-in sprite editor where you can slice images visually, and an animator window that lets you lay out and organize animations and add keyframe animations to sprites. Particle systems can also be designed visually in the Unity Editor.
Unity uses its own proprietary physics engine. Unity has a built-in camera that makes navigating the game world simple. You can lay out your scene visually, and Unity has a user interface system that includes components such as buttons, sliders, and menus. Sprite packaging is also supported in the Unity editor.
Unity is a powerful engine for game engines. If you need a cross-platform solution that supports multiple devices and you prefer programming in C# or UnityScript, Unity is a good choice. Another great thing about Unity is the Asset Store, where you can find or buy assets that you can use in your game.
SpriteKit is Apple’s proprietary 2D game development framework. It only works on iOS and OS X. SpriteKit supports both Swift and Objective-C, a combination of both.
Scene management is done through the SKView
class, and the SKTransition
class has various transitions. The core of SpriteKit are actions, instances of the SKAction
class that are used to move, rotate, and scale game objects. Actions can also be used to play sounds and execute custom code.
SpriteKit has a scene editor where you can visually design your game's levels. A particle editor is also provided, where you can visually design particle systems. There are many pre-designed particle systems available, such as fire and rain.
SpriteKit uses Box2D as its physics engine. SpriteKit provides a friendly wrapper for Box2D, which makes it very easy to use. SpriteKit also has a built-in camera via the SKCameraNode
class, which makes navigating the game world easy.
If you are closely connected to the Apple ecosystem, SpriteKit is a very good choice.
Titanium is a framework that uses JavaScript as a programming language. While more traditionally used for building applications rather than games, it can be a viable game development platform. It is free to use during development. If you want to publish your game then you need a license.
Titanium supports many native controls for iOS and Android. This makes it easy to animate views and images. I built a blackjack game using Titanium, complete with animations and nice card flipping effects.
One of the great things about Titanium is the marketplace for downloading custom modules. For example, you can plug the Box2D module into your application. If you don't need the complexity of Box2D, then using a simple bounding box collision system will work just fine.
While Titanium is not ideal for games with lots of moving parts and particle explosions, using it for simple card games, trivia games, and games with a limited number of moving objects is more than a viable option.
PhoneGap allows you to leverage your existing HTML, CSS, and JavaScript skills and package them as a mobile app. The way it works is you embed a web view in your application and load your resources into that web view. This means you can use the Canvas API to create games.
PhoneGap allows access to native APIs such as the device's camera, microphone, and most importantly for game development, the accelerometer.
At its core, PhoneGap is very simple. It takes an HTML-driven application and packages it as a mobile application using web views.
We will introduce two other JavaScript libraries that can be used to create Canvas/WebGL games: Phaser and CreateJS.
Phaser is an open source JavaScript framework for writing 2D games. It uses Canvas or WebGL when available.
Phaser supports animations, particles and tweens to move, scale and rotate sprites. It has built-in support for tile maps and uses three different physics engines depending on your needs. It also has a built-in camera, allowing you to easily navigate the game world.
Phaser has a number of plugins available, including the Particle System Designer and the Box2D plugin. If JavaScript is your language of choice, Phaser combined with PhoneGap might be a good choice.
CreateJS is a suite of four different open source libraries:
EaselJS is a library based on the Canvas API that can use WebGL when available. TweenJS focuses on tweening elements, while SoundJS focuses on audio playback. Last but not least, PreloadJS helps in preloading resources.
EaselJS supports sprite sheets and filters that you can place on elements. There is also a Shape
class if you need to do vector drawing. Moving, scaling, and rotating are accomplished by incorporating the TweenJS library into your game.
While CreateJS doesn’t have many APIs customized specifically for game development, it is written in JavaScript, so you can incorporate any additional JavaScript libraries you need, such as a JavaScript port of Box2D. One library I've used successfully in the past is EaselJS's collision detection library.
I have written several articles about CreateJS on Envato Tuts. If you are looking for a detailed introduction to these libraries, you may find these interesting:
Unreal Engine is a game engine that uses C as a programming language. It's free to use, but there are restrictions. For more details, visit the Unreal Engine website. You can deploy your game to iOS and Android.
Unreal Engine also includes a Blueprint Editor, allowing you to script your application visually without the need for programming. The editor allows you to visually design game levels, add physics simulations, user interfaces, animations, visual effects, and more.
Corona SDK is a software development kit using Lua as the scripting language. It's available on Windows and OS X. You can develop games and apps for free using the Corona SDK, but Perk (the company that acquired Corona Labs) offers an enterprise model with access to native libraries/APIs and a few other features. Please visit their website for more information on pricing.
Corona SDK exports to iOS, Android, Kindle and Windows Phone 8. Windows and OS X export is in beta and will be available soon.
Corona Labs also offers some other attractive features such as Corona Editor, Sublime Text plugin which includes debugger, code completion and some other nice options. The Composer GUI available on OS X gives you a graphical environment in which you can design your game's levels and see how objects interact with each other using Corona's physics engine.
Corona SDK uses OpenGL as its rendering engine and Box2D as its physics engine. Its physics engine provides a wrapper around Box2D, which makes it easier to use. The Corona SDK contains over a thousand APIs that you can use to build games.
It also has built-in scene management through its writer library and provides an excellent transition library to help move, scale and rotate the game's graphical assets.
Unfortunately, the Corona SDK does not have an option to build a sprite atlas, and physical collision detection with complex shapes can be difficult. However, there are some great third-party applications that can ease this pain, such as texture packers and physics editors.
Overall, if you are looking for a cross-platform solution and want to easily use the Lua scripting language, the Corona SDK is a great SDK to explore.
Gideros, like Corona, uses Lua as the scripting language. Gideros is free and open source, and it compiles to iOS, Android, Windows Phone, OS X, Windows, and Windows RT.
While Lua is not an object-oriented programming language with a class-based system, Gideros provides a class-based API that allows developers to write clean and reusable code.
Gideros has a scene manager with various transitions, a MovieClip
class for animations, and provides tweening through its GTween library, allowing you to move, scale, rotate entities, etc. p>
Gideros, like Corona, uses Box2D for physics, although Gideros' Box2D API is closer to the original Box2D API and therefore slightly more difficult to use.
It provides some additional tools, such as texture packaging tools and font creators, which can be found in the installation directory. Gideros allows you to instantly test your projects on your mobile device via a Wi-Fi connection.
Like Corona, this is a great platform if you are looking for easy cross-platform development using the Lua programming language.
AndEngine is an Android mobile development framework. It's free and open source. However, as its name suggests, it only works on Android. AndEngine, like many other mobile platforms, uses OpenGL as its rendering engine and, by extension, Box2D as its physics engine.
AndEngine supports animated sprites, particle systems, and allows tweening of entities through entity modifiers. AndEngine also provides the Camera
class that allows you to easily move around the game world.
There is no dedicated scene management in AndEngine, but you can find plenty of examples on how to build a simple scene manager. This framework is a good choice if you only want to publish Android apps and Java is your language of choice.
libGDX is another Java game development framework. It is cross-platform and compiles to Windows, OS X, Linux, Android, iOS, Blackberry, and HTML5. libGDX also uses OpenGL as its rendering engine and Box2D for simulating physics.
libGDX has a Camera
class, an Action
class for moving, scaling, and rotating objects, and aParticleEmitter
class for displaying particles. It supports tile maps through the TiledMap
class, which can be used with the Tiled editor.
libGDX comes with some additional tools such as a texture packer, particle editor, and bitmap font generator. p>
If Java is your language of choice and you want to create cross-platform games, then libGDX is a good framework to look into.
In this article, we introduced several game development frameworks and engines. You should now have a better idea of which solutions are best for your needs and what you'll need for your next game. Thank you for reading and I hope you found this article useful.
The above is the detailed content of Choose the best mobile gaming platform for your next project. For more information, please follow other related articles on the PHP Chinese website!