Getting Up And Running - Aggregates/TK-Quake GitHub Wiki

Getting Up And Running

This article will outline the steps involved to set up your development environment for working on this project

Compiling

This project is built using C# and as such, you may use Visual Studio (if developing on Windows) or Mono (*nix systems). Some important things to note are the fact that nix systems will not be able to use windows libraries (e.g. Forms). When developing, try to be platform independent - most things will be. In addition to this, if you are required to use the Windows System.Drawing library (for Color), then make sure to use it inline System.Drawing.Color col = System.Drawing.Color.Red; as mono will not compile when using the using System.Drawing; import.

Architecture

There are several projects within the repository solution

  • TargaImage
  • TK-Quake
  • TK-Quake.Cookbook (ignore)
  • TK-Quake.Engine
  • TK-Quake.Test

TargaImage

This is a Targa Image loader developed by David Polomis and hosted on Code Project. We make use of this to read in .targa images when loading fonts as created by BM Font (See TK-Quake.Engine.Infrastructure.Font)

This should automatically build itself at compile time and be placed into the build directory

TK-Quake

This is the actual game implementation. Anything implemented for a specific game (assets, additional classes, characters, etc.) are located in here as they are not a part of the underlying engine architecture.

TK-Quake.Engine

This is the infrastructure and library that we will build along-side our TK-Quake game. Note that these are very different projects. The Engine project is designed to be open and flexible for any developer to come and make use of regardless of their end product (e.g. next year's COMP3320). Anything specifically Quake related should not go here as it is not part of a generic Open-TK engine. That said, OBJ and BSP loading is perfectly fine as anyone may want to achieve this.

This projects eventually compiles down to a .dll file included in the build output, so documentation of all publicly accessible features is key.

If this were to be uploaded to NuGet, it would need to be well documented and well designed for anyone to use

TK-Quake.Test

This is the Unit Test library for testing any new features. Generally this is useful for testing new TK-Quake.Engine features, but features in TK-Quake can also be added here

⚠️ **GitHub.com Fallback** ⚠️