GithubHelp home page GithubHelp logo

xonotic / darkplaces Goto Github PK

View Code? Open in Web Editor NEW
174.0 24.0 40.0 50.9 MB

Mirror of https://gitlab.com/xonotic/darkplaces - The Quake engine that powers Xonotic https://xonotic.org

Home Page: https://icculus.org/twilight/darkplaces/

License: GNU General Public License v2.0

Shell 0.10% C 99.41% Perl 0.12% Makefile 0.16% BitBake 0.21%
game-engine 3d-engine darkplaces darkplaces-engine quake game-development fps-engine

darkplaces's Introduction

DarkPlaces Engine

DarkPlaces is a game engine based on the Quake 1 engine by id Software. It improves and builds upon the original 1996 engine by adding modern rendering features, and expanding upon the engine's native game code language QuakeC, as well as supporting additional map and model formats.

Developed by LadyHavoc. See CREDITS for a list of contributors.

Help/support

IRC

#darkplaces on irc.anynet.org

#darkplaces:matrix.org

Downloading and running

Linux x86_64 builds are available in GitHub CI artifacts.

More complete builds are available in xonotic.org engine zips.
These support Windows, Linux and macOS, and include the current libraries needed for all features.

DarkPlaces supports many Quake-based games and you can select which it will run by renaming the executable so it's prefixed with the game's name, for example rogue-sdl.exe, or by passing a cmdline argument
such as -rogue. This changes various engine behaviours and cvar defaults to suit the game.
The supported list and related details are defined in com_game.c.

Mods which aren't listed there can be run with (for example) -game quake15 in which case DP will use the same behaviours and cvar defaults as for id1 Quake.

Quake Virtual File System

All of Quake's data access is through a hierarchical file system, the contents of the file system can be transparently merged from several sources.

The "base directory" is the path to the directory holding the quake.exe and all game directories. This can be overridden with the "-basedir" command line parm to allow code debugging in a different directory. The base directory is only used during filesystem initialization.

The "game directory" is the first tree on the search path and directory that all generated files (savegames, screenshots, demos, config files) will be saved to. This can be overridden with the "-game" command line parameter. If multiple "-game " args are passed the last one is the "primary" and files will be saved there, the rest are read-only.

Build instructions (WIP)

These instructions are adequate for Quake, but for Xonotic please refer to its wiki.

Required packages

The minimum SDL version is 2.0.18 for Linux and 2.24.0 for Windows.
The supported compilers are GCC and Clang.
The following package names are for Debian, see below for Windows and Mac.

Client

Build (mandatory): build-essential libjpeg-dev libsdl2-dev
Runtime (optional): libcurl libpng libfreetype6 libvorbisfile

Dedicated Server

Build (mandatory): build-essential libjpeg-dev zlib1g-dev
Runtime (optional): libcurl libpng

Windows (MSYS2 MinGW):

  1. Install MSYS2, found here.
  2. Once you've installed MSYS2 and have fully updated it, open a MinGW64 terminal (not an MSYS2 terminal) and input the following command:
pacman -S --needed gcc make mingw-w64-x86_64-{toolchain,libjpeg-turbo,libpng,libogg,libvorbis,SDL2}
  1. See Unix instructions.

macOS

  1. Open a terminal and input xcode-select --install
  2. Install Homebrew
  3. In the same (or a different terminal), input the following command:
brew install sdl2 libjpeg-turbo libpng libvorbis curl
  1. See Unix instructions.

Unix (General)

From a terminal, in the engine's root directory, input make help to list the targets.
To build the main executable, input make sdl-release which creates the file called
darkplaces-sdl or darkplaces-sdl.exe (Windows).

If you get errors (that don't seem to be about missing dependencies) try make clean before compiling, especially if you updated your system since the last time you compiled.

Windows (Visual Studio 2019)

Not recommended due to poor support for C standards, and lack of maintenance.

DarkPlaces requires C11, so Windows SDK 10.0.20348.0 or later is needed.
To install it, run the Visual Studio Installer, click "Modify", click "Individual components", type "Windows SDK" in the search box, select the latest Windows SDK and de-select older versions.
You will also need "NuGet package manager" selected (to download SDL2 headers the first time you build). Click "Modify" to apply the changes.

Open darkplaces-vs2019.sln, select build type (Debug or Release) and platform (Win32 or x64), and choose "Build Solution" from the "Build" menu to create files darkplaces-sdl2-vs2019.exe and SDL2.dll.

The Release build crashes. The Debug x64 build doesn't crash (but is rather slow) so this will be Fun for someone to debug.

To get a build suitable for playing you'll need to use MinGW GCC, or download the autobuild from Xonotic (see above).

Contributing

DarkPlaces Contributing Guidelines

Documentation

Doxygen: https://xonotic.org/doxygen/darkplaces

darkplaces's People

Contributors

anengineer1 avatar bones-was-here avatar cloudwalk9 avatar daftmugi avatar divverent avatar drjaska avatar garymoon avatar hemebond avatar kiwixz avatar ladyhavoc avatar legendaryguard avatar mariosmb avatar mjunix avatar naitlee avatar terencehill avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.