General rule of thumb:
Avoid learning from any game that starts with something that looks like:
Python:
init:
$ myvariable1 = 0
$ myvariable2 = 0
$ myvariable3 = 0
$ myvariable4 = 0
$ li1_love = 0
$ li1_hate = 0
$ li1_corruption = 0
$ li2_love = 0
$ li2_hate = 0
$ li2_corruption = 0
$ li3_love = 0
$ li3_hate = 0
$ li3_corruption = 0
-or-
Python:
init python:
myvariable1 = 0
myvariable2 = 0
myvariable3 = 0
myvariable4 = 0
li1_love = 0
li1_hate = 0
li1_corruption = 0
li2_love = 0
li2_hate = 0
li2_corruption = 0
li3_love = 0
li3_hate = 0
li3_corruption = 0
Look for games that would code it like:
Python:
default myvariable1 = 0
default myvariable2 = 0
default myvariable3 = 0
default myvariable4 = 0
default li1_love = 0
default li1_hate = 0
default li1_corruption = 0
default li2_love = 0
default li2_hate = 0
default li2_corruption = 0
default li3_love = 0
default li3_hate = 0
default li3_corruption = 0
It's a tiny thing, but to my mind it is a good way of spotting games written by those developers who just copy/paste code from some other game without really understanding WHY things are coded like they are.
As I understand it,
default
was added as a solution to developers who didn't really understand when variables would and wouldn't be included in the save files. Developers would "fix" something in an earlier release and break their entire game. It's one of the reasons why you'd see "This version is not compatible with saves from version x.y and older".
This thing is, by that point - there were a lot of big title games already out there, using the "old" style of coding variables. And because those games were successful (although not very well written in some cases), people would "borrow" code from them or at least try to use them to understand what they should be doing. It was the blind leading the blind.
Anyway, whilst
default
doesn't guarantee a well written or structured game, it does at least show someone understood one of the basics of writing RenPy code.