More work towards documentation in the tree.

This commit is contained in:
Marco Cawthorne 2020-05-30 12:03:55 +02:00
parent 4d201c281b
commit c036ccc318
5 changed files with 119 additions and 0 deletions

41
doc/about Normal file
View File

@ -0,0 +1,41 @@
About Nuclide
The Nuclide project produces a freely available game-logic component and
development platform on top of FTEQW.
Our goals is to create a modern research base for new advancements, features
as well as support games whose formats are supported by FTEQW but their code
isn't freely accessible.
1. Why might I want to use it?
Nuclide is for you when:
- You want to play one of our supported games on the platform/arch of your
choice.
- You want to develop a game using a lot of complex and well-tested objects
we have written for you.
- You want to make modifications for a game we support and have full control
over what you can do.
2. How free is Nuclide?
Everything in Nuclide is free. The copyright terms for the game-logic are
very permitting. Nuclide does not use the GPL as a point of reference, it
instead uses a ISC-like license. This means you can use, copy, modify and
distribute the code and work resulting from it for any purpose.
Please read the very short 'license' document for details.
3. What is the release cycle?
At the current moment, there is no strict release cycle as everthing is
still very early (albeit usable). I am aiming for a stable release cycle of
every 3-6 months once we leave Beta.
4. How can I support the project?
Currently, the only way to support the efforts of the one-man-team behind
this, is to use https://www.paypal.me/eukara/
It was only possible for Nuclide to get this far because of the contributions
of single individuals from the free-software community.
Thanks you so much, everyone who has contributed!

15
doc/contributing Normal file
View File

@ -0,0 +1,15 @@
NUCLIDE CODEBASE CONTRIBUTING RULES
1. The code must be yours.
It's simple: Do not take GPL code. Do not take Half-Life SDK code.
We do not decompile, we reverse-engineer by trial and error.
Also referred to as 'clean-room engineering'.
Most of the behaviour is rather predictable, other is not.
2. Game specific features need to be put into game-specific directories.
Unless other games benefit from this, keep it seperate to one of the game
sub-directories.
That's about it.

View File

@ -1,3 +1,5 @@
NUCLIDE SOURCE TREE FAQ
Q: Why does this project exist?
A: I wanted a free variant of the best version of Counter-Strike in 2016 as
as I was preparing to move away from x86 hardware and moving to other

48
doc/history Normal file
View File

@ -0,0 +1,48 @@
NUCLIDE PROJECT HISTORY
In November 2016 eukara started work on 'OpenCS', a project which focused
solely on creating a clean-room implementation of Counter-Strike 1.5 in QuakeC
for FTEQW, which then was the only Quake engine fork which adhered to the
GPL and supported the level and model format of Half-Life mostly to spec.
Its strong game-logic enhancements such as Client-Side QC as well as its
QuakeWorld backbone also made it more desirable over other Quake engine forks.
OpenCS was feature complete with all CS 1.5's content had to offer by December
of 2016, however the name conflicted with the 'OpenMW' sub-project 'OpenCS',
so eukara changed it to avoid any future conflicts.
To emphasize the free-software aspect, eukara renamed the project FreeCS.
Work on FreeCS had then paused so more work could be done on what would later
become the 'gs-entbase' component. Another project required more compatibility
with the full set of map entities present in Half-Life.
When those matured, they were then backported to the FreeCS tree.
In November of 2017, FreeCS was featured on Phoronix.
After the release of The Wastes in April 2018, the game which introduced the
'gs-entbase' component, more work was done on FreeCS in regards to the netcode.
A lot had been learned about prediction and taking full advantage of the
custom networking available in FTEQW, but new features have also been
added to the engine to take full advantage of what the content had to offer.
Features like interacting with OpenAL's EAX extension, model-events, support
for WAD3 decal parsing and countless QuakeC extensions were all added by
either Spike or eukara himself to make FreeCS possible.
Many projects running on FTE have since taken advantage of these extensions
as well!
By the summer of 2019, the Half-Life Deathmatch component started taking shape.
At this point, the tree was overhauled so it would support multiple mods easier
and that a lot of code would be shared between all of them.
This is the structure of the src tree we still use to this day.
So a name had to be thought of that would neatly tie all projects under one
roof together: Nuclide!
The name Nuclide calls back to an earlier project, which tried to create
a work environment similar to GoldSrc for the original Quake engine.
In April of 2020, the weapons were rewritten to be fully client-side predicted.
This brought the Counter-Strike component on par with the advances of the other
games that Nuclide supports.

13
doc/license Normal file
View File

@ -0,0 +1,13 @@
Copyright (c) 2016-2020 Marco Hladik <marco@icculus.org>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.