home · browse · search · game entities · user directory · message board · IRC | register

February 28, 2008, 8:26 am PST
forgot password?

Popular Resources
  • Half-Life 2 Mod FAQ
  • Valve Hammer Editor
  • Hammer 3.5 beta test
  • Half-Life Utilities
  • game data files
  • ZHLT 2.5.3 custom build
  • Half-Life SDK
  • Feedback
    If you've got any feedback, suggestions, or bugs to report regarding the Collective website, go here!

  • Feedback (303)
  • Newsletter
    Enter your email address in the above form to add yourself to the email newsletter list. Click here for more info.

    Hosted Sites
  • Valve ERC
  • Collective
  • TFMapped
  • Spirit of Half-Life
  • Selective Design
  • Pixel Reviews
  • recent articles

    NPC and Item Placement Theory
    17/03/05 11:35pm PST
    Non-Player Character (NPC) and item placement can influence both the gameflow and immersion of a level. This article aims to give some pointers on how to properly place them.
    - Hugh 'Hugh' Lloyd

    Got Props?
    13/03/05 08:32am PST
    A common problem in HL2 mapping is props not showing up in game. This article explains why and offers solutions.
    - Jeff 'Yesukai' Pritchard

    Simulating Randomness
    18/12/04 11:29pm PST
    This article focuses on how to properly simulate random events that should occur at a certain average frequency, or within a certain probability per period of time.
    - Skyler 'Zipster' York

    Adding Single-Player Weapons to Half-Life 2
    15/12/04 06:52pm PST
    Covers the process behind adding weapons to a single-player Half-Life 2 modification.
    - Skyler 'Zipster' York

    Your world in HL2
    06/12/04 12:17am PST
    This article gives tips and advice to anyone wanting to make custom photorealistic textures to be used in Half-Life 2.
    - Oksid

    Hiding in Shadow
    21/08/04 01:11pm PDT
    Describes how to create a function that has monsters disregard you if you are hiding in a certain level of "darkness," which can be set from within map properties.
    - Anders [Wolf] Jenbo (NoBody)

    XSI EXP for Half-Life 2 Tutorial - Camera Control
    23/09/04 12:43am PDT
    A SOFTIMAGE|XSI tutorial explaining all of the camera controls available to you in XSI!
    - Josh Enes

    Bump Mapping in Half-Life
    08/08/04 11:58am PDT
    Details a method of achieving real-time bump mapping in Half-Life, and provides an implementation of the algorithm.
    - Francis 'DeathWish' Woodhouse

    Real-Time "TRON 2.0" Glow For Low-Spec Hardware
    19/06/04 02:06pm PDT
    A sequel to the original "Real-Time 'TRON 2.0' Glow" article, this describes how to implement real-time glow that works on low-spec graphics cards.
    - Francis 'DeathWish' Woodhouse

    Hitboxes and Code
    05/06/04 06:25pm PDT
    How do I make only one part of a monster take damage? Learn about the relationship between model hitboxes and what you can do with them in a characters code.
    - Jonathan 'Teh_Freak' Smith

    Half-Life's Code Basis
    [Thu Aug 01, 2002 / 04:38pm PDT] Chris 'autolycus' Bokitch - comments (5) comments enabled

    What came first, the chicken or the egg? What is Half-Life built on, Quake 1 or Quake 2? These questions pop up pretty frequently, and neither seems to have an accepted answer. In an effort to extinguish the argument, I've asked the people who know best. About Half-Life, that is. We're not touching the question about the chicken.

    Ken Birdwell explains it like this:

    "It is fundamentally just a heavily modified Quake 1 engine. There are about 50 lines of code from the Quake 2 engine, mostly bugs fixes to hard problems that Carmack found and fixed before we ran into them."

    At its core, it's a Quake 1 engine. You can tell this by comparing Half-life's map compiling tools with those shipped with Quake1. You'll find very minor differences -- none of them are fundamental. The core rendering is architecturally identical to Quake1, the only "significant" change is removing the fixed palette, making map lighting RGB instead of 8 bit, and converting software rendering to be 16 bit color instead of 8 bit color, which was pretty easy and only required minor code changes. Our skeletal animation system is new, though it was heavily influenced by the existing model rendering code, as were a lot of our updated particle effects, though less so with our beam system. Decals are totally new, our audio system has some major additions to what already existed, and at ship time our networking was almost totally Quake1 / QuakeWorld networking but about a year later Yahn rewrote most of all of it to be very different in design. The most highly changed sections are the game logic; ours being written in C++ and Quake's being in written interpreted "Quake C". Our AI system is very very different from anything in Quake, and there's a lot of other significant architectural changes in the whole server and client implementations, though if you look hard enough you can find a few remnants of some nearly unmodified Quake1 era entities buried in places.

    Jay Stelly adds, "We also took PAS from QW and/or Q2 and a couple of other minor routines I can remember (no more than 100-200 lines of code there). There was some feature overlap (as Ken mentions) like game code DLLs and colored lighting, but we developed our own solutions to those independent of Q2."

    So there it is. This should put some arguments to rest. Half-Life is based on Quake 1, although it has a very small amount of Quake 2 code. Yahn notes that "we did use some of the winsock functions from Q2, that's about it. Probably more than 50 lines, but nothing too interesting."
    article created on Thu Aug 01, 2002 / 04:27pm PDT
    this item has been viewed 20355 times
    [Half-Life / editorial]

    Only registered users can post comments. Have you registered yet?

    user comments

    displaying comments of normal or higher rating


    Michael Mallet
    Wed Dec 04, 2002 / 10:03pm PST

      The mistery has finally been solved!


    Skyler 'Zipster' York
    Wed Dec 04, 2002 / 10:25pm PST

      Finally as in years ago you mean :)


    Chris 'autolycus' Bokitch
    Thu Jan 02, 2003 / 10:36am PST

      Yes, rational people have always known that it was based mainly on Q1, but there's never really been an easy resource to point at for proof. :)


    Clemens Scott
    Fri Jan 03, 2003 / 02:06am PST

      Hey, I never exactly knew which it was based on and I went through some research, but finally asked in the forums...Well, now I know for sure...:D Thanks!


    Michael A. Hobson
    Fri Jan 03, 2003 / 11:36am PST

      Based upon direct examination of the Half-Life hardware accellerated engine DLL ( HW.DLL ) from HL and HL with IDA Pro 4
    (Interactive Disassembler) and comparison with the Quake 1 and Quake 2 GPL'd source code releases, I can tell you for an absolute fact that
    Valve replaced all of the direct OpenGL calls used by glQuakeWorld with calls to the QGL wrapper API used in Quake 2. Valve then extended this API
    with a QGL Direct 3D wrapper and that is how they made the glQW renderer work with 3dFX miniGL, system OpenGL ( OPENGL32.DLL ) or D3D within a
    single engine DLL.

    The source code for the QGL API is in the file ...\quake2\win32\qgl_win.c and is well over 4000 lines -- hardly an insignificant piece.

    VERC © 2004. All content copyright its respective owner, all rights reserved.
    script execution time: 0.0885009765625 seconds