experience of game prototyping with moai
TRANSCRIPT
Experience of game prototyping with MOAI
Dmitry Potapov
October,16 2015 / Lua Workshop 2015
Experience of game prototyping with MOAI 1/ 1 Dmitry Potapov
OVERVIEW
I Objectives and constraints
I Development priorities:
I For set of gamesI For complex game prototype
I Requirements for game framework
I Planned abstraction layers
I Selection of game engine and tools
I Implementation: game model, model controller, UI
I Actual abstraction layers
I Bene�ts and problems encountered
I Conclusion: Is the game worth the candle?
Experience of game prototyping with MOAI 2/ 1 Dmitry Potapov
THE LOGIC OF DEVELOPMENT
Objectives and Constraints
Development priorities
Planned abstraction layers
Requirements for gameframework
Selection of game engine
Experience of game prototyping with MOAI 3/ 1 Dmitry Potapov
OBJECTIVES
I Make a tool for fast prototyping of complex games
I Quickly turn best prototypes into games for a few platforms
I First game must be complex enough:
I Meta-level: metamap, user, ratings, medals, sociality etcI Strategical level: turned-based mechanics, tiled strategical mapI Tactical level: match�3 battle + abilities + consumablesI User has properties: game progress, scores, energy, abilities etcI User interface:
I A few screen resolutionsI All common controlsI MapView, Match3 �eld + e�ectsI Panels (dialogs)
Experience of game prototyping with MOAI 4/ 1 Dmitry Potapov
CONSTRAINTS
I One (but skilled) part-time developer:
I Can spend enough time initiallyI May have less time laterI Can solve complex tasksI Has experience with some tools and can quickly cope with new
ones
I Small budget:
I Cannot a�ord hiring N developers
Experience of game prototyping with MOAI 5/ 1 Dmitry Potapov
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
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
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
DEVELOPMENT PRIORITIES.SET OF GAMES
I Fast prototyping and production
I High quality of crucial game components (art, sound, sociality,analytics, monetization etc)
I Support of maximum number of platforms
I Development mainly under Linux
I Easy change of game engine later
Experience of game prototyping with MOAI 9/ 1 Dmitry Potapov
DEVELOPMENT PRIORITIES.PROTOTYPE: GENERAL
I Fast setup of prototype
I Easy and quick tuning of gameplay and UI in prototype
I Fast movement from prototype to release
I Use third-party solutions (tools) whenever possible
I Games can run without network
I Maximal reuse of code
I Maximal �exibility + power of game engine
I Minimal dependence from third-party closed-source solutions
Experience of game prototyping with MOAI 10/ 1 Dmitry Potapov
DEVELOPMENT PRIORITIES.PROTOTYPE: GAME MODEL
I Can be tuned or extended quickly
I Can be tested separately
I Can be moved onto server without full re-implementation
I Maximum of base functionality moved to libraries
Experience of game prototyping with MOAI 11/ 1 Dmitry Potapov
DEVELOPMENT PRIORITIES.PROTOTYPE: UI
I Can be tuned or extended quickly
I Can be tested separately
I Have minimal dependency from low-level
I Device caps (as well as platform) hardly a�ect user code
I Maximum of base functionality moved to libraries
Experience of game prototyping with MOAI 12/ 1 Dmitry Potapov
PLANNED ABSTRACTION LAYERS
Game-speci�c 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
REQUIREMENTS FOR GAME FRAMEWORK
I Flexible, extensible (including native code)
I Fast and reliable
I Supports tools: tiled, texture packer etc
I Supports max platforms
I Open source
I Can develop under Linux
Experience of game prototyping with MOAI 14/ 1 Dmitry Potapov
SELECTION OF GAME ENGINE. MOAI vs Corona SDK
Corona's pluses:
I Easy prototypingI First game can be done quicklyI Simple usage of build-in functionalityI Easy building of app
Corona's minuses:
I Lack of functionalityI No access to some important parameters of objectsI More bugs in implementationI Long wait until requested feature would be addedI Proprietary codeI Remote compilation
Experience of game prototyping with MOAI 15/ 1 Dmitry Potapov
IMPLEMENTATION: OVERVIEW
I General: Instance, logging
I Game model: Loops, maps, AI
I Model controller: Player actions, Save/Load
I UI: resource manager, preloader, input handling, controlmanager, primitive controls, map view
Experience of game prototyping with MOAI 16/ 1 Dmitry Potapov
IMPLEMENTATION: GENERAL AND GAME MODEL
General entity Engine class used
App Instance MOAIAppLogging MOAILogMgr
Game model entity Engine class used
Game loop MOAITimer, MOAIAnimCurveUser/actor/player: info, abilitiesetc
-
In-game objects -AI -Maps RNMap, RNMapFactory
Experience of game prototyping with MOAI 17/ 1 Dmitry Potapov
IMPLEMENTATION: MODEL CONTROLLER
I Player action processing
I Save/load
Used no 3rd party or engine classes yet.
Experience of game prototyping with MOAI 18/ 1 Dmitry Potapov
IMPLEMENTATION: USER INTERFACE
UI entity Engine classes Rapanui classes
Input handling MOAIAppTexture and atlases MOAITexture
MOAIGfxQuadDeck2DRNGraphicsManager
Sprites MOAIAnimCurveMOAIAnimMOAITimer
RNFactory.createAnim
Control manager,controls and panels
MOAIScissorRect RNFactory, RNObject,RNButton, RNImage,RNText, RNGroupRNDirector
MapView MOAIDeckRemapper RNMapRNMapFactoryRNListenersRNFactory.{width,height}
Experience of game prototyping with MOAI 19/ 1 Dmitry Potapov
ACTUAL ABSTRACTION LAYERS
Game-speci�c 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
BENEFITS
I High quality of code, authors understand the domain
I Open source � self-documented, easy extension etc
I Rather good documentation
I Support of tools: tiled, texture packer etc
I Engine users are strong developers
I Can develop under Linux
Experience of game prototyping with MOAI 21/ 1 Dmitry Potapov
PROBLEMS ENCOUNTERED
I Rather small community � despite it is skilled
I Too weak (or too complex) GUI frameworks
I Bugs in functionality � in Rapanui mostly
I Bugs in build scripts � concerns making Android app underLinux mostly
Experience of game prototyping with MOAI 22/ 1 Dmitry Potapov
CONCLUSION: IS THE GAME WORTH THE CANDLE?
The skills necessary for successful development:
I Must understand the whole architecture of game app
I Is not afraid of getting into low-level details
I Must read 3rd party code
I Must read logs
I Must build under Linux /OS X
If you are lucky to have time and skills necessary for building uplibraries isolating low-level features, you would �nally gainoutstanding performance and �exibility of MOAI + rapid speed ofdevelopment of high-level framework
MOAI is very good for beginners also � since they could learn thewhole process of game development!
Experience of game prototyping with MOAI 23/ 1 Dmitry Potapov
DMITRY POTAPOV : [email protected]
Lines of business:
I Visual editors for business (and game) logicI High-load servicesI Solutions for advertising, analytics and real-time biddingI Games: HTML5, Mobile, Social
Experience of game prototyping with MOAI 24/ 1 Dmitry Potapov