README.md

FQuake3

Attempted F# Implementation of id Software's Quake III Arena.

Supported Platforms:

Windows 32-bit

Update!

FQuake3 has been put to rest in pursuit of something a little less extreme. :) It was most ambitious and a bit over my head about 99% of the time. However, I learned a ton: math, functional programming, game engine development, language interop. If it wasn't for this project in the first place, I wouldn't be where I am at and doing what I am doing. This means all the hard work did pay for something!

Build and Run Instructions

You will need a commercial copy of Quake III Arena, preferably with Team Arena as well.

In your repository's root folder, create a new folder called "build". e.g. _FQuake3\build_

If you have a copy of Quake III Arena, go inside its root folder. You should see "baseq3" and "missionpack" (If you have Team Arena). Copy both of them, if you have both, to your newly created _\build_ folder in your repository.

#####Solution Configuration and Running

Open FQuake3.sln in Visual Studio 2012.

Looking at your solution in Solution Explorer, expand the "C" folder, and you will find a FQuake3 project.

Right click on the FQuake3 project, and select "Set as StartUp Project".

Right click again on the FQuake3 project, and select "Properties". You should now be in "FQuake3's Property Pages".

Next, in "FQuake3's Property Pages", choose your active Configuration in the top left to be "All Configurations".

Choose "Debug" or "Release" for active build configuration, and then build the solution.

Finally, Start Debugging or Start without debugging.

Notes:

Team Arena configuration builds are "Debug TA" and "Release TA". Make sure you have built one of the other configurations before building and running these.

You can only Debug C code. F# code is not debug-able currently, however it is possible, but requires embedded mono configuration to set up a debug agent, and have a remote debugger, probably from Xamarin Studio to listen and use the F# source files. Also, the assembly .pdb debug files will need to be converted to .mdb using Mono's pdb2mdb.