mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-23 04:52:07 +00:00
86 lines
4.2 KiB
Text
86 lines
4.2 KiB
Text
* ****************************** *
|
|
* Yamagi Quake II *
|
|
* http://www.yamagi.org/quake2 *
|
|
* http://github.com/yquake2 *
|
|
* ****************************** *
|
|
|
|
TODO List
|
|
|
|
===============================================================================
|
|
|
|
This is a list of features that are currently not implemented in Yamagi Quake
|
|
II, but would be nice to have. If you have some freetime to spare, fun coding or
|
|
just want to contribute something, this list has some suggestions. All tasks
|
|
need strong C knowledge, the necessary amount of understandig of the Quake II
|
|
source code or external ABIs differs between the tasks.
|
|
|
|
Some hints:
|
|
- Sign up for a Github account and fork our yquake2 repository. This allows
|
|
the easy integration of upstream changes into your branch and sending of
|
|
pull requests. You'll get a wiki and a bugtracker for free.
|
|
- To contribute your changes back into the main project send pull requests
|
|
via Github. It's much easier to review and merge pull requests than patches.
|
|
Please send only pull reqeuests from a distinct branch at not from your
|
|
"master" branch!
|
|
- Quake II has a very fragile and broken codebase. Even after years of cleanup
|
|
it's still a disaster. Therefore:
|
|
- Do only one change at a time!
|
|
- Test after each change (play at least through base1.bsp)
|
|
- Commit early and commit often to create a fine grained history.
|
|
This helps "git bisect" to find bugs and errors.
|
|
- Do not try to clean up things or even rewrite code that you do not
|
|
understand to 110%! Even small behavioral changes can introduce
|
|
gameplay changes and trigger new bugs! Especially everything that
|
|
depends on map data (e.g. path finding or collision detection) is
|
|
very likely to break in interesting ways!
|
|
- Do not add new dependencies. If you must add a new one contact the Yamagi
|
|
Quake II developers prior to it! Everything that adds dependencies should
|
|
be hided behint preprocessor macros.
|
|
- If your changes change the gameplay experience, make them optional by
|
|
introducing a new cvar.
|
|
- Linux is not the only operating system out there. All changes should be
|
|
portable to other platform (writing pure ANSI-C or C99 is recommended but
|
|
not always applicable).
|
|
- x86 ist not the only CPU architecture. All changes should be done in pure
|
|
C (e.g. no inline assembler) and in an endianess independed way.
|
|
- gcc is not the only compiler. Test your changes with clang.
|
|
|
|
===============================================================================
|
|
|
|
1. Port Yamagi Quake II to new unixoid platforms (for example DragonflyBSD,
|
|
NetBSD, Solaris, etc.)
|
|
|
|
Difficulty: Easy
|
|
Knowledge: Good knowledge of the target platform
|
|
|
|
Yamagi Quake II runs fine on Linux and FreeBSD. Due to it's very low hardware
|
|
requirements it's an ideal game for platforms without good 3D acceleration.
|
|
Ports to new unixoid operating systems should be easy. In most cases only some
|
|
#ifdef need to be added and the Makefile integration written.
|
|
|
|
===============================================================================
|
|
|
|
2. Source code cleanup
|
|
|
|
Difficulty: Medium
|
|
Knowledge: Good knowledge of the Yamagi Quake II source
|
|
|
|
While the Yamagi Quake II source code was cleaned a few times there is still
|
|
much left to do. Someone need to go through the source, read and audit it. Dead
|
|
code should be removed, inefficient functions rewritten and bugs resolved. This
|
|
can be done at one module (e.g. client, server, refresher, game, etc) at a time.
|
|
|
|
===============================================================================
|
|
|
|
3. Finish the port of Zaero
|
|
|
|
Difficulty: Hard
|
|
Knowledge: How to work with broken code
|
|
|
|
Zaero is an unofficial but popular addon to Quake II. It was release as
|
|
freeware. The Yamagi Quake II developers did an inital port, but it's
|
|
unfinished and still buggy. Grab the source (take a look at our Github
|
|
organization), clean it and debug it. Zaero will need some extensive
|
|
testing, have fun while playing. :)
|
|
|
|
===============================================================================
|