QS-LCC
glQuake source for lcc-win32
1 March 2000  :current release compilation date
1 March 2000  ::page update
: :
 info 

journal

 tutorial 

 links 
 
 
 
 
 
 

 

01 March 2000  Let me know if you've a ProQuake server;  get a grip on network packet size
During much of February I spent time actually playing Quake, even on the internet.  As is my way, I downloaded every version of glQuake I could find, tested to find the best one, and assimilated its source into QS-LCC.  This implementation of ProQuake functions like the original except for sideline details.  In some cases, proQuake modifications were already handled another way in QS-LCC, such as the chasecam.  The beauty of GPL... 

The author for every change is carefully noted in the source code with their original comments intact.  Even a newbie can compare QS-LCC to the original qsource and follow the differences.  Each comment is prefaced with //QS-LCC to make it easy to search for what has been added by this port.

There are several theories and opportunities to reduce network packet size... check out the discussion on OneList.  Motivations to do this:  smaller packets have less loss and can move faster over the internet and reduce lag; if packets are more efficient, maybe more types of information or more players can be handled.  I like to imagine increasing max # of players from 16 to 32.  To get a feel for packet size realtime, I added a meter that shows the curent size of data from the server as a bargraph, plus an average of the previous 100 packets.  Type DRAWNETDATA 1 at the console.

BTW, the 3 Feb 2000 "Experiment" even works with the jumbo-sized Q2 boss, jorg. 

03 February 2000  Experiment:  adapting a Q2 model for use in Q1
The Quake 2 "gunner" model has been converted and roughly inserted into Quake 1 via a little mod.  Gunner replaces and mimics the enforcer.  The example is crude but effective;  gunner behavior and animation frames are stripped down to fit enforcer behavior, but model detail, skin, and some basic actions are preserved.  It shows that a model of Q2 complexity can be adapted to Q1 with some quakeC work.  Actually, a good deal of quakeC work...  If you have the retail version of Quake and you know what you're doing then try the mod:  gemod.zip.  Assuming you unzip to gemod in you Quake directory,  run  "quake -game gemod" and try a level with enforcers.  And talk about your rigor mortis!
 

27 January 2000   Bug fixes/enhancements
New features: QIP 20 Jan. 2000 bug fixes/enhancements (glowmaps, chasecam, cvarlist, cmdlist, etc.), QER motion and animation interpolation (tutorial 4), and show frames per second and water ripple effect from QuakeForge.  I've not fully tested all these features, but I was so excited by the smoooothness of interpolation that I had to release the updated source.  Shadow interpolation wasn't updated as shadows need more a accurate rendering method to be useable.  cvarlist and show fps are also great features.

The previous source release (18 Jan.) will remain posted until the new stuff has been kicked around a bit.  The new release is still classic Quake compatible by switching off new effects with cvars.  There are a few minor compiler warnings like "unreferenced variables" that might be addressed later, so I can't claim zero warnings at this point.
 

23 January 2000  Feature enhancement in progress, more and corrected links
There's no source update yet, but I'm working on plugging-in some of the new features and tutorials developed by QIP, QSG, and QER (See them in links).  QuakeForge might also have some goodies in their souped-up Quake code.  The plan is to have two projects here; the classic Quake compatible version with only bug-fixes and minor improvements, and an enhanced engine with new features.  Classic quake then will be a benchmark for performance and stability comparison.
 

17 January 2000  Compiler warnings fixed, tutorial added
Tired of seeing all those warnings for missing prototypes and unreferenced variables?  Me too.  They're gone.  All the missing prototypes the compiler was complaining about were added to headers and all unreferenced variables were deleted. 

A tutorial is added to describe the steps in making this port.  I will refine it over time as needed.
 

10 January 2000  Changes, comments
A couple of fixes/enhancements are out there that I would like to incorporate-  underwater distortion switch, chase cam fix, the mirror texture- but I intend to keep this port compatible with the original version.  Future noncompatible changes will be maintained as a separate project on this site.

No more dependence on the old dxsdk directory.  It's gone, and lcc's headers are used instead.  But I believe there is a typo in lcc's dsound.h: STDMETHOD(SetFormat) (THIS_ LPWAVEFORMATEX) instead of LPCWAVEFORMATEX.  This allows compilation, but please excuse my windows header ignorance and inform me if this is not the appropriate solution.  Obviously, make a backup of your original dsound.h.

Icon resource compiles successfully.
 

03 January 2000  Comments
Opening the projects:  From lcc's Wedit menu bar,  select Project> Import> and import qs-lcc.prj located in the qc-lcc directory.  Similarly for the gas2masm project, import gas2masm.prj from the gas2masm sub directory.

Please let me know if you have tried networking.  Yes, a glQuakeWorld port would be nice... it is planned.
 

01 January 2000   First release
The changes I made in the source are commented with "jf". The directory structure of the project is modified from the original source release to be more lcc-win32-friendly. (Note: see the tutorial section for details.)
: