This game development platform is not popular - despite it is very powerful. The cost of entry is a bit higher in comparison with Corona, Marmalade, Cocos etc (in the reality it is not so high if you familiar with C/C++ / Java and you are not afraid of low-level at all) but finally the developer gets much freedom and expressive power. BTW, it's a rare case you can develop mobile games under Linux (not Windows or OS X).
The slides maybe useful for professional programmers as well as for novices.
Content
* Objectives and constraints
* Development priorities
* Requirements for game framework
* Planned abstraction layers
* Selection of game engine and tools
* Implementation: game model, model controller, UI
* Actual abstraction layers
* Benefits and problems encountered
* Conclusion: Is the game worth the candle?
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Experience of game prototyping with MOAI
1. Experience of game prototyping with MOAI
Dmitry Potapov
dp@logiceditor.com
October,16 2015 / Lua Workshop 2015
Experience of game prototyping with MOAI 1/ 1 Dmitry Potapov
2. OVERVIEW
Objectives and constraints
Development priorities:
For set of games
For complex game prototype
Requirements for game framework
Planned abstraction layers
Selection of game engine and tools
Implementation: game model, model controller, UI
Actual abstraction layers
Benets and problems encountered
Conclusion: Is the game worth the candle?
Experience of game prototyping with MOAI 2/ 1 Dmitry Potapov
3. THE LOGIC OF DEVELOPMENT
Objectives and Constraints
Development priorities
Planned abstraction layers
Requirements for game
framework
Selection of game engine
Experience of game prototyping with MOAI 3/ 1 Dmitry Potapov
4. OBJECTIVES
Make a tool for fast prototyping of complex games
Quickly turn best prototypes into games for a few platforms
First game must be complex enough:
Meta-level: metamap, user, ratings, medals, sociality etc
Strategical level: turned-based mechanics, tiled strategical map
Tactical level: match3 battle + abilities + consumables
User has properties: game progress, scores, energy, abilities etc
User interface:
A few screen resolutions
All common controls
MapView, Match3 eld + eects
Panels (dialogs)
Experience of game prototyping with MOAI 4/ 1 Dmitry Potapov
5. CONSTRAINTS
One (but skilled) part-time developer:
Can spend enough time initially
May have less time later
Can solve complex tasks
Has experience with some tools and can quickly cope with new
ones
Small budget:
Cannot aord hiring N developers
Experience of game prototyping with MOAI 5/ 1 Dmitry Potapov
6. PROTOTYPE OF COMPLEX GAME. SKETCHES OF UI
Art: Through enemy eyes. (C) Dmitry Potapov, 2008
Experience of game prototyping with MOAI 6/ 1 Dmitry Potapov
7. PROTOTYPE OF COMPLEX GAME. SKETCH OF STRATEGICAL MAP
Sketch of strategical map
Art: Through enemy eyes. (C) Dmitry Potapov, 2008
Experience of game prototyping with MOAI 7/ 1 Dmitry Potapov
8. PROTOTYPE OF COMPLEX GAME. SKETCH OF COMBAT
Sketch of combat
Diamond icons by LazyCrazy: http://www.artdesigner.lv
Experience of game prototyping with MOAI 8/ 1 Dmitry Potapov
9. DEVELOPMENT PRIORITIES.SET OF GAMES
Fast prototyping and production
High quality of crucial game components (art, sound, sociality,
analytics, monetization etc)
Support of maximum number of platforms
Development mainly under Linux
Easy change of game engine later
Experience of game prototyping with MOAI 9/ 1 Dmitry Potapov
10. DEVELOPMENT PRIORITIES.PROTOTYPE: GENERAL
Fast setup of prototype
Easy and quick tuning of gameplay and UI in prototype
Fast movement from prototype to release
Use third-party solutions (tools) whenever possible
Games can run without network
Maximal reuse of code
Maximal exibility + power of game engine
Minimal dependence from third-party closed-source solutions
Experience of game prototyping with MOAI 10/ 1 Dmitry Potapov
11. DEVELOPMENT PRIORITIES.PROTOTYPE: GAME MODEL
Can be tuned or extended quickly
Can be tested separately
Can be moved onto server without full re-implementation
Maximum of base functionality moved to libraries
Experience of game prototyping with MOAI 11/ 1 Dmitry Potapov
12. DEVELOPMENT PRIORITIES.PROTOTYPE: UI
Can be tuned or extended quickly
Can be tested separately
Have minimal dependency from low-level
Device caps (as well as platform) hardly aect user code
Maximum of base functionality moved to libraries
Experience of game prototyping with MOAI 12/ 1 Dmitry Potapov
13. PLANNED ABSTRACTION LAYERS
Game-specic code
Our general lib + gamemodel lib + UI lib
Third-party libraries (mostly UI)
Game engine
OS
Experience of game prototyping with MOAI 13/ 1 Dmitry Potapov
14. REQUIREMENTS FOR GAME FRAMEWORK
Flexible, extensible (including native code)
Fast and reliable
Supports tools: tiled, texture packer etc
Supports max platforms
Open source
Can develop under Linux
Experience of game prototyping with MOAI 14/ 1 Dmitry Potapov
15. SELECTION OF GAME ENGINE. MOAI vs Corona SDK
Corona's pluses:
Easy prototyping
First game can be done quickly
Simple usage of build-in functionality
Easy building of app
Corona's minuses:
Lack of functionality
No access to some important parameters of objects
More bugs in implementation
Long wait until requested feature would be added
Proprietary code
Remote compilation
Experience of game prototyping with MOAI 15/ 1 Dmitry Potapov
16. IMPLEMENTATION: OVERVIEW
General: Instance, logging
Game model: Loops, maps, AI
Model controller: Player actions, Save/Load
UI: resource manager, preloader, input handling, control
manager, primitive controls, map view
Experience of game prototyping with MOAI 16/ 1 Dmitry Potapov
17. IMPLEMENTATION: GENERAL AND GAME MODEL
General entity Engine class used
App Instance MOAIApp
Logging MOAILogMgr
Game model entity Engine class used
Game loop MOAITimer, MOAIAnimCurve
User/actor/player: info, abilities
etc
-
In-game objects -
AI -
Maps RNMap, RNMapFactory
Experience of game prototyping with MOAI 17/ 1 Dmitry Potapov
18. IMPLEMENTATION: MODEL CONTROLLER
Player action processing
Save/load
Used no 3rd party or engine classes yet.
Experience of game prototyping with MOAI 18/ 1 Dmitry Potapov
19. IMPLEMENTATION: USER INTERFACE
UI entity Engine classes Rapanui classes
Input handling MOAIApp
Texture and atlases MOAITexture
MOAIGfxQuadDeck2D
RNGraphicsManager
Sprites MOAIAnimCurve
MOAIAnim
MOAITimer
RNFactory.createAnim
Control manager,
controls and panels
MOAIScissorRect RNFactory, RNObject,
RNButton, RNImage,
RNText, RNGroup
RNDirector
MapView MOAIDeckRemapper RNMap
RNMapFactory
RNListeners
RNFactory.{width,height}
Experience of game prototyping with MOAI 19/ 1 Dmitry Potapov
20. ACTUAL ABSTRACTION LAYERS
Game-specic code
Our UI lib + gamemodel lib + general lib
UI library: Rapanui
Game engine: MOAI
OS
Experience of game prototyping with MOAI 20/ 1 Dmitry Potapov
21. BENEFITS
High quality of code, authors understand the domain
Open source self-documented, easy extension etc
Rather good documentation
Support of tools: tiled, texture packer etc
Engine users are strong developers
Can develop under Linux
Experience of game prototyping with MOAI 21/ 1 Dmitry Potapov
22. PROBLEMS ENCOUNTERED
Rather small community despite it is skilled
Too weak (or too complex) GUI frameworks
Bugs in functionality in Rapanui mostly
Bugs in build scripts concerns making Android app under
Linux mostly
Experience of game prototyping with MOAI 22/ 1 Dmitry Potapov
23. CONCLUSION: IS THE GAME WORTH THE CANDLE?
The skills necessary for successful development:
Must understand the whole architecture of game app
Is not afraid of getting into low-level details
Must read 3rd party code
Must read logs
Must build under Linux /OS X
If you are lucky to have time and skills necessary for building up
libraries isolating low-level features, you would nally gain
outstanding performance and exibility of MOAI + rapid speed of
development of high-level framework
MOAI is very good for beginners also since they could learn the
whole process of game development!
Experience of game prototyping with MOAI 23/ 1 Dmitry Potapov
24. DMITRY POTAPOV : DP@LOGICEDITOR.COM
Lines of business:
Visual editors for business (and game) logic
High-load services
Solutions for advertising, analytics and real-time bidding
Games: HTML5, Mobile, Social
Experience of game prototyping with MOAI 24/ 1 Dmitry Potapov