Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Experience of game prototyping with MOAI

521 views

Published on

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?

Published in: Software
  • Be the first to comment

Experience of game prototyping with MOAI

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×