Game Development Reference
A complex system that works is invariably found to have evolved from a
simple system that worked… . A complex system designed from scratch
never works and cannot be patched up to make it work. You have to start
over with a working simple system.
John Gall, from Systemantics: How Systems Really Work and How They Fail
In the wonderful world of software development and deployment, products are
generally never released error-free. Even in the rare instance that a product is
rolled out without any internal bugs, issues appear from different hardware and
operating system configurations on the end user's computer. Whether the issues
are related to security vulnerabilities, application instability, or even a feature that
was not feasible to implement in an earlier version, software generally requires at
least a couple of revisions to keep the people using the software happy and inter-
ested in the product. This chapter will discuss one particular method of updating
older versions in a manner suitable for environments requiring a small memory or
hard drive footprint.
Deployment is a very important topic to address in software development. If a
product you have deployed requires an important update, how will the existing
people using your software receive it? The most popular medium for transferring
data is the Internet, and most auto-update engines utilize it to send new versions
to users. One problem with the Internet is that with such a wide demographic of
users, not everyone has a great connection speed and transfer rate.