Как устроено обновление приложений в Google Play / Steam / Gog? Ведь размер приложений большой, а размер приходящих обновлений относительно маленький, т. к. обновляются только изменённые файлы относительно имеющейся версии приложения. Есть ли примеры на c# или python?
На C# есть например Squirrel и Autoupdater.NET. Как сделать дельта-обновление там гайды есть.
Как правило это основано на bdiff — нахождении разницы между двумя бинарными файлами и накатывании этой разницы на старую версию.
Приложение может быть разбито на несколько dll Одна часть (например) - отвечает за интерфейс, другая - за работу с файловой системой и т.д.
На С# я пользуюсь ClickOnce - им производится обновление только изменённых частей проекта.