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.
Ren'py is one of the best engines for Python programming. The guides of the community have a HUGE content about how to do things.
It's one of the best engines for amateur developers.