Book Image

GameMaker Cookbook

Book Image

GameMaker Cookbook

Overview of this book

GameMaker: Studio started off as a tool capable of creating simple games using a drag-and-drop interface. Since then, it has grown to become a powerful instrument to make release-ready games for PC, Mac, mobile devices, and even current-gen consoles. GameMaker is designed to allow its users to develop games without having to learn any of the complex programming languages such as C++ or Java. It also allows redistribution across multiple platforms. This book teaches you to harness GameMaker: Studio’s full potential and take your game development to new heights. It begins by covering the basics and lays a solid foundation for advanced GameMaker concepts. Moving on, it covers topics such as controls, physics, and advanced movement, employing a strategic approach to the learning curve. The book concludes by providing insights into complex concepts such as the GUI, menus, save system, lighting, particles, and VFX. By the end of the book, you will be able to design games using GameMaker: Studio and implement the same techniques in other games you intend to design.
Table of Contents (17 chapters)
GameMaker Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Changing day to night


Though it has been done before, my first memory of a game with an active day/night cycle was Legend of Zelda: Ocarina of Time.

While running around most outdoor areas, the game's internal clock would cycle day to night and back to day again. Different enemies would appear between day and night, but the biggest change was to see how the world appeared. Enemies became less visible and the draw distance (how far you could see) was affected. Using what we've learned in this chapter so far, let's create a day/night cycle in GameMaker.

Getting ready

We'll start from scratch for this recipe because you only need three things: A room (rm_game), a block object to test your sight (obj_block), and a night cycle controller object (obj_cycle). Give obj_block a simple sprite and place it in random places around the room, but do not assign a sprite to obj_cycle. Also, make sure obj_cycle has a depth with a lower value than everything else in the room.

How to do it

  1. In obj_cycle, add a Create...