Encontre seu próximo livro favorito

Torne'se membro hoje e leia gratuitamente por 30 dias.
Monkey Game Development: Beginner's Guide

Monkey Game Development: Beginner's Guide

Ler amostra

Monkey Game Development: Beginner's Guide

Comprimento:
1,188 página
5 horas
Lançado em:
Apr 20, 2012
ISBN:
9781849692090
Formato:
Livro

Descrição

The first two chapters will provide you with grounding in Monkey. In each subsequent chapter you will create a complete game deployable to either iOS, Android, HTML5, FLASH, OSX, Windows and XNA. The last chapter will show you how to monetize the games so you can be commercially successful in the app development world. Do you want to quickly create games deployable to all the major desktop and mobile platforms?, if so look no further. You will learn how to utilize the highly versatile Monkey compiler to create 2d games deployable almost anywhere.
Lançado em:
Apr 20, 2012
ISBN:
9781849692090
Formato:
Livro

Sobre o autor


Relacionado a Monkey Game Development

Livros relacionados
Artigos relacionados

Amostra do Livro

Monkey Game Development - Michael Hartlef

Table of Contents

Monkey Game Development Beginner's Guide

Credits

About the Author

About the Reviewers

www.PacktPub.com

Support files, eBooks, discount offers and more

Why Subscribe?

Free Access for Packt account holders

Preface

What this book covers

Who this book is for

Conventions

Time for action – heading

What just happened?

Have a go hero – heading

Reader feedback

Customer support

Downloading the example code

Errata

Piracy

Questions

1. Monkey—Huh?

Game development for the rest of us

Cross-platform development

Compiler or translator?

The Monkey toolbox

Time for action – installing Monkey

Please welcome… Monk

MSERVER—Monkey's own web server

What just happened?

Let's have a little playtime

Time for action – playing Pirate TriPeaks

What just happened

Time for action – playing Surviball

What just happened?

Playing to have fun, playing to study

So let's go for something big? No!

The alternative

What just happened?

Time for action – read the manual

What just happened ?

The Trans tool and the supported target platforms

HTML5

FLASH

iOS

Android

XNA

GLFW

The Monkey standard modules

Lang

Lists

Map

Math

Random

Set

Stack

Mojo – The 2D framework/modules

App

Audio

Graphics

Input

Monkey is extendable

Your own modules

Native source code

Third-party modules

Your own targets

Your game is easily portable

Summary

2. Getting to Know your Monkey—a Trip to the Zoo

Call the Monk and start praying—the Monkey IDE

Why learn about Monk?

Starting up Monk

Monk's user interface

The toolbar

The code editor area

The info box

Time for action – opening a sample script

What just happened?

Where is my navi?

Time for action – navigating to the Main() function

What just happened?

Save... save... save!

Time for action – saving a script

What just happened?

Projects—bringing in some organization

Time for action – creating a project

What just happened?

The Monkey programming language

Time for action – Monkey's Hello World

What just happened?

Running your first script in a browser

Our first little game... PONGO

Time for action – the basic structure of your game

Pongo's data structure

Time for action – adding some data fields

Time for action – rendering the game field

Time for action – drawing the ball and the paddles

Time for action – player paddle movement

Time for action – moving the enemy paddles

Time for action – moving the ball

Time for action – controlling the ball with the player's paddle

Time for action – letting the enemy paddles fight back

Time for action – acting on the different game modes

What just happened?

Have a go hero – enhancing the computer AI

Exporting your game as an HTML5 website

One more thing... comment your code!

Summary

3. Game #2, Rocket Commander

The game objects

The basic file structure

Time for action – building the basic file structure of the game

What just happened?

Hold that data—RocketCommander's data structure

Time for action – creating the general data structure of the game

What just happened?

Detailing the Update process

Time for action – detailing the Update process

What just happened?

Detailing the Render process

Time for action – detailing the Render event

What just happened?

Enhancing the OnCreate event

Time for action – detailing the OnCreate process

What just happened?

Let's build some cities

Time for action – building some cities

What just happened?

Implementing the city class into the game

Time for action – changing the gameClasses file

What just happened?

Modifying the RocketCommander class

Time for action – spawning some cities in the game

What just happened?

Rendering the ground and the cities

Time for action – rendering the cities

What just happened?

Get the launchers ready!

Time for action – implementing the rocket launchers

What just happened?

Implementing the launcher class into the game

Time for action – changing the gameClasses file again

What just happened?

Modifying the RocketCommander class

Time for action – creating some launchers in the game

What just happened?

Updating the rocket launchers

Time for action – updating the launchers

What just happened?

Enhancing the UpdateMenu method

Time for action – modifying the menu update process

What just happened?

Rendering our precious rocket launchers

Time for action – rendering the launchers

What just happened?

Fire! Blast them to pieces!

Time for action – implementing some rockets

What just happened?

Implementing the rocket class into the game

Time for action – modifying the gameClasses file

What just happened?

Modifying the launcher class

Time for action – modifying the launcher class

What just happened?

Updating the rockets

Time for action – updating the rockets

What just happened?

Rendering our furious rockets

Time for action – rendering the rockets

What just happened?

And it goes BOOM!... Explosions

Time for action – implementing explosions

What just happened?

Implementing the explosion class into the game

Time for action – modifying the gameClasses file

What just happened?

Modifying the rocket class

Time for action – modifying the rocket class

What just happened?

Updating the explosions

Time for action – updating the explosions

What just happened?

Rendering beautiful explosions

Time for action – rendering the explosions

What just happened?

Don't fear the enemy—bombs

Time for action – creating the bomb class

What just happened?

Implementing the bomb class into the game

Time for action – modifying the gameClasses file

What just happened?

Updating bombs

Time for action – updating the bombs

What just happened?

Rendering beautiful bombs

Time for action – rendering the bombs

What just happened?

Creating new bombs and checking for GameOver conditions, or new level conditions

Time for action – modifying the UpdateGame method

What just happened?

Displaying the game score

Time for action – displaying the game score

What just happened?

Summary

4. Game #3, CometCrusher

Using a game framework—the fantomEngine

Game resources

Images

Sounds

Bitmap fonts

The game objects

Layers

Background stars

Comets

The player ship

The shield

Shots

Particles

Game info text

The basic file structure

Time for action – create the main source file and its folders

What just happened?

Open the storage please—the data structure of Comet-Crusher

Time for action – creating the data structure

What just happened?

First changes to the OnCreate method

Time for action – modifying the OnCreate method

What just happened?

Detailing the Render process

Time for action – detailing the OnRender method

What just happened?

This is a setup—creating the game objects

Group yourself—layers

Time for action – creating some layers

Let them shine—the background stars

Time for action – implementing some stars

What just happened?

The Hero—creating the player ship

Time for action – setting up the player ship

What just happened?

Did you hear that—loading sounds

Time for action – creating a method to load sounds

What just happened?

Did you see that score—the game UI

Time for action – creating some game info text objects

What just happened?

Headlines—adding a title screen

Time for action – adding a title screen

What just happened?

How good are you—the high score list

Time for action – setting up the high score list

What just happened?

Rocks rocks rocks—fill the space with some comets

Time for action – create a comet

What just happened?

Time for action – creating some comets

What just happened?

Mission complete... finalizing the OnCreate process

Time for action – finalizing the OnCreate method

What just happened?

We need help—more methods for the Update process

Loading and showing the high score list

Time for action – loading a high score list

What just happened?

Time for action – showing the high score list

What just happened?

Activating the shield of the player ship

Time for action – the ActivateShield method

What just happened?

Delta time related movement

Time for action – determine the time delta

What just happened?

Updating the game statistic info text objects

Time for action – updating the info text

What just happened?

Starting a new game

Time for action – creating a StartNewGame method

What just happened?

Let the engine glow

Time for action – spawning some engine particle FX

What just happened?

And it goes boom—creating an explosion

Time for action – creating some explosions

What just happened?

Give me that gun—spawning a shot

Time for action – spawning some shots

What just happened?

Save some high scores, will ya!

Time for action – saving the high score list

What just happened?

Finalizing the OnUpdate method

Time for action – finalizing the OnUpdate method

What just happened?

Bring in the action—shaping the engine class

Crack these objects—object collision handling

Time for action – detailing the collision detection

What just happened?

It's about time—acting on timer events

Time for action – detailing the OnObjectTimer method

What just happened?

Everything is under control—object update events

Time for action – detailing the OnObjectUpdate method

What just happened?

Did I win—checking the losing conditions with OnLayerUpdate

Time for action – detailing the OnLayerUpdate method

What just happened?

Have a go hero—adding an enemy ship

One last thing—creating a FLASH game

Summary

5. Game #4, Chain Reaction

Modifying the HTML5 canvas size

Time for action – modifying canvas size

Some development basics

Frameworks/modules

Sprite sheets

Content scaling

Touch input

Suspend and Resume events

Animation

Game resources

Game objects

Layers

Title screen

Game background

Atom tiles

Game info text

The basic app structure

Time for action – creating the main source file and its folders

What just happened?

The data storage

Time for action – creating the data structure

What just happened?

First changes to the OnCreate event

Time for action – first changes to the OnCreate method

What just happened?

Detailing the OnRender event

Time for action – detailing the OnRender method

What just happened?

Setting up the game objects

Sound effects

Time for action – loading the game sound effects

What just happened?

Game layers

Time for action – creating layers for the game

What just happened?

Game screen

Click here – Adding buttons

Time for action – creating buttons

What just happened?

The info text objects

Time for action – creating info text objects

What just happened?

The actual game screen

Time for action – composing the game screen

What just happened?

Title screen

Time for action – creating the title screen

What just happened?

Finalizing the OnCreate event

Time for action – finalizing the OnCreate method

What just happened?

Helper functions for the update process

Creating the atom elements

Collision circle objects

Time for action – creating collision circles

What just happened?

Atom elements

Time for action – creating the atom elements

What just happened?

Starting a new game

Time for action – creating a StartNewGame method

What just happened?

Time-related movement

Time for action – implementing the GetDeltaTime method

What just happened?

Updating the info text objects

Time for action – creating a method to update the text information

What just happened?

Detailing the OnUpdate event

Time for action – finalizing the OnUpdate method

What just happened?

Introducing the OnSuspend event

Time for action – modifying the OnSuspend event

What just happened?

Introducing the OnResume event

Time for action – updating the OnResume method

What just happened?

The heart of the game - the engine class

What are transitions?

Touch me – acting on touch hits

Time for action – enhancing the OnObjectTouch method

What just happened?

The eagle has landed—a transition is finished

Time for action – detailing the OnObjectTransition method

What just happened?

It's about time—timer events

Time for action – acting on timer events

What just happened?

Captain! Collision ahead!—doing collision checks

Time for action – detailing the collision detection

What just happened?

Have a go hero – enhancing Chain Reaction

Creating an Android app

Changing icons

Do a name change

Signing an application for the market

Summary

6. Game #5, Balls Out!

Which frameworks and modules are used?

Game resources

Our lovely game objects

Layers

The title screen

Game background

The ball

Enemies

The ball tiles

The basic app structure

Time for action – creating the basic file structure

What just happened?

Modifying the HTML5 canvas size for testing

Time for action – modifying the HTML5 output

The data storage

Time for action – creating the data structure

What just happened?

First changes to the OnCreate event

Time for action – first changes to the OnCreate method

What just happened?

Detailing the OnRender event

Time for action – detailing the OnRender method

What just happened?

Setting up the game objects

Make some noise—sound effects

Time for action – loading the game sound effects

What just happened?

Lay your head on me—the game layers

Time for action – creating layers for the game

What just happened?

Our beloved play field—the background screen

Buttons—I need more text buttons!

Time for action – creating text buttons

What just happened?

The background screen as usual

Time for action – composing the game screen

What just happened?

Give it a name—the title screen

Time for action – creating the title screen

What just happened?

Finalizing the OnCreate event

Time for action – finalizing the OnCreate method

What just happened?

Helper methods for the update process

Creating the tiles

Time for action – creating the tiles

What just happened?

The main actor—creating the ball

Time for action – creating the ball

What just happened?

Have a go hero – Add more player balls

The bad guys—our beloved enemies

Time for action – creating the enemy class

What just happened?

More helper functions

Spawning an enemy

Time for action – spawning an enemy

What just happened?

Starting a new game

Time for action – creating a StartNewGame method

What just happened?

Bring me up-to-date—detailing the OnUpdate event

Time for action – detailing the OnUpdate method

What just happened?

Eye candy—particle effects

The particle emitter class

Time for action – creating the particle emitter class

What just happened?

The last helper method

Time for action – spawning a particle emitter

What just happened?

The heart of the game—the engine class

Touch me—acting on touch hits

Time for action – enhancing the OnObjectTouch method

What just happened?

Controlling the ball—acting on object update events

Time for action – acting on object update events

What just happened?

What's the situation? Layer update events

Time for action – acting on layer update events

What just happened?

We reached our parking position—a transition is done

Time for action – detailing the OnObjectTransition method

What just happened?

Bump bump—checking for collisions

Time for action – detailing the collision detection

What just happened?

Have a go hero – enhancing a chain reaction

Creating an iOS app

Summary

7. Game #6, At The Docks

Frameworks and modules used

Game resources

The game objects

Layers

The default layer

The title screen

Game screen

Wall tiles

Floor tiles

Target tiles

Crate tiles

The player machine

The basic app structure

Time for action – creating the basic file structure

What just happened?

Modifying the HTML5 canvas size for testing

Time for action – modifying the HTML5 output

What just happened?

The storage for our data

Time for action – creating the data structure

What just happened?

Setting up the game objects

Slice over slice—game layers

Time for action – creating layers for the game

What just happened?

The second-most important part—a title screen

Time for action – creating the title screen

What just happened?

Detailing the OnCreate event

Time for action – finalizing the OnCreate method

What just happened?

Some flexible methods for the update process

Lads and gents… the main actor

Time for action – creating the player

What just happened?

The level maps—loading the tiles

Time for action – loading the level tiles

What just happened?

On your marks—starting a new game

Time for action – creating a StartNewGame method

What just happened?

Bring me up-to-date—detailing the OnUpdate event

Time for action – detailing the OnUpdate method

What just happened?

And action!—the engine class

Move it… object updates

Time for action – updating each object

What just happened?

Push push—checking for collisions

Time for action – detailing collision detection

What just happened?

I can't see it anymore—the transition is finished!

Time for action – detailing the OnLayerTransition method

What just happened?

Have a go hero – enhancing At The Docks

Creating a XNA app

Summary

8. Game #7, Air Dogs 1942

Frameworks and modules used

No silver, no gold, but… our game resources!

The game objects

Layers

The title screen

Game background

The player plane

The enemy plane

Bullets

Clouds

Info text

Smoke particles

Explosions

The basic app structure

Time for action – setting up the basic file structure

What just happened?

Storing data

Time for action – creating the data structure

What just happened?

First changes to the OnCreate event

Time for action – first changes to the OnCreate method

What just happened?

Setting up the game objects

Making some noise… sound effects!

Time for action – loading the game sound effects

What just happened?

Lay your head on me… the game layers

Time for action – creating layers for the game

What just happened?

Over high ground—the background screen

Time for action – composing the background screen

What just happened?

Hope it won't rain—creating the clouds

Time for action – creating the clouds

What just happened?

What is going on?—creating info text objects

Time for action – creating info text objects

What just happened?

What are we playing here?—The title/menu screen

Time for action – creating the title screen

What just happened?

Finalizing the OnCreate event

Time for action – finalizing the OnCreate method

What just happened?

Methods for the update process

The hero—spawning the player plane

Time for action – spawning the player plane

What just happened?

Spawning an enemy

Time for action – spawning an enemy plane

What just happened?

Starting a new game

Time for action – creating a StartNewGame method

What just happened?

Detailing the OnUpdate event

Time for action – detailing the OnUpdate method

What just happened?

Making it look nicer—some particle effects

Emitting smoke

Time for action – emitting the smoke

What just happened?

Boom!—Emitting explosions

Time for action – creating the explosion

What just happened?

Pow!—spawning a shot

Time for action – spawning a shot

What just happened?

The brain—Computer AI (Artificial Intelligence)

Follow him!—creating a brain for the enemy pilot

Time for action – following the player

What just happened?

The heart of the game—the engine class

Time management—acting on object timer events

Time for action – enhancing the OnObjectTimer method

What just happened?

It is gone!—a transition is done

Time for action – detailing the OnObjectTransition method

What just happened?

Controlling the player plane—acting on object update events

Time for action – acting on object update events

What just happened?

Hit it!—handling collision response

Time for action – detailing the collision response

What just happened?

Did I win?—layer update events

Time for action – acting of layer update events

What just happened?

Have a go hero—enhancing the game

Creating a GLFW app

Summary

9. Game #8, Treasure Chest

Frameworks and modules used

Reusing code

The parts of the game... resources

And here they are… the game objects!

Layers

Our precious title screen

A menu screen

The high-score screen

A game background

The worthy gems

The gem selector

Particle effects

Preparation… the basic app and project structure

Time for action – creating the basic file structure

What just happened?

Creating 2D arrays

Time for action – creating 2D arrays

What just happened?

Storing information… the data storage

Time for action – creating the data structure

What just happened?

First changes to the OnCreate event

Time for action – first changes to the OnCreate method

What just happened?

About the OnRender event

Setting up the game objects

Klick, bang, swoosh… the sound effects!

Time for action – loading the game sound effects

What just happened?

Lay your head on me…. the game layers

Time for action – creating layers for the game

What just happened?

Our beloved play field—the background screen

Time for action – composing the background screen

What just happened?

Give it a name… the title screen

Time for action – creating the title screen

What just happened?

Game over… creating the game over screen

Time for action – creating the game over screen

What just happened?

The menu please… creating the menu screen

Buttons … I need more text buttons!

Time for action – creating text buttons

What just happened?

The menu screen

Time for action – creating the menu screen

What just happened?

What is the score?… creating the high-score screen

Time for action – creating the score screen

What just happened?

Layer activation

Time for action – creating the activate layer method

What just happened?

Finalizing the OnCreate event

Time for action – finalizing the OnCreate method

What just happened?

Dealing with the high-score list

Loading and saving the list

Time for action – loading and saving the high-score list

What just happened?

Showing the high-score screen

Time for action – showing the high-score list

What just happened?

Managing the tile map

Getting tile map slot IDs

Time for action – getting tile slot IDs

What just happened?

Setting tile map slot IDs

Time for action – setting a tile slot ID

What just happened?

Check/mark the neighboring tiles

Time for action – checking neighboring horizontal tiles

Time for action – check neighboring vertical tiles

What just happened?

Clearing tiles

Time for action – clearing the tile map

What just happened?

Counting matching tiles

Time for action – counting matching tiles

What just happened?

The precious one… creating a gem

Time for action – creating a gem

What just happened?

Refilling the tile map

Time for action – refilling the tile map

What just happened?

Methods for the update process

Starting a new game

Time for action – creating a StartNewGame method

What just happened?

Give me some information… displaying info

Time for action – updating the text info

What just happened?

Showing the game over screen

Time for action – showing the game over screen

What just happened?

Showing the menu screen

Time for action – showing the menu

What just happened?

Bring me up-to-date—detailing the OnUpdate event

Time for action – detailing the OnUpdate method

What just happened?

Vroom… vroom—the engine class

Eye candy—particle effects

Time for action – spawning an explosion

What just happened?

Tick tock… acting on object timer events

Time for action – acting on object timer events

What just happened?

Touch me—acting on Touch checks

Time for action – enhancing the OnObjectTouch method

What just happened?

We've reached our parking position… a transition is done

Time for action – detailing the OnObjectTransition method

What's the situation?… layer update events

Time for action – acting on layer update events

What just happened?

Have a go hero – enhancing Treasure Chest

Summary

10. Make Some Money for Bananas

Which markets exist for your game?

iOS

OSX

Android

XNA

HTML5/FLASH

Existing methods of making money

Selling your game at a fixed price

Subscriptions

Advertisement

In-App purchases

Implementing advertising in your app

Which ad providers exist?

Implementing AdMob

iOS

Android

Implementing MobFox in iOS

Signing up at MobFox

Creating the ID for an iOS app in MobFox

Time for action – creating a new MobFox app ID

What just happened?

Implementing MobFox into your XCODE project

Time for action – adding the MobFox framework to the XCODE project

What just happened?

Displaying MobFox ads in the app

Time for action – modifying the code to display ads

What just happened?

Activating real ads

Implementing MobFox in Android

Creating the ID for an Android app in MobFox

Time for action – creating a new MobFox app ID

What just happened?

Implement MobFox into your Android project

Time for action – modifying the project to display ads in Android

What just happened?

Adding a backfill through InMobi

Signing up at InMobi

Create an Android app in InMobi

Time for action – creating an app ID in InMobi

What just happened?

Setting the backfill option in MobFox

Time for action – add a backfill in MobFox

What just happened?

Publishing in the Android market

Create app icons

Change the app label and the package name

Setting the version code and name

Rename the app package

Remove the debug key from the package

Create a private key to sign the app with

Sign the package with your new private key

Zipalign your app package

Publishing in Apple's App Store

Add the app icons

Time for action – adding an icon to the Xcode project

What just happened?

Time for action – setting the product name in the target settings

What just happened?

Set the distribution code signing profile

Time for action – setting the distribution code signing profile

What just happened?

Create a package to submit

Time for action – creating the app package

What just happened?

Summary

Index

Monkey Game Development Beginner's Guide


Monkey Game Development Beginner's Guide

Copyright © 2012 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: April 2012

Production Reference: 1130412

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-84969-203-8

www.packtpub.com

Cover Image by J.Blaminsky ( <jarek@jblaminsky.com >)

Credits

Author

Michael Hartlef

Reviewers

Nikolas Kolm

Meri Morganov

Acquisition Editor

Kartikey Pandey

Lead Technical Editor

Shreerang Deshpande

Technical Editors

Apoorva Bolar

Arun Nadar

Priyanka S

Copy Editor

Brandt D'Mello

Project Coordinator

Alka Nayak

Proofreader

Aaron Nash

Indexer

Hemangini Bari

Graphics

Manu Joseph

Production Coordinator

Melwyn D'Sa

Cover Work

Melwyn D'Sa

About the Author

Michael Hartlef has been into game development for a long long time, starting in 1984, at the early age of 18, with this great hobby called developing computer games, on the Commodore C64. After developing for this machine, he has worked on most other well-known computers, such as the Amiga 1000 and 500, the Atari 1024 STFm, and of course various PCs. These days it is mostly his iMac that he uses.

Over the years, he has become very knowledgeable about general and specific concepts for developing games and has worked on a large range of game development tools/programming languages, such as thinBasic, Delphi, 3D GameStudio, Blitz3D, BlitzMax, DarkBasic Pro, App Game Kit (AGK), Corona SDK, and of course, Monkey! Besides working on games, Michael has developed various add-ons for tools such as command library extensions and programming editors.

During the day, Michael works for a utility company where he maintains the billing system (SAP IS-U). Michael is also the founder of an independent game developer startup called Whitesky Games (http://www.whiteskygames.com). There, he spends a lot of his spare time working on game development tools (IndeED), add-ons and games for friends and clients, and his own projects.

First, I'd like to thank my wonderful wife Katherine and my great son Marc Justin for having so much patience with me during the time of writing this book and giving me all the support I needed. Without you guys, I would not have made it. I love you!

Also, I would like to thank the people at PacktPub for giving me the opportunity to write this book, which has been a great experience in my life. Next, I send a big thank you to Jayant Varma from Oz Apps, who hinted to me that PacktPub was looking for an author for this book. Also, I want to thank Lee Bardsley from GameLab3D for being my friend and talk buddy.

And finally, a big thank you goes to Mark Sibly, the creator of Monkey, for providing such an awesome tool for the people and me.

About the Reviewers

Nikolas Kolm has been active as a Level

Você chegou ao final desta amostra. Inscreva-se para ler mais!
Página 1 de 1

Análises

O que as pessoas pensam sobre Monkey Game Development

0
0 avaliações / 0 Análises
O que você acha?
Classificação: 0 de 5 estrelas

Avaliações de leitores