Giter Site home page Giter Site logo

cleanfixedquakec's Introduction

Clean Fixed QuakeC

Clean and bug-fixed version of the Quake game code (progs.dat) released under the GPL.

About

The computer game Quake was released in 1996.

In 1999 the source code for the Quake engine (.exe), tools (QuakeC complier), and game code (progs.dat) was released under the GPL.

The version of the Quake game code released under the GPL was v1.01, different from the latest release of the game code v1.06.

This project provides a version of the Quake game code v1.01 released under the GPL updated with a "clean room" implementation of fixes in the v1.06 code.

This project also includes a host of other improvements such as fixed compiler warnings, removal of unused code, and fixes for community reported bugs.

A compiled version of the game code (progs.dat) is provided so you can play a fixed version of Quake, and the source code (.qc files) provide the basis for Quake mod development.

Features

This project provides a clean and bug-fixed version of the Quake game code released under a permissive license.

Changes fall under three main categories, they are:

  • Official Fixes: Re-implementation of fixes available in non-GPL official releases, e.g.:
    • Fixes in final official game code release v1.06.
    • Fixes in Quake Mission Pack 1: Scourge of Armagon v1.07.
    • Fixes in Quake Mission Pack 2: Dissolution of Eternity v1.08.
  • Bug Fixes: Fixes for bugs reported by the community that were never officially fixed, e.g.:
    • Double counting fish monsters (rotfish) at end of level.
    • Fish not support gib death.
    • Never switch to lightning gun with backpack pickup when underwater.
  • Technical Fixes: Fixes reported by QuakeC compilers, good practices, and consistency, e.g.:
    • Removal of unused .qc files, unused global variables, and unused local variables.
    • Fixed compiler warnings like bad function definitions and missing return values.
    • Rationalized code formatting for consistency like indenting and comment placement.

All changes were made with the intent of not adding functionality (this is not a mod) and making minimal changes (to make diff's with other code bases easy).

See the change log for a full list of fixes:

How to Download

The latest release can be downloaded from here:

How to Use

You can use this game code to play quake with bugs fixed, or as the basis for mod development.

Play Quake

You can use the game code (progs.dat) to play Quake, such as singleplayer or multiplayer.

  1. Download the .zip file for the latest release.
  2. Unzip and locate the progs.dat file.
  3. Create a mod subdirectory under your quake directory, e.g. fixedquake/
  4. Place the progs.dat into your mod subdirectory, e.g. fixedquake/progs.dat
  5. Start quake and load the mod, e.g. quake -game fixedquake

Mod Development

You can use the .qc files as the basis for mod development.

  1. Download the .zip file for the latest release.
  2. Unzip and locate the progs.dat file.
  3. Access the source code in the qc/ subdirectory.

How to Build

Instructions on how to build this project.

  1. Checkout the code.
    1. git clone https://github.com/Jason2Brownlee/CleanFixedQuakeC.git
    2. cd CleanFixedQuakeC
  2. Configure your QuakeC compiler (e.g. assumes you have access to a compiler).
    1. Set QCCNAME, QCCCOMPILER, and QCFLAGS in makefile
  3. Create a release.
    1. make dist
  4. Retrieve the release from dist/

Resources

Useful resources for fixing bugs in Quake game code.

License

cleanfixedquakec's People

Contributors

jason2brownlee avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.