Point and Click Engine for Ren'Py

Ren'Py Point and Click Engine

The Point and Click Engine for Ren'Py was originally written during My First Game Jam Summer 2017. A proper release is coming soon.

Ren'Py Point and Click Engine

This engine is meant to be easy to use for people who are already familiar with Ren'Py basics. A point and click sequence is instantiated by declaring a Room object in an init block and passing in a list of objects the room contains. To call the point in click sequence in game, set the global variable 'room' to be the room you would like to enter, and then jump to the label "room_loop". From there all objects interactions are defined via vanilla Ren'Py labels. Label names generally match the format "__", so if you'd like to define the players reaction to looking at an object named glass in the room named kitchen you would define a label called "kitchen_glass_look" and the engine would automatically associate it with the correct object. The engine also includes an inventory system and a 'use' verb for using inventory objects in the current scene and mouseover descriptions.

Basic usage of the engine is very simple, but it's also quite flexible. The engine automatically pulls in assets that match the engine's file naming rules, similar to Ren'Pys automatic image loading, but an image can also be explicitly passed for an object in cases where one might want to change the state of an object or take advantage of Ren'Py's ATL. Though there is a general format for automatically looking up labels to define a reaction to an action, they can also be explicitly defined in cases where you would like to reuse labels, or even be set at a room level (for example, you can set the room level reaction for a room with the lights off, so the player will always have the response "It's too dark to look at anything." if they try to look at any object at the room, and once the lights are turned on the room level reaction can be removed and the engine will return to pulling up individual responses for all the objects. Almost all features in the engine have a logical default that can be configured or overwritten easily.

Since the engine was first written for a jam, the code still needs some clean up before a release can happen. I would also like to add some features like combining inventory objects with other inventory objects (versus just with room objects).

How to play: left-click to 'look', right-click to 'interact', interact with items in your inventory to hold them, click on objects in the room while holding items to use them together.

A short demo engine can be downloaded here.