50 comments

[ 3.2 ms ] story [ 110 ms ] thread
It is always fantastic to see companies opening up older source code for the public to view. Seeing some of the interesting decisions the developers made to create such an iconic game is very interesting. I always massively geek out on these things.
How is releasing source code under a commercial license considered "opening it up"? All this stuff was already available to modders/third-party devs through the SDK program. The only news here is that they made it available on Github.
I am not a game developer, nor do I have access to the SDK program you speak of... It's considered opening it up because it means developers like myself who don't developer for these games can get a glimpse of what is going on under the hood without needing to register for any developer program.

Opening it up as in making it easier for the general public on Github to view. No need for the cynicism.

The sdk is available through steam if you have that installed. It also used to be available on their website and mirrored around the internet on sites like gamespy. There was never any need to register for a developer program or anything like that. It was always set up for teenagers to grab it and play around. The only thing that has changed is it now has a github presence.
Yeah, I thought "for the public to view" was very clear. I think you only wound up downvoted out of some OSS reactionism that skimmed by what you were actually saying.
Is this really a commercial license? Check the license text:

"You may, free of charge, download and use the SDK to develop a modified Valve game running on the Half-Life engine. You may distribute your modified Valve game in source and object code form, but only for free."

Sure, you can't make commercial products out of it, but you are allowed to re-distribute any modifications for free. This can be used by people who want to make free, open source games, for example.

http://opensource.org/osd

"1. Free Redistribution The license shall not restrict any party from selling..."

Yes, but if a license isn't open source as defined by OSD, it doesn't mean that it is automatically commercial. My claim is just that the additional restrictions imposed by Valve push the license into some gray area, between OS and commercial.
"Commercial" is commonly used to mean "not Open Source" or "not Free Software", and in that usage not being Open Source does mean that it is "commercial".

Properly speaking, "commercial" is an orthogonal concern to "Open Source" -- if software is sold by a merchant under a license, that license is commercial, whether or not the license is also an Open Source license.

You seem to want to create a new use of "commercial" where it on a continuum with "Open Source" but not merely the negation of "Open Source", such that there would be "Commercial" and then some poorly specified "gray area" and then "Open Source". I'm not sure that this is either a particularly good use of the term "commercial", nor a particularly useful concept regardless of the terminology. Non-Open Source or non-Free licenses always permit you to do something with the software (that's why they are "licenses").

Your definition (in the first line) would imply that closed-source freeware is commercial, I don't agree with that. I do agree that commercial is orthogonal to open source.

So my original point about the license not being properly commercial stands. I do agree with you that it is not really proper to claim that there is a spectrum between commercial and open source.

dragonwriter's not defining anything in his first line, he's pointing out a common misconception.

In reality, the 'opposite' of Open Source is proprietary. There is commercial Open Source (Red Hat), and proprietary software with source code available (Unreal SDK).

Then I agree with you both. Thanks for the clarification.
Neat! I wish more companies would do this after declaring their software deprecated.
(comment deleted)
They did this since the day they released the game, or shortly after. This isn't the source code of the engine, it's just the SDK that people use to make mods.
Think that guy who did the Doom/Quake/Duke Nukem source code reviews can do one on Half-Life now?
This is not the source code for Half-Life, nor is it the source code of GoldSrc, it's just the GoldSrc SDK.
This was new to me. http://fabiensanglard.net/duke3d/index.php What a great read combining code readability and game design.
An amazing bit of Duke V hidden in the code:

  Cmdr:   "Duke, we've got a lot of scared people down there.
           Some reports even claim that people are already
           slowly changing into aliens."
  Duke:   "No problem, my speciality is in croud control."
  Cmdr:   "Croud control, my ass!  Remember that incident
           during the war?  You created nuthin' but death and
           destruction."
  Duke:   "Not destruction, justice."
  Cmdr:   "I'll take no responsibility for your actions.  Your on
           your own!  Behave your self, damnit!  You got that,
           soldger?"
  Duke:   "I've always been on my own...   Face it, it's ass kickin' time,
           SIR!"
  Cmdr:   "Get outta here...!"
          (Duke gives the Cmdr a hard stair, then cocks his weapon and
           walks out of the room)
  Cmdr:   In a wisper: "Good luck, my friend."
https://github.com/fabiensanglard/chocolate_duke3D/blob/mast...
Assuming Half-Life the game was using this without tweaking the engine parameters much, I have to say this is the only engine that really "felt" 100% right to me. In Quake 1-3 I felt heavy/bulky, like my body didn't collide where I expected it to, Tribes 1 and 2 were very floaty, etc. HL1 was so natural.
I definitely agreed. Usually when someone asks me about my favourite game I always think of the HL1 engine instead. Bunnyhopping for example is a think I enjoyed, it felt like you could actually 'master' the movement/engine itself. New games are very animation-heavy which, while it looks alright, makes the game more restricted.

The source engine is also an engine that I like.

Yes, definitely! I think the feel of the HL1 engine is a large part of what made games like CS, DoD, TFC, Firearms, Action Half-Life, The Specialists, etc. so fun and popular. Even HL1 DM compared favorably to UT and Quake at times. Stock sound effects from HL1 still sometimes appear in Source games, and whenever I hear one, I'm instantly taken back to dodging rockets, gauss shots, and bullets while leaping towards the doomsday button in crossfire. I still miss that thriving multiplayer scene.
Aw, man. That was the best way for a group of friends to bond quickly. I had this funny moment with a guy where both of us ran out of ammunition at the same time while shooting at each other, then we were both killed by a rocket from another guy... memories for life
Haha oh man so true. This is why I've found it hard to really get into modern FPS's, especially the console ported ones... the perfection we tasted from HL1 is very tough to match.
I thought HL1 used quake 2 engine (or a modification of it), no?
Pretty sure they started from Quake 1 and did a lot of work from there
Correct, it's a heavily modified Quake 1 engine.
How did they get the Quake 2 engine? Isn't it commercial closed source? Did Valve paid? Were there other games based on this engine?
It's Quake 1, not 2. And yes, Valve among others licensed it, just like people do today with Unreal Engine or Cry Engine.
> In Quake 1-3 I felt heavy/bulky...

Quake 2...maybe. Quake 3 is anything but heavy/bulky, that game is 100% twitch and your character flies around (sometimes literally with those jump pads) like they're constantly sliding on a slick floor. Great game.

I think it's the "slick floor" feeling that causes the heavy/bulky feel; it's as if your character has a ton of momentum (due to a ton of mass, presumably, though you do move faster in Quake).
Quake 3 movement is slow unless you take advantage of strafe jumping and other tricks.

It's the only FPS I've played where knowing how to move through maps efficiently is so important.

eg: http://www.youtube.com/watch?v=Aikg9NC3i98

Don't get too excited...this isn't GoldSrc (the actual engine), but instead the SDK for mod-making.
Doesn't an SDK automatically includes at least some usable subset of the engine, if not the whole part?
No, just enough for you to plug your own code (gameplay, custom weapons, vehicles, etc). It's essentially a bunch of headers.
It's more than a bunch of headers, the Source SDK contains the code for both `client.dll` and `server.dll`. They contain everything that is not the graphic/audio/net engine.

I assume the same thing applies to goldsrc.

Also, I'm pretty sure that this has been available for more than ten years, just not on GitHub.
It has been--that's where I started learning C++.

:)

There is an open-source reimplementation of the Half-Life 1 engine: http://www.moddb.com/engines/xash3d-engine
Has anyone here tried it to see how it runs ? Can you play HL1 from beginning to end with it ?
Yes, you can. It's even compatible with most mods.
It's win32 only.
There are several efforts to make it run under Linux, you can find them on Github. I don't know if any of them are functional yet.
this is pretty cool but I Guess we can't use it to make our own commercial games.
If you want to do Half-Life modding, you can come a long way just scripting using AMX Mod X[0]. AMX Mod X has 260K LOC[2]. For comparison, the SDK has 273K LOC, but that's mostly headers. Plugins are written in Pawn (formerly known as Small) which is compiled and then interpreted. AMX Mod X is GPL.

For example, there's the SuperHeroes mod, which is also open-source[1].

Here are two videos demonstrating how radically gameplay was adjusted in SuperHeroes:

https://www.youtube.com/watch?v=IGmCKQ57z-Y

https://www.youtube.com/watch?v=1vY7bBhXA0k

[0]: https://github.com/alliedmodders/amxmodx

[1]: https://svn.alliedmods.net/viewvc.cgi/amxmodx_plugin/trunk/p...

[2]: https://www.ohloh.net/p/amxmodx