How to run Quake 3 from source in Visual Studio
First step in my attempt to study Quake 3′s source code: getting the thing to compile and run.
Quake 3′s source code respository is available on github. But to run the game, you still need to buy it, because the repository contains only the code and not the game data files. I bought my copy of Quake 3 from Steam.
I'm compiling the code on Windows 10 using Visual Studio 2017 Community Edition.
After you have Visual Studio installed and downloaded the Quake 3 repository, open quake3.sln from the repository. The first time you open quake3.sln, Visual Studio will probably ask you if you want to upgrade the solution to your version of Visual Studio. Click yes.
Once you have the solution open, compile the projects. Normally, you should be able to compile all the projects in a solution at once by simplying clicking "Build Solution" in the Build menu. That doesn’t work here for some reason. You have to compile each project individually by right clicking on them in the Solution Explorer and selecting "Build". The order does not matter as long as the project "quake3" is compiled last.
During compilation, you might run into a problem with the "ui" project's output file name. Right click on the "ui" project and select "Properties". In the Properties menu, select the "General" tab. In that tab, there is a field called "Target Name" with the value "$(ProjectName)". Change the value to "$(ProjectName)x86_new" and click OK.
To run the game, first you have to download the copy of Quake 3 you bought. Open the game's folder and copy its path. For example, a Steam copy would have a path like “C:\Program Files (x86)\Steam\steamapps\common\Quake 3 Arena".
Back in Visual Studio, right click on the "quake3" project and select "Set as StartUp Project". Right click on "quake3" again and select "Properties". Go to the "Debugging" tab, and paste the path you copied earlier into the "Working Directory" field. Then in the "Command Arguments" field, paste in this line:
+set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
I found that line on the gamedev stackexchange when the game was crashing on startup because of something related to UI and VM.
Now, press F5, and the game should start running.
I must thank my current job. Without it, I wouldn't have had the wherewithal to even get this far with Visual Studio.

















