|
Why do I get the error “Couldn’t load pics/colormap.pcx” when I try to run
Quake II .NET?
This means Quake cold not find the data PAK file. You should verify
that the baseq2 folder for the managed and native versions contain the pak0.pak
file. See post install for more information
on installing this file.

Why do I have to download the Quake
II demo?
There are two components to Quake: the game engine and data files. The game
engine is available under the GNU
General Public License ("GPL") and can be
modified and redistributed. The game data (PAK and related files) cannot be
redistributed and must be installed by downloading the Quake demo or purchasing
the Quake retail version.
Where can I download the
Quake II demo?
The Quake II demo is available from Id Software at:
•
ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe
A list of alternative download sites is at:
• http://www.fileaholic.com/cgi-sql/file-download.sql/12433
The file size is 38 meg.
Where can I download the original Quake
II source code?
The original Quake II code is available from Id Software at:
• ftp://ftp.idsoftware.com/idstuff/source/quake2.zip
Where can I download Quake II
.NET?
You can download the Quake II .NET files
here. This contains the
source code and runtime files for
the native and managed versions of
Quake II .NET.
How do I run Quake II.
NET?
Since the GNU General Public License forbids
redistributing the Quake data files, you
need to install the Quake data file by
downloading the Quake II demo
separately. The steps to run the demo
are outlined below:
-
Download and open the
Quake II demo from
ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe.
This unpacks files to your system
(default folder is
c:\windows\desktop\Quake2 Demo).
-
Copy the pak0.pak file
from the Quake2 Demo\Install\Data\baseq2
folder to the %ProgramFiles%\Quake II
.NET\managed\baseq2 and %ProgramFiles%\Quake
II.NET\native\baseq2 folders. This file
is big - about 48MB and you're making
two copies. If you uninstall Quake II
.NET, you have to remove these two
copies by hand.
-
Run the managed or
native version by clicking the shortcut
in the Start menu.
How do I build Quake II. NET?
Building the code is straightforward
but you need to copy the generated EXE
and DLLs to the runtime before running
the app. The steps are outlined below:
-
Unzip the Quake II .NET source ZIP. This contains the Quake code
ported to Microsoft® Visual C++®
.NET 2003.
-
Open the quake2.sln file.
-
Select the target configuration (release or debug, native or managed) and build
the solution. Files are generated in the specified build configuration (Release
Managed for example).
-
Copy the engine files from the source location to the Quake II .NET runtime
installation (the default folder is %ProgramFiles%\Quake II .NET).
What are the requirements to run Quake
II .NET?
The system requirements are:
-
Windows 95, NT or XP for the native version
-
.NET Framework 1.1 for the managed version
-
Pentium 90 MHz
-
16 MB RAM
-
50 MB hard disk space
-
Sounds Blaster compatible soundcard
-
Access to local network or Internet for multiplayer mode
What are the requirements to build Quake
II .NET?
Visual Studio .NET 2003 is required to build Quake II .NET.
Can I modify the Quake II .NET source
code?
Yes, you are free to modify the Quake II. NET source code as long as you follow
the GNU General Public License agreement. You can read the accompanying readme.txt and
gnu.txt files for more information on the GNU license.
Does Quake II .NET work with other PAK
files?
It should work with other PAK files but we have only tested with the pak0.pak
file that is installed with the Quake II demo.
What problems did you encounter porting
to .NET?
Porting to .NET had two issues: porting the C code to C++ and porting the
native C++ code to managed C++. Porting to native C++ took the majority of time; the
following shows the main issues that were encountered and the time spent on
each issue:
-
Strong typing / casting – 70%
-
Using COM objects – 10%
-
Mixing DLL loading problem – 10%
-
Passing STL vector to managed assembly – 5%
-
Forward declaration exception – 5%
What is the advantage to getting the
app in .NET?
The main advantage is you have complete control over the design. You can pick
and choose what features to use and when to use them. For example:
-
Manage memory allocations yourself or use CLR garbage collection.
-
Call Window APIs directly or use .NET methods.
-
Use existing libraries or .NET classes.
-
Easily expose or consume other .NET assemblies written in different languages.
How did you extend the Quake engine?
We wanted to display a radar of items in the Quake world (monsters, health,
weapons, etc.).
-
First, we figured out the integration point in the Quake code to get the
information we wanted. This includes the player position, angle player is
facing, and location of elements around the player.
-
Next, we packaged up the items in a list so it could be sent to the radar
component. We could have used an array but we wanted to demonstrate passing an
STL vector list.
-
Finally, we added a new command to the Quake vocabulary called radar so the
user can hide or show the radar window.
After integrating with Quake, we created a radar .NET assembly.
-
Used Visual Studio .NET 2003 to create a .NET assembly written in managed C++.
-
Used the C++ Forms designer to create the radar window.
-
Created a simple class (Radar::Console) that controls the lifetime of the
window (Radar::RadarForm) and exposes methods that the Quake code uses.
How is the performance of the managed
version?
Initially, the managed version was faster than the native version when the
default processor optimization setting /G5 (Pentium) was used. Changing the
optimization setting to /G7 (Pentium 4 and Above) created a native version that
runs around 15% faster then the managed version.
Note, the assembly code was disabled for the native and managed versions so both
versions are slower than the original Quake version.
Known issues
The following are known issues with Quake II .NET.
-
Displaying the radar when running in full screen mode creates an invalid color
palette. You should not display the radar when in full screen. The Quake code
could be modified to prevent this.
|