Today a serious gaming event happened, which will most likely ruin Valve, and push Half Life 2 back again. The upcoming Half-Life 2 source code was leaked, revealing Half Life 2's secrets and weaknesses to the public and their nemesis companies. There's a really great article on halflife2.net about it, and I'd like to share it:
I've seen a lot of confusion about what the Half-life 2 source is and isn't, whether it can be compiled into a working copy of the game or not, and whether this is bad or not for Valve.
I am a small time games developer myself and for the benefit of those in the community not into software programming or knowledgeable in games development, I thought I'd try and give a brief explanation. Apologies to the experts as some simplifications have been made for general consumption.
1) A game like Half-life 2 consists of two main elements, resources and programming code.
The resources consist mostly of all the non-logic/instruction based elements of a game, that is the art, textures, sound, story script, maps etc. Things like the model and textures for the headcrab is typical of this. This is the largest part of a game in size, for a game like Half-life 2 typically over a gigabyte of the game will be resources. These resources cannot do anything by themselves, and if you have the right software, can be viewed/played as when making a mod. These are like the bricks and wood for the "house" Valve was building.
The program code consists of the logic and instructions as to how the game will function. That is to say, the code directs the computer in how to utilize the resources mentioned above, in the correct manner to allow you to play a game. Examples of what would be included in the program code are the Source engine, the Havoc engine for physics, artificial intelligence routines, game launcher code etc. Using the analogy above with the headcrab, the corresponding program code would be the animation rules for the headcrab, its artificial intelligence behavior, its stats etc.
This is like the architectural plan of the "house" Valve was building.
2) To play the game (as you will when it is released) you need the program code and the resources. What has been leaked is the program code, which amounted to around 160 megabytes of text (though this did include some non half life 2 related code), which is a SERIOUS amount of code. The resources for half life 2 are not included, and they would have amounted to at least a gigabyte.
When programmers write code, they write it in so called high level language like C++. A high level language is one that is easy to understand to humans, so that editing it is easy during development. This is known as the source code, and is what Valve will be working on right until half life 2 goes Gold. This is what has been leaked to the public. The source code has many lines of C++ code, which you will have trouble understanding if you do not know C++ (though it is very easy to learn!), and some comments that explain what the code is doing.
A computer is not designed to directly execute C++ code, which has been designed for a human to read. Instead it executes machine code, a far lower level language which is very hard for a human to understand. Coding in machine code would be a nightmare for a programmer and so they prefer to use C++ and other high level languages. Now for the computer to understand Valve's C++ source code, it must be converted to machine code. This is what a COMPILER does. Valve will run a compiler on the source code every so often, creating a bunch of executable files (machine code based) that can then be used to run the game and test the changes made to the source code. This is what you get when you buy a game: Resources and the compiled source code to run them.
As such, the fact that the source code is in the public domain does not mean that anyone can compile a working game out of it, as all the resources are missing as well as a few other code elements. So this source code leak isn't a big deal for Valve right? Why all the worry?
3) A source code leak is a HUGE deal. Source code is only released for obsolete games (like Quake, Quake 2 etc) once the programming secrets they contained are deemed out of date and no longer valuable to rival developers.
Half-life 2 is NOT an obsolete game. Is a cutting edge game incorporating many features that have never been seen before in a game, and more importantly is HAS NOT BEEN RELEASED. What does this mean for Valve?
It means all the work behind the new features, the Source engine, the revolutionary AI etc is now exposed for anyone in the public and rivals to see, learn from, and God forbid, copy. Using the house analogy above, it means the new revolutionary solar powered house you were building has had its building plans stolen before you've built it. Now everyone knows how you solved all those problems which prevented people from building revolutionary solar powered houses.
As an example, the Strider as seen in the released videos, is an amazingly novel creature to see in a computer game. It is seriously big, yet maneuvers around and interacts with the landscape in a convincing and intelligent manner. Getting a Strider to function like this will have taken Valve months of painstaking AI and animation work. Rival developers would have had to guess how on earth Valve pulled it off. Now they can simply look in the equivalent of the Strider AI source code file, and it will all be there, conveniently commented and explained by the Valve programmers for their own internal private understanding.
The source code for half life 2 is the result of 5 years of hard work by some of the best programmers in the games industry. No one would have seen it (bar engines licensees) for 5 or 6 years at least, upon which it might have been released to the public (like Id software with Quake).
The source code is not to be confused with the SDK as some people have. The SDK for half life 2 which will be released, is its Software Development Kit. This allows modders and fans to create games and mods using Half-life 2 technology, but does not tell them how the technology works. Unfortunately this is exactly what the leaked source code tells people.
So in short , this means for Valve:
All its clever routines and algorithms for making a revolutionary game like half life 2 tick, are available to be understood by anyone who knows C++, including game development rivals, hackers making cheats and exploits and the general public.
More worryingly the source code seems to contain a lot of source code from partner software developers that Valve had licensed to use in Half- life 2, such as the Havoc physics engine, and that Valve is contract bound to keep protected and confidential. These leaks enable people to potentially rip off these software partners too, and hence opens Valve to be sued.
Finally the internal workings of Half-life 2 have been so seriously compromised that I will be amazed if we see it released before 1st Quarter 2004. The potential for hacking exploits is enormous; it is like printing the blueprint to your high security safe in the local newspaper before having it installed in your home. SERIOUS work is needed now to rework the source code to protect it from future attacks on release. Let us not even mention that it seems Steam has been seriously compromised as well in the leaked source, as that had enough problems of its own to be getting on with without this.
A leak of the source code of a revolutionary highly anticipated game like Half-life 2, close to release is, as far as I know, unprecedented. My deepest sympathy as a games developer goes to the Valve crew and I wish them every success in catching the perpetrators of this crime.
Thanks for reading!
|
|