Posted June 26, 2014
LynetteC: So automatic updates are the main positive of Steam?
There was a time in days gone by that update systems were actually written into the game by the developer instead of them relying on some 3rd party DRM/client to provide the service. Sure, you have to hiy the 'Check for Updates' button every now and again, but it's on your own terms snd at a time that's convenient to you.
There's only one thing more annoying than firing up a game for a quick blast and having to wait for updates to download and install because you don't have the choice of bypassing them - it's when the updates aren't even for the game, but the 3rd party client that it NEEDS to run!
Hehe, there was also a day when video games programmed graphics directly into video card memory and manipulated the video card registers directly, setting up video modes by programming them directly, the barrel shifter, instead of having and using video drivers, and programmed audio by directly programming every individual video card via bit banging their registers, manually setting up DMA transfers and interrupt service handling routines, did all of their own audio mixing without using drivers, loaded and decoded game graphics and audio files using their own hand written routines instead of off the shelf libraries supplied by the operating system, hardware vendors or some convenient 3rd party... ;) Hey... I'm just sayin... There was a time in days gone by that update systems were actually written into the game by the developer instead of them relying on some 3rd party DRM/client to provide the service. Sure, you have to hiy the 'Check for Updates' button every now and again, but it's on your own terms snd at a time that's convenient to you.
There's only one thing more annoying than firing up a game for a quick blast and having to wait for updates to download and install because you don't have the choice of bypassing them - it's when the updates aren't even for the game, but the 3rd party client that it NEEDS to run!
What happened? :)
Well, a strange thing happened! Everyone realized how convenient it would be if the operating system vendor provided hardware abstraction so that individual programs didn't have to know the intricate details of all of the hardware and program it directly by making drivers that took care of the low level bit banging, and system libraries that took care of providing a convenient API to software developers to do task oriented things and let the OS abstract it. Libraries were developed to handle other common functions that various software would want to do such as loading graphic image file formats, audio file formats, video file formats and decode them into buffers ready for applications to use them. This way applications no longer had to implement all of those functions themselves and re-invent the wheel because the functionality was provided either by the operating system or by some convenient 3rd party library.
Now we're over a decade in the future and more and more common things that all kinds of software needs to be able to do have been abstracted into common libraries and APIs so that every individual program doesn't have to reinvent the wheel and write the same boring code over and over again for things like multiplayer lobbies, achievement tracking, downloading and installing applications, updating them in an efficient manner using binary deltas, and numerous other functions.
It's not that programmers can't write code to do these things in their own programs, it is that every piece of code they write themselves takes time and human resources and costs money and makes the project that much longer to complete, and if there is an off the shelf solution provided by the OS or some other 3rd party that they can potentially utilize that solves a given set of problems for them which they no longer have to write from scratch themselves, then they can complete the project more quickly and with less human resources and less costs, and get the product to the customer that much sooner as well.
That is why developers want to use things like Direct3D or OpenGL instead of writing their own low level 3D API, or Steamworks for managing updates and other services it provides. It's a huge benefit to them and that's why more and more are choosing to use it. It isn't being lazy - it is being efficient, and for some developers it is the only way they can complete their projects in the first place as they may have very tight budgets and really be running things very tight to complete their game.
I used to write a fair bit of low level code back in the 90s doing much of what I describe above. From 2000-2006 I maintained video drivers and other graphics subsystem oriented software for a living. I also had to build and package quite a large amount of software and deal with a lot of complex issues and rush to meet deadlines. Believe me there is never ever enough time in a day/week/month to do what you'd really like to do to get a project out the door on time, within budget and with all features working and stable. :) Any developer reading this with any amount of experience developing any kind of software (games or otherwise) will attest to the fact that you rarely want to write your own code to do something if code exists already that you can legally reuse and it will save you a lot of time, effort, money and help complete your project on time. ;o)
It's definitely not being lazy, it's being efficient. I'd also say if people don't want efficient and they want developers to write all of that code themselves instead of using ready to use APIs, would they be willing to spend $100 for a game instead of $50? $30 instead of $15? I know I sure wouldn't, I'm too much of a cheapwad hehehe. :)
I find it always helps to know how things look from the other side of the monitor as we used to say at work, and that applies in both directions too I might add. It always gives another perspective worth considering while pondering things. ;o)
Anyhow, take care. :)