multiprogs additions, decl integration, more of everything really
4
.gitignore
vendored
|
@ -56,6 +56,7 @@ ssqccore.txt
|
|||
# Ideally you would add
|
||||
# your project here as well
|
||||
|
||||
action/
|
||||
AbsoluteZero/
|
||||
base_pbr/
|
||||
baseq2/
|
||||
|
@ -93,6 +94,9 @@ ship/
|
|||
tf/
|
||||
tf2/
|
||||
tfc/
|
||||
dk/
|
||||
basedk/
|
||||
mainkp/
|
||||
ts/
|
||||
valve/
|
||||
wastes/
|
||||
|
|
57
Documentation/About.md
Normal file
|
@ -0,0 +1,57 @@
|
|||
|
||||
# About The Project {#about}
|
||||
|
||||
The Nuclide project produces a freely available game-logic component and
|
||||
development platform on top of [FTEQW](https://www.fteqw.org); which is a featureful QuakeWorld-based engine.
|
||||
|
||||
**The general idea is that Nuclide takes care of ~90% of the code you shouldn't have to worry about.**
|
||||
|
||||
It is targetted towards developers with a background/interest in id Technology.
|
||||
|
||||
It comes with a simple example game (simply referred to as 'Base') and some test maps. There's also some other, third-party example projects.
|
||||
|
||||
General feature overview:
|
||||
|
||||
- The 'missing' SDK for engines like FTEQW
|
||||
- Support for client-side predicted movement, weaponry and vehicles
|
||||
- Documented APIs for everything you need to interface with the engine
|
||||
- APIs and Frameworks for managing updates, mods, servers, and platform specific features
|
||||
- Complete re-implementations of hundreds of entities, from GoldSrc/Source engine games
|
||||
- Entity communication via traditional one-way triggers, or our Source Engine I/O compatible system
|
||||
- Includes BotLib, a framework for multiplayer-AI that can receive game-specific overrides
|
||||
- Includes VGUILib, a re-imagining of Valve's GUI library, which can also be used for in-game surface based interfaces
|
||||
- Designed to be familar to developers coming from GoldSrc/Source
|
||||
- VR/XR aware codebase
|
||||
- All permissively licensed
|
||||
|
||||
|
||||
# Frequently Asked Questions
|
||||
|
||||
## 1. Why might I want to use it? {#why}
|
||||
|
||||
You might be migrating from an engine that is no longer being licensed and don't want to learn a new engine and toolchain.
|
||||
|
||||
You might want to develop a game using a lot of complex and well-tested objects
|
||||
which might be tedious to implement on your own.
|
||||
|
||||
You might want to run or make modifications for a game using Nuclide and need full
|
||||
control over what you can do.
|
||||
|
||||
## 2. How free is Nuclide? {#license}
|
||||
|
||||
Everything in Nuclide is **free software**. The copyright terms for the game-logic are
|
||||
very permitting. Nuclide *does not use the GPL* as a point of reference in terms of license, 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 are the alternatives? {#alternatives}
|
||||
|
||||
Implementing systems such as prediction, complex map objects and entities on
|
||||
your own, from scratch - or licensing another engine such as [Source](https://partner.steamgames.com/doc/sdk/uploading/distributing_source_engine) that ships with its own **Source SDK Base**.
|
||||
|
||||
## 4. Any example projects? {#examples}
|
||||
|
||||
- [The Wastes](https://store.steampowered.com/app/793670) is a commerical game built using Nuclide.
|
||||
- [Rad-Therapy](https://www.github.com/eukara/freehl) is a clone of 'Half-Life: Deathmatch' on Nuclide.
|
||||
- [Tactical Retreat](https://www.github.com/eukara/freecs) is a clone of 'Counter-Strike', for Rad-Therapy.
|
|
@ -1,6 +0,0 @@
|
|||
# Defs/Declarations {#scripting}
|
||||
|
||||
Explanation of declaration-based subsystems within Nuclide.
|
||||
|
||||
These usually contain key/value pair type parameters (and more, depending on the type)
|
||||
within the game. They help a great deal in managing complexity between reusable components. That way the game code can focus on everything that's not unique.
|
238
Documentation/DoxygenLayout.xml
Normal file
|
@ -0,0 +1,238 @@
|
|||
<doxygenlayout version="1.0">
|
||||
<!-- Generated by doxygen 1.9.3 -->
|
||||
<!-- Navigation index tabs for HTML output -->
|
||||
<navindex>
|
||||
<tab type="mainpage" visible="yes" title=""/>
|
||||
<tab type="pages" visible="yes" title="" intro=""/>
|
||||
<tab type="modules" visible="yes" title="" intro=""/>
|
||||
<tab type="namespaces" visible="yes" title="">
|
||||
<tab type="namespacelist" visible="yes" title="" intro=""/>
|
||||
<tab type="namespacemembers" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="concepts" visible="yes" title="">
|
||||
</tab>
|
||||
<tab type="interfaces" visible="yes" title="">
|
||||
<tab type="interfacelist" visible="yes" title="" intro=""/>
|
||||
<tab type="interfaceindex" visible="$ALPHABETICAL_INDEX" title=""/>
|
||||
<tab type="interfacehierarchy" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="classes" visible="yes" title="">
|
||||
<tab type="classlist" visible="yes" title="" intro=""/>
|
||||
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
|
||||
<tab type="hierarchy" visible="yes" title="" intro=""/>
|
||||
<tab type="classmembers" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="structs" visible="yes" title="">
|
||||
<tab type="structlist" visible="yes" title="" intro=""/>
|
||||
<tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/>
|
||||
</tab>
|
||||
<tab type="exceptions" visible="yes" title="">
|
||||
<tab type="exceptionlist" visible="yes" title="" intro=""/>
|
||||
<tab type="exceptionindex" visible="$ALPHABETICAL_INDEX" title=""/>
|
||||
<tab type="exceptionhierarchy" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="files" visible="yes" title="">
|
||||
<tab type="filelist" visible="yes" title="" intro=""/>
|
||||
<tab type="globals" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="examples" visible="yes" title="" intro=""/>
|
||||
</navindex>
|
||||
|
||||
<!-- Layout definition for a class page -->
|
||||
<class>
|
||||
<detaileddescription title="About this class"/>
|
||||
<inheritancegraph visible="$CLASS_GRAPH"/>
|
||||
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
|
||||
<memberdecl>
|
||||
<nestedclasses visible="yes" title=""/>
|
||||
<publictypes title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<publicslots title=""/>
|
||||
<signals title=""/>
|
||||
<publicmethods title=""/>
|
||||
<publicstaticmethods title=""/>
|
||||
<publicattributes title=""/>
|
||||
<publicstaticattributes title=""/>
|
||||
<protectedtypes title=""/>
|
||||
<protectedslots title=""/>
|
||||
<protectedmethods title=""/>
|
||||
<protectedstaticmethods title=""/>
|
||||
<protectedattributes title=""/>
|
||||
<protectedstaticattributes title=""/>
|
||||
<packagetypes title=""/>
|
||||
<packagemethods title=""/>
|
||||
<packagestaticmethods title=""/>
|
||||
<packageattributes title=""/>
|
||||
<packagestaticattributes title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
<privatetypes title=""/>
|
||||
<privateslots title=""/>
|
||||
<privatemethods title=""/>
|
||||
<privatestaticmethods title=""/>
|
||||
<privateattributes title=""/>
|
||||
<privatestaticattributes title=""/>
|
||||
<friends title=""/>
|
||||
<related title="" subtitle=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<constructors title=""/>
|
||||
<functions title=""/>
|
||||
<related title=""/>
|
||||
<variables title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
</memberdef>
|
||||
<allmemberslink visible="yes"/>
|
||||
<usedfiles visible="$SHOW_USED_FILES"/>
|
||||
<authorsection visible="yes"/>
|
||||
</class>
|
||||
|
||||
<!-- Layout definition for a namespace page -->
|
||||
<namespace>
|
||||
<briefdescription visible="yes"/>
|
||||
<memberdecl>
|
||||
<nestednamespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<interfaces visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<concepts visible="yes" title=""/>
|
||||
<structs visible="yes" title=""/>
|
||||
<exceptions visible="yes" title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</namespace>
|
||||
|
||||
<!-- Layout definition for a concept page -->
|
||||
<concept>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_HEADERFILE"/>
|
||||
<definition visible="yes" title=""/>
|
||||
<detaileddescription title=""/>
|
||||
<authorsection visible="yes"/>
|
||||
</concept>
|
||||
|
||||
<!-- Layout definition for a file page -->
|
||||
<file>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<includegraph visible="$INCLUDE_GRAPH"/>
|
||||
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
|
||||
<detaileddescription title=""/>
|
||||
<sourcelink visible="yes"/>
|
||||
<memberdecl>
|
||||
<interfaces visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<structs visible="yes" title=""/>
|
||||
<exceptions visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<concepts visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection/>
|
||||
</file>
|
||||
|
||||
<!-- Layout definition for a group page -->
|
||||
<group>
|
||||
<briefdescription visible="yes"/>
|
||||
<detaileddescription title=""/>
|
||||
<groupgraph visible="$GROUP_GRAPHS"/>
|
||||
<memberdecl>
|
||||
<nestedgroups visible="yes" title=""/>
|
||||
<dirs visible="yes" title=""/>
|
||||
<files visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<concepts visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<functions title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<memberdef>
|
||||
<pagedocs/>
|
||||
<functions title=""/>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<sequences title=""/>
|
||||
<dictionaries title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</group>
|
||||
|
||||
<!-- Layout definition for a directory page -->
|
||||
<directory>
|
||||
<briefdescription visible="yes"/>
|
||||
<directorygraph visible="yes"/>
|
||||
<memberdecl>
|
||||
<dirs visible="yes"/>
|
||||
<files visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
</directory>
|
||||
</doxygenlayout>
|
1
Documentation/Footer.html
Normal file
|
@ -0,0 +1 @@
|
|||
Nuclide is a project by [Vera Visions, L.L.C.](https://www.vera-visions.com/)
|
12
Documentation/GettingStarted.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Getting started
|
||||
|
||||
## How to get the latest version {#how}
|
||||
|
||||
You clone the Nuclide git repository first. There's multiple places to get it, one such place may be GitHub:
|
||||
|
||||
`git clone https://github.com/veravisions/nuclide`
|
||||
|
||||
You can then update the git repository as you normally would. Using `git pull` for example.
|
||||
|
||||
And then you can [get started on building the engine and the rest of the toolchain](Building.md). Alternatively, you can also move in the official FTEQW binaries into the Nuclide directory to get started without bootstrapping your own engine + QuakeC compiler.
|
||||
C programming knowledge is not required to use Nuclide itself.
|
|
@ -29,7 +29,7 @@ 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](EFX.md), [model-events](VVM.md), support
|
||||
Features like interacting with [OpenAL's EAX extension](@ref efx), [model-events](VVM.md), support
|
||||
for WAD3 decal parsing and countless QuakeC extensions were all added by
|
||||
either Spike (FTEQW Author) or eukara himself to make everything possible.
|
||||
|
||||
|
|
|
@ -4,89 +4,23 @@
|
|||
|
||||
Welcome to the manual for **Nuclide**!
|
||||
|
||||
This is a game development kit (GDK) and development environment created by [Vera Visions, L.L.C.](https://www.vera-visions.com/). We want to share it with everyone to avoid duplicate effort and in the hopes that it is useful to someone else.
|
||||
 This is a game development kit (GDK) and development environment for id Tech, using GPL QuakeWorld technology. We are sharing it in the hopes that it is useful!
|
||||
|
||||
### What this project is {#what}
|
||||
[You can read more in-depth information, such as features here](About.md).
|
||||
|
||||
The Nuclide project produces a freely available game-logic component and
|
||||
development platform on top of [FTEQW](https://www.fteqw.org); which is the engine we happen to use.
|
||||
## Learning Resources
|
||||
|
||||
**The general idea is that Nuclide takes care of ~90% of the code you shouldn't have to worry about.**
|
||||
 [Getting Started](GettingStarted.md)
|
||||
|
||||
The goal is to create a modern research base for new advancements, as well
|
||||
as to have a stable base with a decent API for making games.
|
||||
 [Guide To Decl Files](@ref decl)
|
||||
|
||||
It is targetted towards developers with a background/interest in id Technology.
|
||||
 [Creating Weapons](@ref NSWeapon)
|
||||
|
||||
It comes with a simple example game (simply referred to as 'Base') and some test maps. There's also some other, third-party example projects.
|
||||
 [Creating Items](@ref NSItem)
|
||||
|
||||
General feature overview:
|
||||
 [Writing Game Rules](@ref NSGameRules)
|
||||
|
||||
- The 'missing' SDK for engines like FTEQW
|
||||
- Support for client-side predicted movement, weaponry and vehicles
|
||||
- Documented APIs for everything you need to interface with the engine
|
||||
- APIs and Frameworks for managing updates, mods, servers, and platform specific features
|
||||
- Complete re-implementations of hundreds of entities, from GoldSrc/Source engine games
|
||||
- Entity communication via traditional one-way triggers, or our Source Engine I/O compatible system
|
||||
- Includes BotLib, a framework for multiplayer-AI that can receive game-specific overrides
|
||||
- Includes VGUILib, a re-imagining of Valve's GUI library, which can also be used for in-game surface based interfaces
|
||||
- Designed to be familar to developers coming from GoldSrc/Source
|
||||
- VR/XR aware codebase
|
||||
- All permissively licensed
|
||||
|
||||
### 1. Why might I want to use it? {#why}
|
||||
## Contributing
|
||||
|
||||
You might be migrating from an engine that is no longer being licensed and don't want to learn a new engine and toolchain.
|
||||
|
||||
You might want to develop a game using a lot of complex and well-tested objects
|
||||
which might be tedious to implement on your own.
|
||||
|
||||
You might want to run or make modifications for a game using Nuclide and need full
|
||||
control over what you can do.
|
||||
|
||||
### 2. How free is Nuclide? {#license}
|
||||
|
||||
Everything in Nuclide is **free software**. The copyright terms for the game-logic are
|
||||
very permitting. Nuclide *does not use the GPL* as a point of reference in terms of license, 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 are the alternatives? {#alternatives}
|
||||
|
||||
Implementing systems such as prediction, complex map objects and entities on
|
||||
your own, from scratch - or licensing another engine such as [Source](https://partner.steamgames.com/doc/sdk/uploading/distributing_source_engine) that ships with its own **Source SDK Base**.
|
||||
|
||||
### 4. Any example projects? {#examples}
|
||||
|
||||
- [The Wastes](https://store.steampowered.com/app/793670) is a commerical game built using Nuclide.
|
||||
- [FreeHL](https://www.github.com/eukara/freehl) is a free-software, clean-room clone of Half-Life: Deathmatch also built using Nuclide.
|
||||
- [FreeCS](https://www.github.com/eukara/freecs) exists in the same vein as FreeHL, but targetting a recreation of Counter-Strike v1.5 (mod version) specifically.
|
||||
|
||||
## Getting started {#prerequisites}
|
||||
|
||||
First of all, you want to be sure this is what you want to get into.
|
||||
If you do posess a basic knowledge of the following:
|
||||
|
||||
- The C programming language
|
||||
- Debugging a native application
|
||||
- Makefiles
|
||||
- Compiling your own binaries
|
||||
- Concept of public and private APIs
|
||||
- QuakeC
|
||||
|
||||
Then you will have a good time.
|
||||
We strive to keep the codebase portable and conform to open standards wherever possible.
|
||||
This means that if you develop on Windows, you probably want to install something like WSL or even [Cygwin](https://www.cygwin.com/) to make this bearable.
|
||||
|
||||
Please don't ask us how to use WSL or Cygwin. We do not provide support for either. We do not develop on Windows! Sorry.
|
||||
|
||||
**This is a development kit and a development environment. This is not a game.**
|
||||
|
||||
## Actually getting started {#how}
|
||||
|
||||
You clone the Nuclide git repository first. There's multiple places to get it, one such place may be GitHub:
|
||||
|
||||
`git clone https://github.com/veravisions/nuclide`
|
||||
|
||||
And then you can [get started on building the engine and the rest of the toolchain](Building.md). Alternatively, you can also move in the official FTEQW binaries into the Nuclide directory to get started without bootstrapping your own engine + QuakeC compiler.
|
||||
 You can contribute by filing bugs [here](https://www.github.com/veravisions/nuclide).
|
||||
|
|
17
Documentation/footer.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
<!-- HTML footer for doxygen 1.9.3-->
|
||||
<!-- start footer part -->
|
||||
<!--BEGIN GENERATE_TREEVIEW-->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
$navpath
|
||||
<li class="footer">2009-2024 (C) Nuclide is a project by <a href="https://www.vera-visions.com/">Vera Visions, L.L.C.</a> and is available under the <a href="LICENSE">ISC License</a>.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--END GENERATE_TREEVIEW-->
|
||||
<!--BEGIN !GENERATE_TREEVIEW-->
|
||||
<hr class="footer"/><address class="footer">
|
||||
2009-2024 (C) Nuclide is a project by <a href="https://www.vera-visions.com/">Vera Visions, L.L.C.</a> and is available under the <a href="LICENSE">ISC License</a>.
|
||||
</address>
|
||||
<!--END !GENERATE_TREEVIEW-->
|
||||
</body>
|
||||
</html>
|
11
Doxyfile
|
@ -244,7 +244,7 @@ SEPARATE_MEMBER_PAGES = NO
|
|||
# uses this value to replace tabs by spaces in code fragments.
|
||||
# Minimum value: 1, maximum value: 16, default value: 4.
|
||||
|
||||
TAB_SIZE = 8
|
||||
TAB_SIZE = 4
|
||||
|
||||
# This tag can be used to specify a number of aliases that act as commands in
|
||||
# the documentation. An alias has the form:
|
||||
|
@ -741,7 +741,7 @@ SHOW_USED_FILES = YES
|
|||
# (if specified).
|
||||
# The default value is: YES.
|
||||
|
||||
SHOW_FILES = YES
|
||||
SHOW_FILES = NO
|
||||
|
||||
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
|
||||
# page. This will remove the Namespaces entry from the Quick Index and from the
|
||||
|
@ -772,7 +772,7 @@ FILE_VERSION_FILTER =
|
|||
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
|
||||
# tag is left empty.
|
||||
|
||||
LAYOUT_FILE =
|
||||
LAYOUT_FILE = Documentation/DoxygenLayout.xml
|
||||
|
||||
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
|
||||
# the reference definitions. This must be a list of .bib files. The .bib
|
||||
|
@ -876,6 +876,8 @@ WARN_LOGFILE =
|
|||
|
||||
INPUT = src/ \
|
||||
Documentation/ReadMe.md \
|
||||
Documentation/About.md \
|
||||
Documentation/GettingStarted.md \
|
||||
Documentation/Building.md \
|
||||
Documentation/Dependencies.md \
|
||||
Documentation/Launching.md \
|
||||
|
@ -1016,6 +1018,7 @@ EXAMPLE_RECURSIVE = NO
|
|||
|
||||
IMAGE_PATH = Documentation/Materials/ \
|
||||
Documentation/Images/ \
|
||||
base/resources.pk3dir/gfx/icon16/
|
||||
|
||||
# The INPUT_FILTER tag can be used to specify a program that doxygen should
|
||||
# invoke to filter for each input file. Doxygen will invoke the filter program
|
||||
|
@ -1230,7 +1233,7 @@ HTML_HEADER =
|
|||
# that doxygen normally uses.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
HTML_FOOTER =
|
||||
HTML_FOOTER = Documentation/footer.html
|
||||
|
||||
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
|
||||
# sheet that is used by each HTML page. It can be used to fine-tune the look of
|
||||
|
|
10
Makefile
|
@ -2,6 +2,7 @@
|
|||
# Nuclide Makefile
|
||||
#
|
||||
# Apr 2024 by Marco Cawthorne <marco@vera-visions.com>
|
||||
# Last updated: 2024/10/12
|
||||
#
|
||||
|
||||
# set `GAME` when issuing make. E.g. `make GAME=wastes`
|
||||
|
@ -14,6 +15,8 @@ GAME_EXT=
|
|||
GAME_BINARY=$(NAME)_$(GAME_ARCH)$(GAME_EXT)
|
||||
GAMEDS_BINARY=$(NAME)DS_$(GAME_ARCH)$(GAME_EXT)
|
||||
|
||||
ENGINE_URL=https://www.github.com/fte-team/fteqw
|
||||
|
||||
# FTE specific builds
|
||||
ENGINE_ARCH=amd64
|
||||
ENGINE_CLBUILD=m-dbg
|
||||
|
@ -56,6 +59,7 @@ help:
|
|||
all: game engine dedicated plugins
|
||||
|
||||
game: fteqcc
|
||||
-cp src/cvar_defaults.cfg "$(GAME)/zpak001.pk3dir/default_cvar.cfg"
|
||||
cd "$(GAME)/src/" && $(MAKE) QCC=$(QCC_DIR)/../../fteqcc
|
||||
|
||||
client: fteqcc
|
||||
|
@ -148,6 +152,10 @@ clean-engine:
|
|||
cd ThirdParty/fteqw/engine && $(MAKE) clean
|
||||
-rm $(NAME)_x64$(GAME_EXT) $(NAME)_x86$(GAME_EXT) $(NAME)DS_x64$(GAME_EXT) $(NAME)DS_x86$(GAME_EXT) fteqw fteqw-sv
|
||||
|
||||
clean-fteqw:
|
||||
cd ThirdParty/fteqw/engine && $(MAKE) clean
|
||||
-rm fteqw fteqw-sv
|
||||
|
||||
clean-tools:
|
||||
cd Tools/vmap && $(MAKE) clean
|
||||
cd Tools/vvmtool && $(MAKE) clean
|
||||
|
@ -157,7 +165,7 @@ clean-tools:
|
|||
update:
|
||||
if [ -f ./.git/config ];then git pull;fi
|
||||
if [ -f $(GAME)/.git/config ];then cd $(GAME) && git pull;fi
|
||||
if [ ! -d ThirdParty/fteqw ];then git clone https://www.github.com/fte-team/fteqw ThirdParty/fteqw;else cd ./ThirdParty/fteqw && git pull;fi
|
||||
if [ ! -d ThirdParty/fteqw ];then git clone $(ENGINE_URL) ThirdParty/fteqw;else cd ./ThirdParty/fteqw && git pull;fi
|
||||
if [ ! -d Tools/vvmtool ];then git clone https://github.com/VeraVisions/vvmtool Tools/vvmtool;else cd ./Tools/vvmtool && git pull;fi
|
||||
if [ ! -d Tools/vmap ];then git clone https://github.com/VeraVisions/vmap Tools/vmap;else cd ./Tools/vmap && git pull;fi
|
||||
if [ ! -d Tools/worldspawn ];then git clone https://github.com/VeraVisions/worldspawn Tools/worldspawn;else cd ./Tools/worldspawn && git pull;fi
|
||||
|
|
|
@ -16,3 +16,8 @@ Run the engine in the root of this repository, after having issued `make progs G
|
|||
|
||||
You can build your own offline version of the online manual by running `doxygen` in the root of this repository. The output will be under **Documentation/html/index.html**.
|
||||
|
||||
# Credits
|
||||
|
||||
Silk Icons: https://github.com/markjames/famfamfam-silk-icons
|
||||
Flag Icons: https://github.com/markjames/famfamfam-flag-icons
|
||||
https://heyter.github.io/js-famfamfam-search/
|
|
@ -43,7 +43,7 @@
|
|||
#define USEAREAGRID /* leave it on, improves performance */
|
||||
#define AVAIL_DINPUT /* input for Windows */
|
||||
#define AVAIL_FREETYPE /* for truetype font rendering */
|
||||
#define AVAIL_STBI /* avoid libpng/libjpeg dependancies */
|
||||
#undef AVAIL_STBI /* avoid libpng/libjpeg dependancies */
|
||||
#define ENGINE_ROUTING /* engine-side, fast routing */
|
||||
|
||||
#ifndef LEGACY_GPU
|
||||
|
@ -140,8 +140,8 @@
|
|||
#undef HAVE_SPEEX /* .xz decompression */
|
||||
#undef AVAIL_GZDEC /* .gz decompression */
|
||||
#undef PACKAGE_DZIP /* .dzip special-case archive support */
|
||||
#undef AVAIL_PNGLIB /* .png image format support (read+screenshots) */
|
||||
#undef AVAIL_JPEGLIB /* .jpeg image format support (read+screenshots) */
|
||||
#define AVAIL_PNGLIB /* .png image format support (read+screenshots) */
|
||||
#define AVAIL_JPEGLIB /* .jpeg image format support (read+screenshots) */
|
||||
#undef AVAIL_MP3_ACM /* .mp3 support (in windows). */
|
||||
#undef IMAGEFMT_DDS
|
||||
#undef IMAGEFMT_PKM
|
||||
|
@ -192,8 +192,8 @@
|
|||
#undef IMAGEFMT_PSD
|
||||
#undef IMAGEFMT_XCF
|
||||
#undef IMAGEFMT_LMP
|
||||
#undef IMAGEFMT_PNG
|
||||
#undef IMAGEFMT_JPG
|
||||
#define IMAGEFMT_PNG
|
||||
#define IMAGEFMT_JPG
|
||||
#undef IMAGEFMT_GIF
|
||||
#undef IMAGEFMT_EXR
|
||||
#undef IPLOG
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
entityDef player
|
||||
{
|
||||
"spawnclass" "NSClientPlayer"
|
||||
"spawnclass" "NSClientPlayer"
|
||||
"model" "models/player.vvm"
|
||||
}
|
||||
|
||||
entityDef player_mp
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
// Standard Game Bindings
|
||||
// Feel free to modify them however you like
|
||||
exec default_cvar.cfg
|
||||
|
||||
// Clear all bindings...
|
||||
unbindall
|
||||
|
@ -17,10 +16,16 @@ bind MWHEELUP "weapprev"
|
|||
bind MWHEELDOWN "weapnext"
|
||||
|
||||
// Interact button
|
||||
bind e "+use"
|
||||
bind q "+leanleft"
|
||||
bind e "+leanright"
|
||||
bind f "+use"
|
||||
|
||||
// Flashlight button
|
||||
bind f "impulse 100"
|
||||
bind shift "+sprint"
|
||||
|
||||
set pm_walkspeed "190"
|
||||
set pm_runspeed "320"
|
||||
set pm_stepheight "18"
|
||||
set pm_airstepheight "18"
|
||||
|
||||
// Misc interface buttons
|
||||
bind t "messagemode"
|
||||
|
|
2
base/resources.pk3dir/fonts/centerprint.font
Normal file
|
@ -0,0 +1,2 @@
|
|||
path fonts/IBMPlexMono-Text.otf
|
||||
size 16
|
3
base/resources.pk3dir/gfx/flags16/CREDITS
Normal file
|
@ -0,0 +1,3 @@
|
|||
Flag Icons by Mark James <mjames@gmail.com>
|
||||
https://github.com/markjames/famfamfam-flag-icons
|
||||
http://www.famfamfam.com/lab/icons/flags/
|
BIN
base/resources.pk3dir/gfx/flags16/ad.png
Executable file
After Width: | Height: | Size: 643 B |
BIN
base/resources.pk3dir/gfx/flags16/ae.png
Executable file
After Width: | Height: | Size: 408 B |
BIN
base/resources.pk3dir/gfx/flags16/af.png
Executable file
After Width: | Height: | Size: 604 B |
BIN
base/resources.pk3dir/gfx/flags16/ag.png
Executable file
After Width: | Height: | Size: 591 B |
BIN
base/resources.pk3dir/gfx/flags16/ai.png
Executable file
After Width: | Height: | Size: 643 B |
BIN
base/resources.pk3dir/gfx/flags16/al.png
Executable file
After Width: | Height: | Size: 600 B |
BIN
base/resources.pk3dir/gfx/flags16/am.png
Executable file
After Width: | Height: | Size: 497 B |
BIN
base/resources.pk3dir/gfx/flags16/an.png
Executable file
After Width: | Height: | Size: 488 B |
BIN
base/resources.pk3dir/gfx/flags16/ao.png
Normal file
After Width: | Height: | Size: 428 B |
BIN
base/resources.pk3dir/gfx/flags16/ar.png
Executable file
After Width: | Height: | Size: 506 B |
BIN
base/resources.pk3dir/gfx/flags16/as.png
Executable file
After Width: | Height: | Size: 647 B |
BIN
base/resources.pk3dir/gfx/flags16/at.png
Executable file
After Width: | Height: | Size: 403 B |
BIN
base/resources.pk3dir/gfx/flags16/au.png
Executable file
After Width: | Height: | Size: 673 B |
BIN
base/resources.pk3dir/gfx/flags16/aw.png
Executable file
After Width: | Height: | Size: 524 B |
BIN
base/resources.pk3dir/gfx/flags16/ax.png
Executable file
After Width: | Height: | Size: 663 B |
BIN
base/resources.pk3dir/gfx/flags16/az.png
Executable file
After Width: | Height: | Size: 589 B |
BIN
base/resources.pk3dir/gfx/flags16/ba.png
Executable file
After Width: | Height: | Size: 593 B |
BIN
base/resources.pk3dir/gfx/flags16/bb.png
Executable file
After Width: | Height: | Size: 585 B |
BIN
base/resources.pk3dir/gfx/flags16/bd.png
Executable file
After Width: | Height: | Size: 504 B |
BIN
base/resources.pk3dir/gfx/flags16/be.png
Executable file
After Width: | Height: | Size: 449 B |
BIN
base/resources.pk3dir/gfx/flags16/bf.png
Executable file
After Width: | Height: | Size: 497 B |
BIN
base/resources.pk3dir/gfx/flags16/bg.png
Executable file
After Width: | Height: | Size: 462 B |
BIN
base/resources.pk3dir/gfx/flags16/bh.png
Executable file
After Width: | Height: | Size: 457 B |
BIN
base/resources.pk3dir/gfx/flags16/bi.png
Executable file
After Width: | Height: | Size: 675 B |
BIN
base/resources.pk3dir/gfx/flags16/bj.png
Executable file
After Width: | Height: | Size: 486 B |
BIN
base/resources.pk3dir/gfx/flags16/bm.png
Executable file
After Width: | Height: | Size: 611 B |
BIN
base/resources.pk3dir/gfx/flags16/bn.png
Executable file
After Width: | Height: | Size: 639 B |
BIN
base/resources.pk3dir/gfx/flags16/bo.png
Executable file
After Width: | Height: | Size: 500 B |
BIN
base/resources.pk3dir/gfx/flags16/br.png
Executable file
After Width: | Height: | Size: 593 B |
BIN
base/resources.pk3dir/gfx/flags16/bs.png
Executable file
After Width: | Height: | Size: 526 B |
BIN
base/resources.pk3dir/gfx/flags16/bt.png
Executable file
After Width: | Height: | Size: 631 B |
BIN
base/resources.pk3dir/gfx/flags16/bv.png
Executable file
After Width: | Height: | Size: 512 B |
BIN
base/resources.pk3dir/gfx/flags16/bw.png
Executable file
After Width: | Height: | Size: 443 B |
BIN
base/resources.pk3dir/gfx/flags16/by.png
Executable file
After Width: | Height: | Size: 514 B |
BIN
base/resources.pk3dir/gfx/flags16/bz.png
Executable file
After Width: | Height: | Size: 600 B |
BIN
base/resources.pk3dir/gfx/flags16/ca.png
Executable file
After Width: | Height: | Size: 628 B |
BIN
base/resources.pk3dir/gfx/flags16/catalonia.png
Normal file
After Width: | Height: | Size: 398 B |
BIN
base/resources.pk3dir/gfx/flags16/cc.png
Executable file
After Width: | Height: | Size: 625 B |
BIN
base/resources.pk3dir/gfx/flags16/cd.png
Normal file
After Width: | Height: | Size: 528 B |
BIN
base/resources.pk3dir/gfx/flags16/cf.png
Executable file
After Width: | Height: | Size: 614 B |
BIN
base/resources.pk3dir/gfx/flags16/cg.png
Executable file
After Width: | Height: | Size: 521 B |
BIN
base/resources.pk3dir/gfx/flags16/ch.png
Executable file
After Width: | Height: | Size: 367 B |
BIN
base/resources.pk3dir/gfx/flags16/ci.png
Executable file
After Width: | Height: | Size: 453 B |
BIN
base/resources.pk3dir/gfx/flags16/ck.png
Executable file
After Width: | Height: | Size: 586 B |
BIN
base/resources.pk3dir/gfx/flags16/cl.png
Executable file
After Width: | Height: | Size: 450 B |
BIN
base/resources.pk3dir/gfx/flags16/cm.png
Executable file
After Width: | Height: | Size: 525 B |
BIN
base/resources.pk3dir/gfx/flags16/cn.png
Executable file
After Width: | Height: | Size: 472 B |
BIN
base/resources.pk3dir/gfx/flags16/co.png
Executable file
After Width: | Height: | Size: 483 B |
BIN
base/resources.pk3dir/gfx/flags16/cr.png
Executable file
After Width: | Height: | Size: 477 B |
BIN
base/resources.pk3dir/gfx/flags16/cs.png
Executable file
After Width: | Height: | Size: 439 B |
BIN
base/resources.pk3dir/gfx/flags16/cu.png
Executable file
After Width: | Height: | Size: 563 B |
BIN
base/resources.pk3dir/gfx/flags16/cv.png
Executable file
After Width: | Height: | Size: 529 B |
BIN
base/resources.pk3dir/gfx/flags16/cx.png
Executable file
After Width: | Height: | Size: 608 B |
BIN
base/resources.pk3dir/gfx/flags16/cy.png
Executable file
After Width: | Height: | Size: 428 B |
BIN
base/resources.pk3dir/gfx/flags16/cz.png
Executable file
After Width: | Height: | Size: 476 B |
BIN
base/resources.pk3dir/gfx/flags16/de.png
Executable file
After Width: | Height: | Size: 545 B |
BIN
base/resources.pk3dir/gfx/flags16/dj.png
Executable file
After Width: | Height: | Size: 572 B |
BIN
base/resources.pk3dir/gfx/flags16/dk.png
Executable file
After Width: | Height: | Size: 495 B |
BIN
base/resources.pk3dir/gfx/flags16/dm.png
Executable file
After Width: | Height: | Size: 620 B |
BIN
base/resources.pk3dir/gfx/flags16/do.png
Executable file
After Width: | Height: | Size: 508 B |
BIN
base/resources.pk3dir/gfx/flags16/dz.png
Executable file
After Width: | Height: | Size: 582 B |
BIN
base/resources.pk3dir/gfx/flags16/ec.png
Executable file
After Width: | Height: | Size: 500 B |
BIN
base/resources.pk3dir/gfx/flags16/ee.png
Executable file
After Width: | Height: | Size: 429 B |
BIN
base/resources.pk3dir/gfx/flags16/eg.png
Executable file
After Width: | Height: | Size: 465 B |
BIN
base/resources.pk3dir/gfx/flags16/eh.png
Executable file
After Width: | Height: | Size: 508 B |
BIN
base/resources.pk3dir/gfx/flags16/england.png
Executable file
After Width: | Height: | Size: 496 B |
BIN
base/resources.pk3dir/gfx/flags16/er.png
Executable file
After Width: | Height: | Size: 653 B |
BIN
base/resources.pk3dir/gfx/flags16/es.png
Executable file
After Width: | Height: | Size: 469 B |
BIN
base/resources.pk3dir/gfx/flags16/et.png
Executable file
After Width: | Height: | Size: 592 B |
BIN
base/resources.pk3dir/gfx/flags16/europeanunion.png
Normal file
After Width: | Height: | Size: 479 B |
BIN
base/resources.pk3dir/gfx/flags16/fam.png
Executable file
After Width: | Height: | Size: 532 B |
BIN
base/resources.pk3dir/gfx/flags16/fi.png
Executable file
After Width: | Height: | Size: 489 B |
BIN
base/resources.pk3dir/gfx/flags16/fj.png
Executable file
After Width: | Height: | Size: 610 B |
BIN
base/resources.pk3dir/gfx/flags16/fk.png
Executable file
After Width: | Height: | Size: 648 B |
BIN
base/resources.pk3dir/gfx/flags16/fm.png
Executable file
After Width: | Height: | Size: 552 B |
BIN
base/resources.pk3dir/gfx/flags16/fo.png
Executable file
After Width: | Height: | Size: 474 B |
BIN
base/resources.pk3dir/gfx/flags16/fr.png
Executable file
After Width: | Height: | Size: 545 B |
BIN
base/resources.pk3dir/gfx/flags16/ga.png
Executable file
After Width: | Height: | Size: 489 B |
BIN
base/resources.pk3dir/gfx/flags16/gb.png
Normal file
After Width: | Height: | Size: 599 B |
BIN
base/resources.pk3dir/gfx/flags16/gd.png
Executable file
After Width: | Height: | Size: 637 B |
BIN
base/resources.pk3dir/gfx/flags16/ge.png
Executable file
After Width: | Height: | Size: 594 B |
BIN
base/resources.pk3dir/gfx/flags16/gf.png
Executable file
After Width: | Height: | Size: 545 B |
BIN
base/resources.pk3dir/gfx/flags16/gh.png
Executable file
After Width: | Height: | Size: 490 B |