Update System
The Mana World plans to be an constantly expanding game, with new features, maps and other game media being added all the time. This constant addition requires some way to distribute new material. The Mana World up to this point has been using a monthly release cycle to update the game, but this distribution method suffers in the following ways:
- Data redundancy - This is a major concern for those who have slower connections to the Internet.
- Releases aren't frequent enough - Players want new material as fast as they can get it. Players like a fast updated, dynamically changing game world in which they can immerse themselves - any stagnation can lead to player loss.
- Bad releases hard to update - Once a package has been released, soon after its release some major problems may be found, which may require immediate attention. The old package must then be removed and replaced with a new fixed package, by this time many people would have downloaded it and would probably not know about the new updated release. This is a major problem in itself.
The Mana World wishes to address this by using an in-built update system which will automatically download the latest game media. By doing this, the second and third points noted above are eliminated. This update system should provide the following features:
- Smart updating - the updater should be able to find files which need to be updated and update them, without trying to update files which are already up to date.
- Cumulative patches (Optional)
- Media updates - should be able to fetch new and updated game media.
- Executable updates - should be able to update the binary executables appropriately.
Update Format
The patch format must be easy to use and flexible, and should support the required features mentioned above.
- The format will be added here.
Update Distribution
Updates must be distributed fast and effectively, providing a decent throughput even when the update server is under a high load. The Mana World development team has decided that the Bit Torrent protocol will be utilised for update distribution. BitTorrent is a distributed peer-to-peer protocol which utilises the bandwidth of all users. For more information about Bit Torrent, see the Bit Torrent Introduction.
To easily utilize to the Bit Torrent protocol, one of the following libraries can be used:
- libbt - C
- libtorrent - C++