Was Goldsrc built off of WinQuake or QuakeWorld? Created 1 month ago2022-10-25 08:28:31 UTC by brannanz brannanz

Created 1 month ago2022-10-25 08:28:31 UTC by brannanz brannanz

Posted 1 month ago2022-10-25 08:28:31 UTC Post #346993
I've got QuakeWorld compiling in MSVC++ 6.0 and I had an idea. What if you tried to mirror some of the capabilities of goldsrc in quakeworld/winquake? So I wanted to know if anybody knows if goldsrc/half-life was based off of winquake or quakeworld.

In the alpha 0.52 of half-life, you can see "engine.exe" and "enginegl.exe" which is similar to quakeworld, which compiles "qwcl.exe" and "glqwcl.exe", BUT, quakeworld doesn't support the "map" command, AND you can load the alpha maps in winquake. But, the Half-Life SDK contains client and server dlls, sort of similar to quakeworld. So I think it's probably a mix of both?
brannanz brannanzBUGBUG
Posted 1 month ago2022-10-25 08:51:45 UTC Post #346994
Now I feel like making a Quake 1 based engine myself.
Meerjel01 Meerjel01I grab my Soup!
Posted 1 month ago2022-10-25 09:01:34 UTC Post #346995
I guess that's what Xash is?
Posted 1 month ago2022-10-25 09:02:04 UTC Post #346996
I mean, quakeworld already has mouselook, very similar feeling movement and viewbob! You wouldn't need to change much.

I'm pretty sure xash is made off of the 2003 leak engine?

EDIT: https://github.com/brannanz/freesrc
Here's the repo for my QW project thingy. Requires MSVC++ 6.0 if you really want to compile. Very messy!
brannanz brannanzBUGBUG
Posted 1 month ago2022-10-25 10:27:14 UTC Post #346997
From my own findings, I think goldsrc was built off of WinQuake and then QuakeWorld features were added to the engine.
brannanz brannanzBUGBUG
Posted 1 month ago2022-10-25 11:59:09 UTC Post #346998
Which Quake came first?

(Possibly WinQuake but I'm not someone putting attention to this so I don't know)
Meerjel01 Meerjel01I grab my Soup!
Posted 1 month ago2022-10-25 13:02:13 UTC Post #346999
I'm pretty sure xash is made off of the 2003 leak engine?
Xash started off as a fork of one of those Quake engine forks, and it used 2003 leak code at some point for a couple of smaller things. I don't remember what, but either way, that got removed from Xash-FWGS and replaced with clean code.

GoldSRC has code from all kinds of places. IIRC it's mostly WinQuake/GLQuake with some QuakeWorld for networking and view bobbing and a teeny tiny bit of Quake 2 for some other things.
Admer456 Admer456If it ain't broken, don't fox it!
Posted 1 month ago2022-10-25 13:37:52 UTC Post #347001
I feel like Valve borrowed the Quake 2 renderer for GoldSrc, as WinQuake seperates both the OGL renderer and software into seperate execs, but Quake 2 can change rendering modes on the fly.

DOS Quake came first, I believe. Then WinQuake, and GLQuake.

WinQuake/GLQuake are surprisingly similar to GoldSrc when you look behind the scenes.
brannanz brannanzBUGBUG
Posted 1 month ago2022-10-25 13:39:10 UTC Post #347002
GoldSRC also separates the hardware renderer and software renderer. hw.dll and sw.dll are actually entire builds of the engine but with different renderers.
Admer456 Admer456If it ain't broken, don't fox it!
Posted 1 month ago2022-10-25 13:46:11 UTC Post #347003
GoldSRC also separates the hardware renderer and software renderer. hw.dll and sw.dll are actually entire builds of the engine but with different renderers.
That explains why the software renderer acts slightly broken on Windows 10, compared to OGL. Although the software renderer in WinQuake works fine, and I doubt Valve messed with much assembly code in the GoldSrc engine.

I also find it intresting how half life compiles it's gameplay logic to DLLs instead of into the executable like Quake does (Although, I think the QuakeC code might actually be similar...). It's also a feat in itself that valve renamed all the C code to C++ and got it compiling, somehow. Albeit with a lot of changes though.
brannanz brannanzBUGBUG
Posted 1 month ago2022-10-25 14:29:44 UTC Post #347004
Most of Half-Life was developed in software mode AFAIK, so I'm pretty sure they changed quite a couple of things here'n'there. I mean, just look at the water in software mode.

In Quake, gameplay logic is in QuakeC, but the client code is inside the engine. The client DLL in HL SDK is practically just engine code moved into a separate DLL. I don't think Valve renamed all the .c files into .cpp? No way to check that really, so I dunno.
Admer456 Admer456If it ain't broken, don't fox it!
Posted 1 month ago2022-10-27 08:58:19 UTC Post #347011
User posted image
Here's a half-life alpha map loading in GLQuake, I guess they must have not changed much of the BSP file format in 97.

Don't know why the lightmaps are broken though.
brannanz brannanzBUGBUG
Posted 1 month ago2022-10-27 12:42:11 UTC Post #347012
The only difference between the HL and Quake BSP formats is that HL has RGB lighting and Quake only has monochrome lighting. That's why the lightmaps are wrong.
Penguinboy PenguinboyHaha, I died again!
Posted 1 month ago2022-10-27 12:52:08 UTC Post #347013
Oh. I'll need to figure out how to add the half-life RGB lighting support into quake somehow..
brannanz brannanzBUGBUG
Posted 1 month ago2022-10-27 13:09:45 UTC Post #347014
How do one program a software that can read from a bsp like file? For use with my engine of course.

EDIT:
Make a custom map format and compiler for it.
Meerjel01 Meerjel01I grab my Soup!
Posted 1 month ago2022-10-27 13:33:12 UTC Post #347015
Have a look at the quake/quake 2 source code. You'll probably find lots of useful info:
https://github.com/id-Software/Quake
https://github.com/id-Software/Quake-2
https://github.com/id-Software/Quake-Tools
https://github.com/id-Software/Quake-2-Tools

Quake - Game source code
Quake Tools - Map compilers and editors
brannanz brannanzBUGBUG
Posted 1 month ago2022-10-28 09:13:35 UTC Post #347023
I'm too unfocused on searching for the code myself so if someone can find it for me then it would be great.
Meerjel01 Meerjel01I grab my Soup!
You must be logged in to post a response.