Using custom Game Launchers with RPG Maker

customGameLauncher1 In this article I show how a custom launcher could be created for RPG Maker, with a very simple DRM implementation that forces users to use your launcher.

Background

Game launchers are basically applications that players will (hopefully) use to start your game. They are used in a variety of ways before the game is launched, such as

  • performing version update checks
  • performing data integrity checks
  • providing a way to start the game
  • DRM Some game executables do not run unless it is launched by the launcher, for example.

A simple launcher

Since all we are doing is executing an application (namely, game.exe), we can use any programming language that we want to build our launcher. I have chosen to use Java. This is one of the simplest launchers you can possibly have:

public class RMLauncher {
    public static void main(String[] args) throws Exception {
        String[] cmds = {"Game.exe", "CUSTOM_LAUNCHER"};
        Runtime.getRuntime().exec(cmds).waitFor();
    }
}

To run the launcher, simply place it in the same folder as Game.exe and then run the launcher. This assumes you have Java installed. Note a few things:

  • The launcher will continue to wait until the game closes
  • The launcher executes the game application with some command-line arguments The launcher doesn’t actually have to wait; if you want to have your launcher do something in the background, however, that might be useful.

DRM

With a game launcher From above, we see that we can pass in command-line arguments to affect some start-up logic. In particular, we can implement a simple DRM using this technique. We use a script called

Command-line Args Loader which will allow us to actually read command-line arguments (by default, RM doesn’t provide them to you). Now we introduce an extra little check in our scripts

if !ARGV.include?("CUSTOM_LAUNCHER")
  msgbox("This game can only be launched through the game launcher!")
  exit
end

What this does is check if you have the string “CUSTOM_LAUNCHER” in the arguments, and if it is not there, then it will inform the user why the game does not work and then close the game. In this case, it simply tells the user to use the game launcher.

Working Demo

You can download a demo version of my game launcher project here. Simply unpack it and try to run Game.exe, and then run the launcher. You will need to have Java installed on your system but it usually is.

Moving forward

I have discussed how a game launcher can be written, and how command-line arguments can be passed to the game via the launcher, and finally how those arguments can be used by the game. I have also shown how you can require your game launcher to be used to start your game, and consequently apply DRM to the launcher itself (rather than the game). Now you should have all of the things necessary to build your own beautiful game launchers.

Spread the Word

If you liked the post and feel that others could benefit from it, consider tweeting it or sharing it on whichever social media channels that you use. You can also follow @HimeWorks on Twitter or like my Facebook page to get the latest updates or suggest topics that you would like to read about.

You may also like...

26 Responses

  1. pr0tax says:

    I use Game Launcher Creator V3 for my custom RPG Maker game launcher. You can pass the command line argument through the ‘Launch Button’. Works a charm. Also features a built-in game update system…

  2. Tyler says:

    What do I save the file as when I put the code in Notepad++?? I have it saved as a .java but says that the app cant run on this device but the demo version is A-Okay.

  3. Tadeu says:

    I’ve done a simple game laucher to change the windows resolution and open the game here: https://github.com/Tudumanu/fullscreenAPP

  4. Daisy says:

    What about Check version ?? how i can make it check the version ? if there is an update how i can let it say download the latest update…

    • Hime says:

      This is just a proof of concept on how to launch RPG Maker with a custom launcher written as an external application. If you want to check for updates and download them you would need to write the code to perform HTTP requests to an API and then depending on the response, proceed with the download and update process.

  5. Matt says:

    The demo link is dead. Could you repost it please? I’m really trying to get this kind of thing to work for my game.

  6. Brandos says:

    Is it possible to have an .exe version of this instead of of a jar. file?

Leave a Reply

Your email address will not be published. Required fields are marked *