Skip to content
A client-side engine for point-and-click games using JavaScript and other standard web technologies.
JavaScript HTML CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



pncgame.js is a simple, client-side, point-and-click game engine using standard web technologies. For a brief demonstration, please visit using a browser that supports JavaScript modules (i.e. not IE).

See testgame/index.html for an example of how to instantiate a game in a webpage. A game essentially is a graph where the nodes are "locations" with corresponding images, and edges are "events" the player can initiate by clicking within the game window. An event will only be available if "prerequisites" are met, and executing an event will have "consequences." A terminal or goal state is any location with no available events. See the wiki for a summary of currently supported prerequisites and consequences.

Note that the JavaScript uses features, such as the Array.filter method, that might not be available in older browsers. I do not intend to add legacy support.

Game designers specify the game world with an XML file that validates against pncgame.xsd. If you're interested in contributing to this project, or if you're searching for something to host in your own Github repository, some sort of level editor that generates this XML file from graphical or CSV input would be very useful.

If you create an interesting game, let me know! I will link to it.

13 September 2015

Last updated: 12 July 2019

Running the Test Game Locally With Python3

In the top level directory, "pncgame", run "python3 -m http.server", and open You will need to grab the images and audio from the live demo, or replace it with your own resources.

You can’t perform that action at this time.