24

Experience of game prototyping with MOAI

Embed Size (px)

Citation preview

Page 1: Experience of game prototyping with MOAI

Experience of game prototyping with MOAI

Dmitry Potapov

[email protected]

October,16 2015 / Lua Workshop 2015

Experience of game prototyping with MOAI 1/ 1 Dmitry Potapov

Page 2: Experience of game prototyping with MOAI

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

Page 3: Experience of game prototyping with MOAI

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

Page 4: Experience of game prototyping with MOAI

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

Page 5: Experience of game prototyping with MOAI

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

Page 6: Experience of game prototyping with MOAI

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

Page 7: Experience of game prototyping with MOAI

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

Page 8: Experience of game prototyping with MOAI

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

Page 9: Experience of game prototyping with MOAI

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

Page 10: Experience of game prototyping with MOAI

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

Page 11: Experience of game prototyping with MOAI

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

Page 12: Experience of game prototyping with MOAI

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

Page 13: Experience of game prototyping with MOAI

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

Page 14: Experience of game prototyping with MOAI

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

Page 15: Experience of game prototyping with MOAI

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

Page 16: Experience of game prototyping with MOAI

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

Page 17: Experience of game prototyping with MOAI

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

Page 18: Experience of game prototyping with MOAI

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

Page 19: Experience of game prototyping with MOAI

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

Page 20: Experience of game prototyping with MOAI

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

Page 21: Experience of game prototyping with MOAI

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

Page 22: Experience of game prototyping with MOAI

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

Page 23: Experience of game prototyping with MOAI

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

Page 24: Experience of game prototyping with MOAI

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