88 lines
No EOL
4.5 KiB
Markdown
88 lines
No EOL
4.5 KiB
Markdown
# Overview
|
|
|
|
Welcome to the documentation for Nuclide!
|
|
|
|
This is a software development kit (SDK) 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.
|
|
|
|
## What this project is {#what}
|
|
|
|
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.
|
|
|
|
**The general idea is that Nuclide takes care of ~90% of the code you shouldn't have to worry about.**
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
### 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.
|
|
- [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.
|
|
|
|
**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. |