Cross platform, mobile games development
Game engines
HTML5 game engines
Use HTML5 <canvas> element
and/or webGL if available
closed-source
See all on html5gameengine.com
Custom canvas runtimes
WebView
HTML5 on mobile
Cordova,
Cordova + Crosswalk on Android,
Cordova + WKWebView on iOS
iOS only
closed-source
Hybrid game engines
Lua / C++
Render with OpenGL ES/native platform libraries, run all the game logic with a cross-platform language
GDSCript/C++
JS / C++
Lua
"Native" game engines
C#
C++
C++
Game [engine]
architecture
Scene graph
Scene
Layer/View
Layer/View
DisplayObject
Text
Sprite
Particles
Sprite
SceneStack/Director
Rendered objects are stored in a graph
Lower levels rendering engines (SDL, OpenGL, WebGL, Canvas) don't have graphs, only primitives
Game loop
Manage inputs
Update world
Update physics
Render
Update time
dt = time elapsed since last frame
fps = 1 / dt
{
check collisions, move objects, update scores (business logic)...
{
Audio
HTML5 games
HTML5 audio, WebAudio API
Hybrid/Native games
Most engines have a
built-in audio support
Physics
You need to map your entities to the physics engine bodies
World
Joint
RigidBody
Fixture
RigidBody
Fixture
Fixture
Forces can be applied on body
Callbacks can be attached for collisions
Collisions
- Either use a physics engine
- Roll your own logic:
- Bounding boxes (very simple collision detection)
- Hitboxes made with polygons (use an algorithm like SAT)
- If necessary, divide the space
to avoid collision checks
(spatial hashing, quadtree)
Games technical considerations
Performance
Discard objects, use simple physics models, split heavy computations if possible in more than one frame.
Rendering
Logic
Avoid rendering objects far from the player (culling)
In general, minimize objects and textures
Avoid creating too much objects, release unused ones/too far from player
Memory usage
Memory allocation
Garbage collector can be a frame killer
Avoid creating objects, reuse an existing one or a pool of objects
About Javascript
iOS JS engine and devices are quite fast
Raw performance
Harder to get a jank free game on Android even with Crosswalk
Mobile cross-platform games creation
By Florian Rival
Mobile cross-platform games creation
- 1,856