Have you tried or considered using a source code management tool like Git? It's usable even purely offline and would let you commit major milestones, tag versions and roll back to them on demand.
The main issue would be that it's not disk-space efficient non-text/code files, but even inefficient would be better than multiple copies of a project.
For an amateur project, and what would be more space efficient, a basic Python/whatever script could do the same.
It would create a folder named as the current date, then copy all .rpy and .py files as it. For images it would need a bit more works and the help of an index file.
For each image, it get its MD5 hash ; more unique that a CRC32, and still faster than other hashes. Then it would looks on the index if an image at this name exist. If yes, and the MD5 is the same, it skip the image. Else it copy the image and update the index.
He would then end with an effective copy of its project, having both the previous code and previous images, but only the code (that need near to no space) would be effectively duplicated.
And to rebuilt the project from the backup, copy the "text files" from the last backup folder, and the images from all the backup folders, starting by the first one ; overwriting each time it's needed.
It's obviously not as advanced as a versioning system, but strong enough for a personal use. Versioning system being effectively needed only when you aren't the only one to works on the project.