GithubHelp home page GithubHelp logo

kabeech / eternity Goto Github PK

View Code? Open in Web Editor NEW

This project forked from team-eternity/eternity

0.0 0.0 0.0 41.4 MB

The Eternity Engine

Home Page: http://eternity.youfailit.net/wiki/Main_Page

License: GNU General Public License v3.0

Shell 3.39% C++ 61.22% Python 0.03% Perl 0.03% C 29.27% Objective-C 0.66% Assembly 0.07% Awk 0.33% Pawn 0.12% SourcePawn 0.09% Makefile 1.14% CMake 1.09% Batchfile 0.03% DIGITAL Command Language 0.28% Module Management System 0.02% M4 0.15% Dockerfile 0.01% Roff 2.09%

eternity's Introduction

The Eternity Engine

Eternity is an advanced DOOM source port maintained by James “Quasar” Haley, descended from Simon “fraggle” Howard’s SMMU. It has a whole host of advanced features for editors and players alike, including:

  • ACS, including many of ZDoom’s enhancements

  • EDF, Eternity Definition File, a language to define and modify monsters, decorations, sounds, text strings, menus, terrain types, and other kinds of data.

  • ENDOOM and animated startup screen support.

  • High-resolution support (practically unlimited).

  • Support for Master Levels and No Rest for the Living, allowing to play them without command line options.

  • Portals which can be used to create skyboxes and fake 3D architecture. Linked portal allow objects to pass through them, as well.

  • PNG support

  • Aided with SDL 2, Eternity is very portable and runs on a large range of operating systems: Windows (confirmed as low as XP, and all the way through Windows 10), Linux, Mac OS X, FreeBSD, OpenBSD, and more.

  • Heretic, Hexen, and Strife support in-progress.

For more on its features, check out the Eternity Engine Wiki.

Eternity Engine is maintained using the Git version control system, and the canonical source of the repository is available at GitHub.

Compiling

There are four ways available for building Eternity: CMake, Visual Studio, Xcode files, and Homebrew, for Unix, Windows, and both Mac OS X respectively.

Git submodule

The project contains the ADLMIDI submodule. You need to load it after you’ve just cloned Eternity, by using this command:

git submodule update --init

Building with CMake (Unix OSes and Visual Studio 2017+)

CMake should be capable of generating build files for all platforms, but it is most commonly used only for Unix OSes and Windows, and not thoroughly tested outside of it.

  1. If you haven’t already, extract the source *.zip file or clone the Git repository, in the top-level directory you should see a CMakeLists.txt file. You should be in this directory.

  2. Create a new empty directory and change to it, eg: mkdir build followed by cd build. You cannot do an in-tree build.

  3. If using Visual Studio make sure that you have installed the MFC and ATL components for whatever version you are using.

  4. Run CMake. Usually you will want to run cmake .., but you might want to change the generator with a special command, for example:

    cmake .. -G "Unix Makefiles"
    cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=C:\sdk\x64 -G "NMake Makefiles"
    cmake .. -DCMAKE_BUILD_TYPE=MinSizRel -G "Visual Studio 15 2017 Win64"
    cmake .. -G "Visual Studio 16 2019" -A "x64"
  5. Run your build tool. On Unix, you probably want to just run make.

As an optional final step, you can create a binary installation package with CPack. For Windows, it will collect all the needed runtime libraries and bundle it with the Eternity engine. Some examples:

cpack -G ZIP
cpack -G DEB
cpack -G RPM
cpack -G STGZ

Building with CMake (macOS Xcode)

You need Mac OS X 10.15 or more to run Eternity.

For macOS, currently only the Xcode generator is supported.

cmake .. -G Xcode

Or preferably use the CMake GUI app.

After that, open "Eternity Engine.xcodeproj". Inside it you’ll have two targets of interest:

  1. eternity: the direct game executable. Suitable for debugging the main game.

  2. EternityLauncher: the full app bundle. Suitable for release builds.

NOTE 1: CPack isn’t currently supported on macOS for Eternity. Use the Xcode IDE to produce a distributable app bundle.

NOTE 2: As of now, all SDL dependencies are downloaded during the CMake configuration process. Eternity will not link to whatever you may have installed to a central location from Homebrew, other package managers or source-built.

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.