HTML5 Game Development with GameMaker - Jason Lee Elliott - E-Book

HTML5 Game Development with GameMaker E-Book

Jason Lee Elliott

0,0
34,79 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

The introduction of HTML5 has revolutionized the web browser as a legitimate gaming platform with unlimited potential. Making games for the browser has never been simpler, especially with GameMaker Studio. Developers have full control over asset management, built-in systems for physics, particles and path finding. In addition, it offers a rich scripting language and extensions for developers now enabling everyone to create games and monetize them quickly and easily.HTML5 Game Development with GameMaker will show you how to make and release browser based games using practical examples. This book utilizes GameMaker's powerful scripting language allowing you to create your first game in no time. With this guide you will develop a thorough skill set and a coherent understanding of the tools to develop games of increasing complexity, gradually enhancing your coding abilities and taking them to a whole new level. The GameMaker Studio environment allows you to jump right into building browser based games quickly and releasing them online. The chapters focus on core practical elements, such as, artificial intelligence and creating challenging boss battles. This book guides you on how to use advanced features easily and effectively, these include, data structures and demonstrating how to create rigid body physics with simple explanations and visual examples. By the end of this book you will have an in-depth knowledge of developing and publishing online social browser based games with GameMaker.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 441

Veröffentlichungsjahr: 2013

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

HTML5 Game Development with GameMaker
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
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Getting to Know the Studio with Your First Game
Making HTML game development easy
Setting up the software
Our first look at the Studio
The Menu
The Toolbar
The Resource tree
The Workspace
Exploring the resource editors
Loading your art assets with the Sprite Properties editor
The wall sprite
The player sprite
Creating game objects with the Object Properties editor
The Wall object
The Player object
Creating worlds with the Room Properties editor
Running the game
Introducing code with the Script Properties editor
Filling the scene with the Background Properties editor
Bringing noise with the Sound Properties editor
A little background music
Controlling the game with the Overlord
The collectible
Writing text and the Font Properties editor
Creating complex movements with the Path Properties editor
Using the Time Line Properties editor to spawn collectibles
Tools for debugging your games
Using the HTML5 DEBUG console
Using the Windows version debugger
Taking a look at the JavaScript code
Summary
2. Triple 'A' Games: Art and Audio
Manufacturing art assets
Understanding the image file formats
Importing sprite sheets
Introducing the image editor
Creating backgrounds with tilesets
Animating and creating sprites
The illusion of action
Maximize the sprite space
Looping an animation
Manufacturing audio
Understanding the audio file formats
Using the GM:S Audio engine
Raising the quality bar
Consistency
Readability
Polish
Summary
3. Shoot 'em Up: Creating a Side-scrolling Shooter
Coding conventions
Building the player
Setting up the player sprite
Controlling the player object
Building the bullet
Firing the bullet
Removing bullets from the world
Constructing three little enemies
Making the enemy parent
Building the FloatBot
Creating the SpaceMine
Making the Strafer
Controlling the game with the Overlord
Spawning waves of enemies
Building the Overlord
Dealing with the life and death of the player
Setting up the win condition
Respawning with a Ghost object
Drawing the user interface
Adding the finishing details to the game
Adding the game music
Making the background move
Creating the explosions
Summary
4. The Adventure Begins
Creating animated characters
Simplifying the character movement
Implementing a melee attack
Navigating between rooms
Setting up the rooms
Creating Room Portals
Teleporting a persistent player
Bringing enemies to life
Summoning the Ghost Librarian
Building a wandering Brawl
Creating the Coach
Adding finishing details to the game
Summary
5. Platform Fun
Structuring systems-based code
Creating gravity
Building an animation system
Creating a collision forecasting system
Checking the keyboard
Building the player
Setting up the room
Building a boss battle
Creating the indestructible Gun
Constructing the first phase: The Cannons
Building the second phase: The giant LaserCannon
Setting the final stage: The shielded Boss Core
Winding it up
Summary
6. Toppling Towers
Understanding the physics engine
Activating the world
Defining properties with fixtures
Connecting objects with Joints
Applying forces to objects
Building a tower toppling game
Constructing the Pillars and Debris
Breaking the Pillars into Debris
Adding in the collision sounds
Building the demolition equipment
Creating a Wrecking Ball
Making a Magnetic Crane
Completing the game
Setting the win condition
Creating the Equipment Menu
Constructing the towers
Summary
7. Dynamic Front Ends
Setting up the rooms
Initializing the main menu
Selecting levels with 2D arrays
Preparing the Shop using data structures
Rebuilding the HUD
Adding risk and reward to destruction
Adding introductory text to each level
Saving the player's progress
Understanding local storage
Writing to local storage
Saving multiple game profiles
Summary
8. Playing with Particles
Introducing particle effects
Understanding particle systems
Utilizing particle emitters
Applying particles
HTML5 limitations
Adding particle effects to the game
Creating a Dust Cloud
Adding in Shrapnel
Making the TNT explosion
Cleaning up the particles
Summary
9. Get Your Game Out There
Releasing a game on your own site
Creating the application
Hosting the game
Uploading the game with FTP
Integrating with Facebook
Adding a Facebook login button
Tracking the game with Flurry Analytics
Setting up Flurry Analytics
Tracking events in the game
Sending the data to Flurry
Understanding the Analytics
Making money with your games
Summary
Index

HTML5 Game Development with GameMaker

HTML5 Game Development with GameMaker

Copyright © 2013 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 2013

Production Reference: 1150413

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-84969-410-0

www.packtpub.com

Cover Image by Suresh Mogre (<[email protected]>)

Credits

Author

Jason Lee Elliott

Reviewers

Dave Hersey

Chris Sanyk

Acquisition Editors

Antony Lowe

Grant Mizen

Lead Technical Editor

Mayur Hule

Technical Editors

Saumya Kunder

Amit Ramadas

Project Coordinator

Arshad Sopariwala

Proofreader

Bernadette Watkins

Indexer

Hemangini Bari

Graphics

Ronak Dhruv

Aditi Gajjar

Production Coordinator

Arvindkumar Gupta

Cover Work

Arvindkumar Gupta

About the Author

Jason Lee Elliott is a digital media expert with a passion for game design. He started his career as an all-purpose Artist at Konami, working his way up to the position of Lead Artist on Spawn for the Game Boy Color. Jason then returned to school to study film at the Vancouver Film School, where the shot he wrote, directed, and produced was selected as a finalist for the BC Film Director Internship Program. Games were never far away from his thoughts and with his new cinematic skills in hand, Jason returned to the industry as a Level and Game Designer at Radical Entertainment. While there, Jason became a proficient scripter, working on several acclaimed titles including Hulk, Hulk Ultimate Destruction, and The Simpsons: Hit & Run. Since 2005, Jason has been a teacher at the Art Institute of Vancouver, and is currently a senior faculty member in the Game Art and Design program. In his spare time, he develops indie games, dabbles in web and graphic design, is the webmaster for the Vancouver chapter of ACM SIGGRAPH, and occasionally blogs at jasonleeelliott.com.

I would like to thank my wife Su and my daughter Pixel, for allowing me the time to write this book. I would also like to give a shout out to Bert Dennison for his help with the artwork, and Brian Werst for all of his music and sound effects used in this book.

About the Reviewers

Dave Hersey has over 35 years of experience in Apple software development, dating back to the Apple II personal computer in 1977. In 2000, after more than six years in software engineering at Apple, Dave started Paracoders, Inc., focusing on custom Mac OS X-based application and driver development. In 2008, Dave's company expanded into iOS (iPhone) mobile applications, followed by Android applications soon after. Some bigger named clients include Paramount Home Entertainment, Lionsgate Entertainment, Seagate, Creative Labs, and Kraft Foods. Most recently, Dave's business expansion has included additional mobile and server-side platforms as well as support services. As a result, the custom software development division of Paracoders now operates as torchlight apps (http://www.torchlightapps.com).

Dave was also a technical reviewer for Creating Games with cocos2d for iPhone 2 by Packt Publishing, and stays busy with his wife raising 3 children, 3 dogs, 2 parakeets, and about 25 ducks, at the last count.

Chris Sanyk is a life-long videogame enthusiast, whose love affair with gaming started in the early 1980s with the Atari 2600 and the golden age of the arcade. He began designing his first videogame on paper at age six, and has been using GameMaker since 2010. He is an active member of the Cleveland Game Developers, the International Game Developers Association, and is a regular participant in Global Game Jam and Ludum Dare. He blogs and releases his game projects at http://csanyk.com, and his Twitter handle is @csanyk.

Chris is the coauthor of Wireless Reconnaissance in Penetration Testing by Matt Neely, Alex Hammerstone, and Chris Sanyk, published by Elsevier Press.

I would like to thank Mike Substelny, for providing me with my first introduction to GameMaker; my many friends at the Cleveland Game Developers, for their continued support and camaraderie; the communities of indie game developers around the world who put together Global Game Jam, Ludum Dare, and similar events; and the many designers, engineers, programmers, and artists who've inspired me over the years and provided me with endless hours of entertainment, challenge, and frustration, and everyone who has ever played one of my games.

www.PacktPub.com

Support files, eBooks, discount offers and more

You might want to visit www.PacktPub.com for support files and downloads related to your book.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

http://PacktLib.PacktPub.com

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books.

Why Subscribe?

Fully searchable across every book published by PacktCopy and paste, print and bookmark contentOn demand and accessible via web browser

Free Access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.

Preface

The introduction of HTML5 has revolutionized the web browser as a legitimate gaming platform with unlimited potential. Making games for the browsers has never been simpler, especially with GameMaker Studio.

HTML5 Game Development with GameMaker will show you how to make and release browser-based games using practical examples. This book utilizes GameMaker's powerful scripting language allowing you to create your first game in no time. With this guide you will develop a thorough skill set and a coherent understanding of the tools to develop games of increasing complexity, gradually enhancing your coding abilities and taking them to a whole new level.

This book guides you on how to use advanced features easily and effectively, including, data structures and demonstrating how to create rigid body physics with simple explanations and visual examples. By the end of this book, you will have an in-depth knowledge of developing and publishing online social browser-based games with GameMaker.

What this book covers

Chapter 1, Getting to Know the Studio with Your First Game, will help you in making your own game. You will have an opportunity to explore the GameMaker: Studio interface. In this chapter, we will be creating and implementing every type of resource available while utilizing all the various resource editors.

Chapter 2, Triple 'A' Games: Art and Audio, will help you understand how art and audio work in GameMaker: Studio. It will cover the acceptable image formats and how to import a sprite sheet. In this chapter, we will be creating a tile set that will make better use of computer memory and allow for large unique worlds, and understand how to control sounds and the direction they are heard from.

Chapter 3, Shoot 'em Up: Creating a Side-scrolling Shooter, will help you in creating your first side-scrolling shooter. In this chapter, we will be applying all three methods of movement: manually adjusting the X and Y coordinates, and setting the speed and direction. We will be able to add and remove instances from the game world dynamically.

Chapter 4, The Adventure Begins, simplifies the player controls by placing the keyboard checks and collision forecasting into a single script. It covers several ways to deal with Sprite animation from rotating the image to setting what sprites should be displayed. We will be dealing with artificial intelligence through the use of proximity detection and path finding.

Chapter 5, Platform Fun, delves into systems design and creating some very useful scripts. We will be building an animation system that most objects in the game utilize and forecast for collision, and apply our own custom gravity to the player. Lastly, we will be creating a three-phase Boss fight utilizing all our previous knowledge along with our new systems.

Chapter 6, Toppling Towers, covers the basics of using the Box2D physics system. We will be learning how to assign Fixtures to objects and different properties that can be modified. We will be creating a Chain and Wrecking Ball that utilizes Revolute Joints, so that each piece would rotate with the one preceding it. Also, the chapter covers Draw GUI events and the difference between a Sprite's location as represented in a Room versus the location on the screen.

Chapter 7, Dynamic Front Ends, consists of adding an entire frontend, including a Shop and unlockable levels. We will be dealing with Grids, Maps, and List data structures to hold a variety of information. We will be rebuilding the HUD, so that we could display more buttons, display only the available equipment, and build a basic countdown timer. Lastly, we will add a save system that teaches us about using local storage and allows us to have multiple player saves.

Chapter 8, Playing with Particles, will show you how to add some spit and polish to really make our game shine. We will be delving into the world of particles and create a variety of effects that will add impact to the TNT and Pillar destruction. The game is now complete and ready to be released.

Chapter 9, Get Your Game Out There, will help us in uploading a game to a web server using an FTP client. We will be integrating Facebook into the game, allowing players to log in to their account, and post level scores to their walls. It also covers analytics using Flurry to track how players are playing the game. Finally, we will briefly learn about making money off our games through sponsorship.

Appendix, Drag-and-drop Icons to GameMaker Language Reference, will help us in understanding what each icon does, as each icon is often more than a single function. The appendix provides a thorough reference of the code equivalent to all the drag-and-drop icons.

You can download this Appendix from http://www.packtpub.com/sites/default/files/downloads/4100OT_Appendix_Drag_and_drop_Icons_to_GameMaker_Language_Reference.pdf.

What you need for this book

This book requires GameMaker: Studio Professional with HTML5 export module, and an HTML5-compliant browser (Google Chrome works the best).

Who this book is for

This book is for anyone with a passion to create fun and action packed web browser games using GameMaker: Studio. This intuitive practical guide appeals to both beginners and advanced users wanting to create and release online games to share with the world, using the powerful GameMaker tool.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the erratasubmissionform link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Chapter 1. Getting to Know the Studio with Your First Game

Welcome to HTML5 Game Development with GameMaker! You are about to enter the exciting world of game development for the web. If you have never used GameMaker: Studiobefore, this book will show you everything you need to know about using the software, making games, and getting them up on the Internet. If you have previous experience with GameMaker: Studio, but this is your first foray into HTML5, this book will give you a better understanding of the differences between developing stand-alone games and browser-based games. Feel free to skim through this chapter and move onto the projects.

Now if you are still reading this, we can assume that you want to know more about this software. You might be asking yourself, "Why should I use GameMaker: Studio? What features does the HTML5 module give me? For that matter, what is HTML5 and why should I care?" All of these are good questions, so let's try to answer them.

Making HTML game development easy

GameMaker: Studio is an incredibly powerful and easy to use development tool for making games. The software was originally designed to be used in a classroom setting as a way for students to learn basic programming concepts, understand game architecture, and create fully featured games. As a result, the development environment is very intuitive for first time users due to the drag-and-drop system of coding. Unlike many other competing development tools with similar functionality, GameMaker: Studio has a very robust scripting language that allows users to create almost anything they can imagine. Add to this the fact that you can easily import and manage graphics and audio resources, the integration of the fantastic Box2D physics library, and built-in source control, why wouldn't you use it? Up until now, making games generally meant that you were creating a stand-alone product.

The Internet was not really a consideration as it was fairly static and required a slew of proprietary plugins to display dynamic content, such as games, movies, and audio. Then HTML5 came along and changed everything. HTML5 is an open-standards collection of code languages that allows anyone and everyone to develop interactive experiences that will be able to be run natively on any device with a modern browser and an Internet connection. Developers are now able to use cutting edge features, such as WebGL (a graphics library that allows for 3D rendering), audio APIs, and asset management, to push the boundaries of what you can do in a browser.

Note

Not all browsers are equal! While the HTML5 standards are set by the W3C, each vendor implements them differently. Also, not all the standards have been set at this time, which means that some things may not work in certain browsers. For example, there are multiple audio APIs competing to become the standard. As the standards become locked down and as the browsers become more compliant, these issues should go away. To see how well your preferred browser supports HTML5, go to http://html5test.com.

Normally, developing a game for HTML5 would require a working knowledge of three different coding languages: HTML5 (Hypertext Markup Language), the code language that creates the structure of a web page, CSS3 (Cascading Style Sheets 3), that determines the presentation of the site, and JavaScript that actually makes the magic happen. The GameMaker: Studio HTML5 export module makes all of this simple by allowing developers to work in an integrated environment and export to these languages with the press of a button. Beyond just being a game engine, the HTML export module includes specific functions for dealing with URLs and browser information. It also comes with its own local server software that will allow you to test your games as if it were up on the Internet live. Finally, you can extend GameMaker: Studio even further, because it allows you to import external JavaScript libraries for any functionality you may need or want. Sounds great, doesn't it? Now let's get the Studio up and running.

Setting up the software

In order to use this book, we need to have a few pieces of software. Firstly, we need an HTML5 compliant browser, such as Mozilla Firefox, Microsoft Internet Explorer 9.0, or for the best results, Google Chrome. Secondly, we need to purchase and install GameMaker: Studio Professional with the HTML5 export module. Once we have all of that we can start making games!

Note

Please be aware that GameMaker: Studio Professional and the HTML5 export module are two separate items, and you will need to own both in order to create games for the web.

Purchase and download GameMaker: Studio Professional and the HTML5 export module from https://www.yoyogames.com/buy/studio/professional.Once they have been downloaded, run the program GMStudio-Installer.exe.Follow the onscreen instructions and then launch the program.Enter your license key. This will unlock the software and the modules that have been purchased.

GameMaker: Studio is ready to go, so let's start a project!

In the New Project window, select the New tab. It should look like the preceding screenshot.GameMaker: Studio manages projects by creating folders for each resource along with a project file. For this you will want to specify a directory where the game files are to be stored. Set the Project Name field to Chapter_01 and click on Create.

Our first look at the Studio

Now that we have the software up and running, let's take a look at the interface. The basic layout of GameMaker: Studio can be broken down into four components: the Menu, the Toolbar, the Resource tree, and the Workspace. We will be exploring these components throughout this book, so don't expect a breakdown of each and every item. Not only would that be incredibly boring to read, it would delay us from making games. Instead, let's just focus on the stuff we need to know right now.

Firstly, as with most complex software, each of these components has its own way of allowing users to do the most common tasks. For example, if you want to create a Sprite you can navigate to Menu | Resources | Create Sprite, or you can click on the Create a Sprite button in the Toolbar, or you can right mouse click the Sprites group in the Resource Tree, or you can use Shift + Ctrl + S to open the Sprite Editor window in the Workspace. There are actually even more ways to do this, but you get the point.

While there is a lot of overlapping functionality, there are also many things that can only be done in each specific component. Here is what we need to know.

The Menu

The Menu is where you will find every editor and tool you will need. There are a few very useful tools, such as the ability to Search in Scripts and Define Constants that are only found here. Why not just spend a moment and take a look at each menu option so that you have an idea of all the things you have available to you. We'll wait.

The Toolbar

The Toolbar uses simple graphic icons for the most common editors and tools we will be using. These buttons are the easiest and quickest way to create new assets and run the game, so expect to be using these often. There is one very important, unique element on the Toolbar: the Target drop-down menu. The Target determines what format we will be compiling and exporting to. Set this to HTML5.

Note

The default setting for the Target menu is Windows, so make sure you change it to HTML5.

The Resource tree

The Resource tree shows and organizes all the assets that have been created for the game. Keeping a project organized won't affect the performance of the software, but it will save us time and reduce frustration in the long run.

The Workspace

The Workspace is where all the various editors will open up. When the game is run, the Compiler Information box will appear at the bottom, and will show everything being compiled when the game is run. There is also a tab for Source Control, which can be used if you have an SVN Client and repository for working in groups.

Note

If you want to know more about Source Control, check out the following GameMaker: Studio wiki page: http://wiki.yoyogames.com/index.php/Source_Control_and_GameMaker:Studio