Gideros Mobile Game Development

Gideros Mobile Game Development
eBook: $20.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $55.98    Print cover: $34.99
save 6%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Develop engaging iOS and Android mobile games quickly and efficiently
  • Build your very first game following practical and easy to understand instructions
  • Full of code examples and descriptions to help you master the basics of mobile game development

Book Details

Language : English
Paperback : 154 pages [ 235mm x 191mm ]
Release Date : November 2013
ISBN : 1849696705
ISBN 13 : 9781849696708
Author(s) : Arturs Sosins
Topics and Technologies : All Books, Game Development, Other

Table of Contents

Chapter 1: Setting Up the Environment
Chapter 2: Managing Scenes and Gideros OOP
Chapter 3: Implementing Game Logic
Chapter 4: Polishing the Game
  • Chapter 1: Setting Up the Environment
    • About Gideros
    • Installing Gideros
      • Requirements
      • Installing Gideros on Windows
      • Installing Gideros on Mac OS X
      • Installing Gideros on Linux
    • Creating your first project
      • Trying out Gideros Studio
      • Using the Gideros desktop player
      • Displaying graphical objects in Gideros Player
        • Displaying text
        • Displaying images
        • Drawing shapes
        • Using the Sprite class for groups and layers
      • Managing project settings
        • Automatic scaling
        • Automatic image resolution
        • Input settings
        • iOS-specific settings
      • Installing the device player
        • Installing the Android player
        • Installing the iOS player
        • Running the project on a device player
      • Exporting Gideros project
      • Summary
    • Chapter 2: Managing Scenes and Gideros OOP
      • Setting up our project
        • Handling scaled graphics with AutoScaling
        • Handling whitespaces
        • Ignoring automatic scaling for positioning
      • Creating scenes
        • Gideros OOP
        • Creating our first class
        • Gideros scene manager
        • Creating a global configuration file
        • Creating the start scene
        • Creating the about scene
        • Creating the options scene
        • Creating the settings class
      • Summary
      • Chapter 3: Implementing Game Logic
        • Implementing the main game scene
          • Using texture packs
            • Packing our textures
            • Using texture packs inside project
          • Using physics in Gideros
            • Creating physical bodies
            • Running the world
            • Setting up world boundaries
            • Interaction with physical bodies
            • Handling Box2D collisions
        • Managing packs and levels
          • Defining packs
          • Creating LevelSelectScene
          • Generating a grid of levels
          • Switching between packs
          • Creating the GameManager class
          • Implementing unlocked levels logic
          • Reading level definitions
          • Completing the level
        • Summary
        • Chapter 4: Polishing the Game
          • Adding sounds
            • Adding background music
            • Adding sound effects
          • Adding high scores
            • Retrieving high scores
            • Updating high score on the screen
          • Creating animated game elements
            • Frame animations using MovieClip
            • Tweening elements with GTween
          • Improving gameplay
            • Changing level packs by using the swipe gesture
              • Starting with MouseDown
              • Continue with MouseMove
              • Ending with MouseUp
              • Adding event listeners
              • Modifying code for selecting levels
            • Implementing Mashballs magnet
          • Summary

          Arturs Sosins

          Arturs Sosins is a developer living with his wife Anna and son Tomass. He has a Master's degree in Computer Science and even though he is working as a developer full time, he still loves coding and shares his knowledge with others in his spare time. In his last years at the university, he started chasing the dream of creating his own mobile games for fun and personal satisfaction in his spare time. After trying out lots of different cross-platform frameworks for mobile game development, he found Gideros SDK in January 2012 and liked it so much that he decided to stick with it when developing his games. In the summer of 2012, he founded a group of like-minded developers/designers who go under the indie label ( They released Mashballs (, their first game, in September 2012 and are currently working on a couple of bigger game projects. As there was a lack of learning materials and tutorials for Gideros and writing was one of the his favorite hobbies, he started creating different tutorials on how to accomplish simple things in Gideros. This led him to create his new blog Due to popularity of his tutorials and the support he provided on the Gideros community forum, he became the most active community member. In February 2013, the Gideros team offered him the position in the Gideros developers' team, where he has been working since then, while continuing to work on games in his spare time.

          Code Downloads

          Download the code and support files for this book.

          Submit Errata

          Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


          - 11 submitted: last submission 09 May 2014

          Errata type: Typo   Page number: 45

          Last paragraph, first line is:
          No we need to bind this method...

          It should be:
          Now we need to bind this method... 

          Errata type: Typo   Page number: 87

          In the code snippet, 12th line is:
          --applye impulse to target

          It should be:
          --apply impulse to target... 

          Errata type: Technical   Page number: 46

          2nd last line is:
          system we just used to receive the MOUSE_DOWN event

          It should be:
          system we just used to receive the MOUSE_UP event

          Errata type: Code   Page number: 43

          In the 1st code snippet, 2nd line is:
          Sprite:setPosition(sprite, 100, 100)

          It should be:
          Sprite.setPosition(sprite, 100, 100)

          Errata type: Technical   Page number: 23

          In the bullet list:

          •  ball_@small.pngwith 40 x 40 resolution
          •  ball_@medium.pngwith 80 x 80 resolution
          •  ball_@big.pngwith 160 x 160 resolution

          It should be:

          •  ball@small.pngwith 40 x 40 resolution
          •  ball@medium.pngwith 80 x 80 resolution
          •  ball@big.pngwith 160 x 160 resolution

          Errata type: Typo   Page number: 64

          Last paragraph, 1st line is:
          Once the even listener is setup

          It should be:
          Once the event listener is setup

          Errata type: Code | Page number: 73

          3rd code snippet, 6th and 7th line is:

            menu:lineTo(conf.width + conf.dy, conf.height + conf.dy)

            menu:lineTo(conf.width + conf.dy, -conf.dy)

          It should be:

            menu:lineTo(conf.width + conf.dx, conf.height + conf.dy)

            menu:lineTo(conf.width + conf.dx, -conf.dy)


          Errata type: Code | Page number: 87

          After the function MainBall:onMouseUp(e), there should be a paragraph saying the following:
          Now all we need to do is to add these event listeners to the MainBall class inside the init method.

          self:addEventListener(Event.MOUSE_DOWN, self.onMouseDown, self)
          self:addEventListener(Event.MOUSE_MOVE, self.onMouseMove, self)
          self:addEventListener(Event.MOUSE_UP, self.onMouseUp, self)

          Errata type: Code | Page number: 91

          At the end of the page, there should be a sentence saying:
          And the last thing we need to do, is to hook the LevelScene:onBeginContact(e) method to Event.BEGIN_CONTACT inside the LevelScene:init method, as follows:

          --add collision event listener
, self.onBeginContact, self)
          Errata type: Code | Page number: 96
          After the sentence:
          As a result, we have a grid of levels to select from our current pack.
          The following sentence should follow:
          And to center it, we need to set position of the grid as follows:
          grid:setPosition((conf.width - grid:getWidth())/2, 70)

          Errata type: Code | Page number: 52

          Second code snippet, 4th line is:
          startButton:setPosition(conf.width/2, conf.height - 80) 

          It should be:
          - startButton:getWidth())/2, 
          conf.height - 80)

          Sample chapters

          You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

          Frequently bought together

          Gideros Mobile Game Development +    Sass and Compass for Designers =
          50% Off
          the second eBook
          Price for both: $33.45

          Buy both these recommended eBooks together and get 50% off the cheapest eBook.

          What you will learn from this book

          • Install Gideros and set up one-click, on-device testing
          • Divide games into logical scenes for proper asset end memory management
          • Use the built-in physics engine inside Gideros
          • Implement pack, level, and level progression logic
          • Manage background music and sound effects
          • Use tweens and animations
          • Manage highscores for your players

          In Detail

          Have you ever had an interesting idea for a mobile game? Have you ever wanted to jump on the mobile app bandwagon? Developing a mobile game has never been so fun and easy, and with the vast amount of smartphone users, it may also become a profitable thing to do. Gideros is a Lua-based framework that facilitates effortless native iOS and Android application development along with hardware acceleration. Gideros also comes with a built-in box2D physics engine and extended memory management features to make mobile game development a breeze.

          Gideros Mobile Game Development shows you how to develop an original and exciting game in Gideros, helping you create your very first project and guiding you through the configuration of settings and assets to help you target devices with different resolutions.

          This book teaches you everything you need to know about Gideros, from installing Gideros on your operating system to creating and efficiently managing your Gideros projects and creating your very first game, all with the help of well explained examples.

          You will learn how to quickly create game prototypes in Gideros, how to test and set up projects to automatically target devices with different resolutions, and how to polish your prototype with animations, sounds, tweens, and even physics to create your very first cross-platform game.

          By the end of this book, you will have learned everything you need to create visually stunning physics and exciting cross-platform games using Gideros.


          This book is a detailed guide to create and deploy mobile games on multiple mobile platforms with an emphasis on practical examples that help you learn how to make your own games quickly and efficiently.

          Who this book is for

          This book is for developers who are new to mobile game development or who have tried the native development of mobile games and want a simpler, faster tool that can support a wide variety of platforms and devices. Readers are expected to be at least partially familiar with the Lua game scripting language that Gideros uses for its scripts.

          Code Download and Errata
          Packt Anytime, Anywhere
          Register Books
          Print Upgrades
          eBook Downloads
          Video Support
          Contact Us
          Awards Voting Nominations Previous Winners
          Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
          Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software