Hello there! Here's the in-depth documentation for the Potato source code. Hope it can be helpful in your hacking and patching endeavours!
This game consists of Worlds. Each World is a specific part of the game. The intro screen is a World, the in-game screen is another World, and so on. Each World is self-contained. It has its logic, its way to treat input, its way to render to the screen.
Worlds can have a Scene. A Scene is nothing more than a scene graph that have Entities inside it. When a Scene is rendered, all the Entities inside will be shown off in the screen. Worlds can also have a Controller. This Controller may represent a physical controller or a virtual one. Keyboard, mouse and control pads are examples of a physical controller. A NetController is an example of a virtual controller.
Entities can be of many types. The most common Entity is the ModelEntity. This Entity is of the kind that is rendered to the screen. ModelEntities can be further divided. A PlayerEntity is an example of a ModelEntity subclass.
I think this covers the basics of the engine inner workings.
Setting up Development
First of all, you'll need git, or you can use bitbucket's feature of downloading a tar/zip file with a revision snapshot.
To clone this project you can use the following command:
git clone https://N0_Named_Guy@bitbucket.org/N0_Named_Guy/potato.git
Supported development environments
To set a development environment up should use premake4 (available for Windows, Linux and OSX). Get it from http://industriousone.com/premake. Here are some in-depth tutorials: