4 ms·
I absolutely agree that improvements could be made to our patching system, so here are a few more details as to why we do things how we do them. 1) It is actua
by Negitivefrags 14y ago
I absolutely agree that improvements could be made to our patching system, so here are a few more details as to why we do things how we do them.
1) It is actually working right now. This is the biggest deal at a startup. It's good enough. We have lots of other features to work on that will give us higher bang for our buck.
2) We wanted to be able to use an "off the shelf" CDN for distribution. It's nice to be able to farm out parts of your infrastructure you don't want to deal with.
3) We don't want to have to deal with versions in the patching system. Our patching systems first use is right in our office. The same deployment infrastructure that deploys the game to production runs in our office with every commit from a programmer or artist. When someone runs the game client (or one of the in house tools) the patching system syncs up the files to the latest version.
For real production clients, there can be several versions between the last time someone ran the game client and the next time. It's easier conceptually to deal with.
4) The client is over 100,000 files. Each file is generally quite small which limits the damage of not using an actual diffing solution. The larger files like textures and audio don't diff very well anyway when artists make changes due to the nature of the data formats.
5) It was really fast to develop. It's just libcurl. Once again, we are a small startup so we have lots of things we need to be focusing on that are not our patching system.
All the files are checked against hashes after download so we can correct errors. This is especially important due to the surprisingly large number of buggy caching proxies that some users seem to have in front of them.
One day I would love to make the best possible patching system. Unfortunately it's just not as high on the list as so many of the other things we need to be doing!
- glomph 14y agoFrom a user perspective I wish you guys would switch to something better like bit torrent (at least offer an alternative torrent download). I almost gave up before playing the game when an interrupted download meant that I had to start again, and it is pretty frustrating not even maxing out my slow internet connection at peak times for patches. The fact that you don't have any kind of diffing solution seems like absoulte madness to me.
- Negitivefrags 14y agoYou don't have to start again. It's just that the progress bar starts from zero again. If you download 2GB of 4GB initially then start again, when you restart it will show 0% of 2GB to download. It's effectively a diffing system where the block size is on average the size of a file (about 42kb).