Book Image

GameMaker Programming By Example

By : Brian Christian, Steven Isaacs
Book Image

GameMaker Programming By Example

By: Brian Christian, Steven Isaacs

Overview of this book

This book is excellent resource for developers with any level of experience of GameMaker. At the start, we’ll provide an overview of the basic use of GameMaker: Studio, and show you how to set up a basic game where you handle input and collisions in a top-down perspective game. We continue on to showcase its more advanced features via six different example projects. The first example game demonstrates platforming with file I/O, followed by animation, views, and multiplayer networking. The next game illustrates AI and particle systems, while the final one will get you started with the built-in Box2D physics engine. By the end of this book, you have mastered lots of powerful techniques that can be utilized in various 2D games.
Table of Contents (16 chapters)

Index

A

  • ASCIITable
    • URL / Putting in a scoring system
  • Aseprite
    • about / Sprite animation
    • URL / Sprite animation
  • aspect ratio / The sprite
  • Asynchronous Networking event
    • about / Our Asynchronous Networking event
    • connection, handling / Connection
    • disconnection, handling / Disconnection
    • data, handling / Handling data, Our data handling script

B

  • backgrounds / Backgrounds
  • basic collision checking / Walls
  • Boss AI
    • programming / Programming a Boss AI
  • buffer
    • about / Networking terminology

C

  • client
    • in client/server system / The client in your client/server system
  • client/server multiplayer networking
    • about / Client/server multiplayer networking
    • IP address, printing of server on screen / Printing the server's IP address and port on a screen
    • port, printing of server on screen / Printing the server's IP address and port on a screen
    • actual server, creating / Creating the actual server
  • client/server networking
    • about / Networking terminology
  • collision mask / Walls
  • compile-time errors
    • about / Compile-time errors
  • constants
    • about / Unexplained resources
  • controller object / Damaging the player
  • customizable controls
    • about / Customizable controls
    • control configurations, saving / Saving control configurations

D

  • 2D arrays
    • using, in programming / 2D arrays
  • datagram
    • about / Networking terminology
  • data structure (DS) / Textboxes
  • debugger
    • about / The GameMaker: Studio interface
  • debugging
    • about / Debugging
  • debugging, features
    • compile-time errors / Compile-time errors
    • runtime errors / Runtime errors
    • debugger / The GameMaker: Studio debugger
    • functions / Debugging functions
  • debugging console engine
    • reference link / Debugging
  • debugging functions
    • about / Debugging functions
  • depth / Coordinate planes in GameMaker
  • documentation, GameMaker* Studio
    • about / GameMaker: Studio documentation
    • reference link / GameMaker: Studio documentation

E

  • endless platformer
    • creating / Creating an endless platformer
    • player, bouncing / Bouncing and movement
    • player movement / Bouncing and movement
    • death, incorporating into game / Death and enemies
    • enemies, incorporating into game / Death and enemies
    • random spawning / Random spawning
    • menus, implementing / Menus and textboxes, Menus
    • textboxes, implementing / Textboxes
  • enemies, Escape the Dungeon game
    • about / Enemies
    • moving / Making your enemies move
    • player, damaging / Damaging the player
  • Escape the Dungeon game
    • creating / Creating your Escape the Dungeon game
    • playable character / The playable character
    • walls / Walls
    • enemies / Enemies
    • working on player's shooting mechanics / Making the player shoot
    • working on enemy's shooting mechanics / Making the enemies shoot
    • keys and locks, advancing to next room / Keys and locks and advancing to the next room
  • Escape the Dungeon game, in GML
    • about / Remaking Escape the Dungeon in the GML
    • sprites, remaking / Remaking the sprites
    • player object, remaking / Remaking the player object
    • events / Understanding the four events
    • player object, coding / Starting to code your player object
    • player, moving / Making the player move
    • subimage, modifying / Changing the subimage
    • collisions / Collisions
    • enemies, coding / Coding the enemies
    • random seeds, creating / Random seeds
    • health system / Health and lives system
    • lives system / Health and lives system
    • health variables, displaying / Displaying health and lives
    • lives variables, displaying / Displaying health and lives
    • invincibility / Invincibility
    • shooting capabilities / Shooting
    • sounds / Sounds
    • key objects, creating / Keys and locks
    • lock objects, creating / Keys and locks
    • scripts / Scripts
  • example project
    • about / An example project
    • naming convention / Naming convention – resource prefixes
    • sprite, drawing / Drawing the sprite
    • object, creating / Creating an object
    • coordinate planes / Coordinate planes in GameMaker
    • room, creating / Creating a room
    • game, testing / Testing your game
  • explosion particle
    • creating / Particles
  • export modules
    • about / Export modules

G

  • GameMaker
    • resources / Unexplained resources
  • GameMaker* Player
    • about / Choosing your version
  • GameMaker* Studio
    • version, selecting / Choosing your version
    • reference link, for licenses / Choosing your version
    • interface / The GameMaker: Studio interface
    • documentation / GameMaker: Studio documentation
  • GameMaker* Studio, for Microsoft Windows
    • download link / Choosing your version
  • GameMaker* Studio debugger
    • about / The GameMaker: Studio debugger
  • GameMaker community
    • reference link / Helpful information on GameMaker
  • GameMaker forums
    • reference link / Quirks of the GameMaker Language
  • GameMaker Language
    • quirks / Quirks of the GameMaker Language
  • GameMaker Marketplace
    • reference link / Quirks of the GameMaker Language

H

  • highscore
    • saving / Saving and loading a highscore
    • loading / Saving and loading a highscore

I

  • INI (initialization)
    • about / Saving and loading a highscore
  • INI file encryption
    • about / INI file encryption
  • interface, GameMaker* Studio
    • about / The GameMaker: Studio interface
  • Internet Assigned Numbers Authority (IANA)
    • about / Printing the server's IP address and port on a screen
  • IP address
    • about / Networking terminology
  • IP address, of server
    • printing, on screen / Printing the server's IP address and port on a screen

J

  • JoyToKey
    • URL / Integrating Xbox gamepad support

K

  • key-related events
    • differences / The object
  • keyboard ghosting
    • about / Shooting
    • reference link / Shooting

L

  • legacy gamepad support
    • about / Legacy gamepad support
  • licenses, GameMaker* Studio
    • reference link / Choosing your version

M

  • macros
    • about / Unexplained resources
  • modern gamepad support
    • about / Modern gamepad support
  • movement
    • programming / Programming the movement

N

  • networking terminology
    • buffer / Networking terminology
    • packet / Networking terminology
    • datagram / Networking terminology
    • Transmission Control Protocol (TCP) / Networking terminology
    • User Datagram Protocol (UDP) / Networking terminology
    • socket / Networking terminology
    • IP address / Networking terminology
    • port / Networking terminology
    • client/server networking / Networking terminology

O

  • OpenGL ES Shading Language
    • about / Unexplained resources

P

  • packet
    • about / Networking terminology
  • particle emitter
    • setting up / Particles
  • particles
    • about / Particles
    • creating / Particles
  • physics engine, in regular game
    • about / The physics engine in a regular game
  • physics game
    • about / A physics game
  • playable character, Escape the Dungeon game
    • about / The playable character
    • sprite, creating / The sprite
    • object / The object
  • port
    • about / Networking terminology
  • port, of server
    • printing, on screen / Printing the server's IP address and port on a screen
  • precise collision checking / Walls

R

  • random spawning
    • about / Random spawning
  • resources, GameMaker
    • shaders / Unexplained resources
    • timelines / Unexplained resources
    • macros / Unexplained resources
  • room speed / Creating a room
  • runtime errors
    • about / Runtime errors

S

  • scoring system
    • about / Putting in a scoring system
    • highscore, saving / Saving and loading a highscore
    • highscore, loading / Saving and loading a highscore
  • scrolling platformer
    • making scroll / Making your scrolling platformer scroll
  • scrolling shooter game
    • main ship, creating / Creating the main ship
    • enemies, creating / Creating the enemies
    • parenting, in objects / Parenting in objects
    • random enemy spawning / Random enemy spawning
    • Boss AI, programming / Programming a Boss AI
  • shaders
    • about / Unexplained resources
  • socket
    • about / Networking terminology
  • sounds / Sounds
  • sprite
    • creating / The sprite
  • spritefont
    • about / Putting in a scoring system
  • sprites
    • animating / Sprite animation
  • spritesheet
    • importing / Spritesheet importing
  • subimage / Drawing the sprite

T

  • timelines
    • about / Unexplained resources
  • Transmission Control Protocol (TCP)
    • about / Networking terminology

U

  • User Datagram Protocol (UDP)
    • about / Networking terminology

V

  • version, GameMaker* Studio
    • selecting / Choosing your version
  • virtual key / Making the player move

W

  • walls, Escape the Dungeon game
    • about / Walls
  • Wireshark
    • URL / The client in your client/server system

X

  • Xbox gamepad support
    • integrating / Integrating Xbox gamepad support
    • legacy gamepad support / Legacy gamepad support
    • modern gamepad support / Modern gamepad support
  • Xpadder
    • URL / Integrating Xbox gamepad support

Y

  • YoYo Games
    • reference link, for guide / Testing your game

Z

  • zero-based indexing / Drawing the sprite