Introduction: Visual Novel Maker Tutorial Using Ren’Py

Have you ever played a visual novel, choose your own adventure game, dating simulator, or another similar type of game, and thought about making one yourself? Were you discouraged, because you have never coded before or made a game before? Then this tutorial will help you create your very own game!

What is Ren'Py?

  • A tool to help users build Visual Novel, RPG, Dating Sims, and other 2D Games.
  • Ren'py uses powerful scripting languages to help deliver fantastic game abilities with Python and PyGame.
  • Completely free and open source with cross-platform accessibility.
  • Ren'py is NOT a visual tool, if you are looking for a visual tool, look into Novelty or Twine.

What is Python?

Python is a scripting language used to increase readability for coders with fewer syntax requirements.

What will this Tutorial cover?

  • How to get started with the pre-built tutorials.
  • How to start a basic game by introducing commands.
  • How to finalize and share your creation.

Who will best benefit from this tutorial?

  • Individuals looking to produce a game with little to no coding experience.
  • Coders with interest in learning more about python.

Step 1: Download Ren'py

  1. Make a folder on your desktop to extract the program into.
  2. Begin by downloading the software from Ren’Py directly.
  3. Follow the installation instructions exactly as listed on the Ren'Py WebPage.

Step 2: Start Tutorial

  1. Click on the startup panel the Tutorial in the top left-hand corner.
  2. Click launch project.
  3. Play through the game tutorial to introduce yourself to the software mechanics.
  4. Be sure to read through all of the game informational directory panels.

Step 3: Initialize Game Settings

  1. Go back to the home page directory panel and click Create New Project.
  2. Select your project directory location, or where you will be saving all of your game files onto your computer to reopen later.
    1. I recommend creating a new folder on your desktop for easy accessibility first.
    2. Then select your directory on where you want your game to rest in.
      1. You can always change your directory and other settings under preferences.
  3. Name your Project.
  4. Next set up your text editor.
    1. Ren’Py recommends Editra, their own personal text editor. In this tutorial, I will also show you how to set up another text editor of your choice. I am using sublime, but other editors which use .rpy files can be used as well.
      1. Go to the Preferences page.
      2. Under “Text Editor:, you will have a choice between Editra recommended by Ren’py, system editor, or jEdit.
        1. I recommend using Sublime for your system editor because .rpy files are compatible and the interface is much more easy to follow than Editra for beginners.
  5. After choosing your editor, begin the initial game setup including GUI interface and screen resolution.
  6. Next choose your GUI interface,or graphical user interface.

  7. Later on, you can directly modify the gui.rpy file if you would like to furtherly customize the look and color scheme of your game display.
  8. Choose the highlighted resolution.

  9. Later you can change the resolution under the Preferences menu.

Step 4: Coding Your Game

Now that you have your basic project file setup, it is time to actually begin adding substances into your game.

Begin by opening all of your text files from the link on the startup page under your project file name. Depending on which text editor you selected in preferences, the text editor will pop up in a separate window and display all of the files, including script.rpy, options.rpy, gui.rpy, and screens.rpy.I recommend Simple Game Documentation to further assist in formatting the initial game set up like the above images.

Scripting Initial Files

  1. Open the script.rpy file.
    1. This is where all of your game’s code will go including dialogue, images, sound, and decisions.
    2. First, I will discuss the outline code laid out in the initial script.rpy file to help you understand what everything does and where everything goes.
      1. Under the line 3 and 4 in the code where it says # Declare characters used by this game. You will add any files of images here from your computer.
      2. To declare the image, type image, the type of image,(such as character or background), and the name of the image equal to an image from your computer as a .jpeg file or .png file. See Example 1 and Example 2 below.
      3. You must create these here so that you game no matter where can use these images many times.
      4. Under the comment that originally stated # Declare characters used by this game.

      5. You will define your character. The code command called define seen in Example 3 defines your character in the game and allows you to assign the character a text color.

Example 1: image bg someimage = "someimage.png"
Example 2: image character someimage = "someimage.peg"
Example 3: define a = Character ('CharacterName', color = "#rgbvalue")


    1. Next, to start any game in Ren’py, you need to use label start: to tell the program that you want to have the actual gameplay begin here. From there you can set up your scenery using commands found under Documentation such as Example 4 below.
    2. To add text to your game you can do one of two things.
      1. Place dialogue within double quotes as seen in Example 5.
      2. Assign a character to the words in double quotes as seen below in Example 6.
    3. Creating a decision tree to change your storyline, incorporates your dialogue with commands such as menu, jump, and label. See Example 7.
    4. To end your game, type return at the very end of your script.rpy file. See example 8.
    Example 4:play music "musicfromcomputer.ogg",scene bg someimage with fade,show character variable
    Example 5: "Write your opening dialogue."
    Example 6: a "Write a's dialogue." // This writes dialogu for defined character.
    Example 7
    	"Dialogue or question": 
    	jump route 
    	"Second dialogue or question etc.":
    label route:
    Example 8: return

      The process above is relatively simple once you learn the commands and highly customizable once you are comfortable with the program and the language. Feel free to look into the documentation and change the screens.rpy, options.rpy, and gui.rpy files. The online Documentation goes into more depth on how to get started changing those and is very useful in case you become stuck on remembering which command does what.

      To furtherly customize your game follow these links to gain more information about how to actually code the game.

      1. Python and Ren'Py Language dictionary for beginners
      2. GUI (Graphical User Interface) or what the game visually looks like to the player Documentation
      3. Other fun add-ons such as adding a music playlist, an image gallery, or image replays to enhance the game design can be found here
      4. Finally other customizing options such as how large font displays can be found here.

      Step 5: Releasing Your Game

      1. To end your game, update the Ren’py launcher.
      2. Then check script with lint to search for syntax errors found on the startup page.
      3. Build Distributions will archive your files into an accessible folder you can upload onto a web page.
        1. The essential code needed to create the game on the platform of your choice is made directly by Ren'py. For more information, visit the documentation build page on Ren'Py.
      4. Next, run beta tests by having friends and family play the game to see if there are any mistakes in the dialogue.
      5. Lastly, release your game on your own personal website or onto to let your game reach many visual novel enthusiasts.

      You have now created your first visual novel game! Congratulations!