mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-26 22:40:50 +00:00
139 lines
6.4 KiB
Text
139 lines
6.4 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 Microsoft Windows
|
|
|
|
Difficulty: Hard
|
|
Knowledge: Microsoft Windows, good understanding of the Quake II source,
|
|
SDL-ABI, (experience with 64 bit problems)
|
|
|
|
While Quake II was released on Microsoft Windows, support for the plattform was
|
|
removed in the early stages of Yamagi Quake II. Looking back this was a bad
|
|
decision. Goal of this project is a backport to Microsoft Windows. This
|
|
requieres at least three steps:
|
|
1. Import the platform specific stuff for Windows from Icculus Q2, clean it up
|
|
and bring it to feature parity with the Unix stuff in src/unix. The nativ
|
|
sound, render and input backends should be replaced by the SDL backends in
|
|
src/sdl.
|
|
2. Go through the source and remove all unixisms.
|
|
|
|
And optional (Win64 support isn't required since 32 bit binaries are
|
|
working nice, but it be would nice to have):
|
|
|
|
3. Since Windows 64 has another binary model than all unixoid platform there
|
|
will most likely new 64 bit problems. Identify and resolve these.
|
|
|
|
===============================================================================
|
|
|
|
2. Port Yamagi Quake II to new unixoid platforms (DragonflyBSD, NetBSD, OpenBSD
|
|
(Open)Solaris, etc.)
|
|
|
|
Difficulty: Medium
|
|
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.
|
|
|
|
===============================================================================
|
|
|
|
3. Source code cleanup
|
|
|
|
Difficulty: Hard
|
|
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.
|
|
|
|
===============================================================================
|
|
|
|
4. Addon cleanup
|
|
|
|
Difficulty: Medium
|
|
Knowledge: How to debug hard to read code
|
|
|
|
While the baseq2 game modul was cleaned up and made more robust by adding
|
|
hundreds of sanity checks both addons (xatrix and rogue) still require a lot
|
|
of work. Go through the code, read it and understand it. Remove bugs, and add
|
|
the missing sanity checks. Test (e.g. play) and add implement map quirks.
|
|
Especially the coop-support of both addons is still fragile at best.
|
|
|
|
===============================================================================
|
|
|
|
5. 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 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 :)
|
|
|
|
===============================================================================
|
|
|
|
6. Port Quake II to various consoles (especially the Nintendo Wii)
|
|
|
|
Difficulty: Hard
|
|
Knowledge: How to port games to the console, Knowledge of the platform
|
|
dependent parts of the Yamagi Quake II source
|
|
|
|
Game consoles are popular and having Quake II on them is a often
|
|
requested feature. Porting Yamagi Quake II to the XBOX 360 isn't
|
|
necessary, since an official port (by id Software / Bethesda) was
|
|
included in Quake IV for the XBOX 360. A port to the Playstation 3
|
|
would be nice but most likely it's impossible due to the DRM. But
|
|
a port to the Wii should be feasible and support for the several
|
|
open source or alternative consoles straight forward.
|
|
|
|
===============================================================================
|