experience of game prototyping with moai

Post on 12-Apr-2017

368 Views

Category:

Software

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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 : DP@LOGICEDITOR.COM

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

top related