PacktLib: GameMaker Game Programming with GML

GameMaker Game Programming with GML


About the Author

About the Reviewers


Getting Started – An Introduction to GML

Creating GML scripts

Understanding parts of GML scripts

Pushing your buttons


Random Organization – Creating a Puzzle Game

Understanding sprite variables and functions

Setting up the puzzle game

Aligning the pieces of the puzzle game to a grid

Understanding and utilizing randomization

Checking pieces

Running it all together


So How Do I Play? – Adding Player Interaction

Designing player interaction

Creating resources to integrate mouse input into the puzzle game

Updating organization with scr_reorganize_board

Integrating keyboard input


Juicy Feedback – Aural and Visual Effects

Introducing alarms

Hiding the pin drop – adding audio

Creating sound resources

Visualizing effects with particles

Integrating particles


Solving the Puzzle – Finishing Touches to the Puzzle Game

Drawing and graphical user interface

Gathering resources for creating the main menu

Scripting obj_main_menu

Changing obj_grid_manager

Integrating score and time


Finite State Machines – Starting the 2D Platformer

Introducing finite state machines

Gathering resources for the platformer

Defining Vlad's state constants

Starting Vlad's events and scripts – walking


It's in the Name – Platforms and Collisions

Collision – a crash course

Gathering resources to build platforms

Populating the room

Working with Collision events

Moving platforms with paths

Integrating the moving platforms

Preventing Vlad from leaving

Knowing the design ahead of time (when possible)


Setting the Stage – Views, Backgrounds, and Tiles

Expanding the room – views

Adjusting view parameters

Preparing the game for obj_camera

Setting the environment – backgrounds

Introducing tiles


Breaking Vlad – Pickups, Hazards, and Enemies

Tracking health with Draw and Draw GUI

Working with pickups

Dying from hazards

Fighting the player with enemies


GOAL – Timelines and Feedback Review


Introducing timelines

Gathering resources for integrating the timeline

Creating and applying the timeline

Reviewing polish, feedback, and juiciness

Providing feedback when Vlad is damaged

Extending the enemy death sequence


In closing...