34,79 €
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:
Seitenzahl: 441
Veröffentlichungsjahr: 2013
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]>)
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
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.
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.
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.
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.
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.
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.
This book requires GameMaker: Studio Professional with HTML5 export module, and an HTML5-compliant browser (Google Chrome works the best).
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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!
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.
GameMaker: Studio is ready to go, so let's start a project!
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 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 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.
The default setting for the Target menu is Windows, so make sure you change it to HTML5.
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 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.
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
