Ren'Py is a free, 2D, and cross-platform engine that helps you make story-based games including visual novels and simulation games. It uses a scripting language based on Python.

Evropi says

9/10 - Agree Disagree

It doesn't support Python 3.x yet, but beyond that downside, it's absolute bliss to work with and produces outstanding results.