Quake-III-Arena

View on GitHub

Welcome to one of the numerous Quake III Arena Source code repository forks! This is (probably) not the repository you are looking for! This repository began as a fork of Quake3Arena and exists as a mechanism for self education and having fun. The idea is to evolve the project while keeping some degree of compatibility with the original media as an excuse to develop new skills etc.

In the past the author completed most of a PhD around network infrastructure for games and simulations before switching topics. This project is intended to be a platform to experiment with new ideas that have been bubbling around in his mind since then.

This page exists purely as a mechanism for the author to document plans and track their own progress over time. The Quake III Arena source code can be considered a relatively large, legacy codebase and the author had limited knowledge about the product before commencing work. If there is a useful product that comes out of this work then this set of documents will provide insight in what it takes to pick up and evolve a legacy product.

Change Log

The major changes of the project are tracked in this table.

Change Cost
(1-10)
Benefit
(1-10)
Game Impact
(0-10)
Status Started
On
Completed
On
Update Third Party Libraries 2 2 0 Complete 2022-04-18 2022-07-28
Automate Source Code Formatting 1 3 0 Complete 2022-04-10 2022-04-13
Improve Build Automation - Phase 1 4 8 0 Complete 2022-03-01 2022-05-27
Convert TGA Assets to PNG 2 2 0 Complete 2022-04-24 2022-05-03
Modernize Codebase 5 3 0 Ongoing N/A N/A
Cleanup OpenGL Wrapper code 1 1 0 Complete 2022-05-16 2022-05-19
Materials Uplift 3 2 0 Complete 2022-05-20 2022-06-14
Wasm - Phase 1 3 0 0 Complete 2022-06-20 2022-06-29
Base project on idSoftware code 5 4 0 0% 2022-07-28  
Use SDL as the OS abstraction layer 4 5 0 0% 2022-07-30  
Wasm - Phase 2 3 0 0 0%    

These changes have not been started but are things that the project is considering doing.

Proposed Change Status Description Notes
Asset Bundles Ideation Develop a more robust asset bundle format. Depends upon a custom VFS which has not been specified.
Settings Ideation Rebuild "cvars" as "settings". Not yet ready for implementation as it impacts a lot of code and should only be attempted once the decision has been made to base development of the initial codebase or the ioquake3 fork.
Engine Remote API Ideation Expose the engine state for control and observation. Experimentation and prototyping required.
Synchronised Video Textures Eye Twinkle Watch videos within game. Pie in the sky ... but directly useful.

References

A set of notes and references that were collected to help work on this project: