Question: How do you make the camera follow the player in GameMaker?


In GameMaker Studio, to have the camera follow a player character, you typically need to set up a view and link it to the player. You can accomplish this by adjusting the view properties either through the Room Editor or using GML (GameMaker Language) code.

Here's a simple step-by-step process on how to do this:

  1. Create an Object for the Player You should already have an object for the player that has movement code applied to it.

  2. Configure the Room Open the room where your game will take place and go to the views tab.

    • Enable the use of views if it's not already enabled.
    • Enable the view that you want to use to follow the player.
    • Set the view size (width and height) to the size of the window or viewport you want on the screen.
  3. Link the Camera to the Player Now, in the same view settings:

    • Set the Object following field to the player object.
    • Adjust the Hbor and Vbor properties which stand for horizontal and vertical border. This determines how close to the edge of the view the player needs to be before the camera starts following.
  4. Code Example for Advanced Control If you need more control over the camera than what the Room Editor offers, you can manipulate the view directly with GML. Here's an example that would typically be run in the Step event of an object that controls the camera:

    // Ensure the player object exists before trying to access its coordinates if (instance_exists(oPlayer)) { var player_x = oPlayer.x; var player_y = oPlayer.y; // Define the view in the room you want to control var view_id = 0; // Calculate the new camera position based on the player's position var new_view_x = player_x - view_wview[view_id] / 2; var new_view_y = player_y - view_hview[view_id] / 2; // Update the camera view position camera_set_view_pos(view_camera[view_id], new_view_x, new_view_y); }

Remember to replace oPlayer with the actual name of your player object. In the above script, we added a check to ensure the player object exists before accessing its properties, which prevents runtime errors. We then find the center position for the view based on the player's current location, setting the camera to center on the player each frame.

It is important to note that as of GameMaker Studio 2, there are new functions for camera manipulation, such as camera_set_view_pos, which allows for smooth camera movement and much more sophisticated control.

Make sure to check the official GameMaker documentation for the version you are using, as there may be differences in functions and best practices between versions.

Was this content helpful?

White Paper

Free System Design on AWS E-Book

Download this early release of O'Reilly's latest cloud infrastructure e-book: System Design on AWS.

Free System Design on AWS E-Book
Start building today

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.