Giter Site home page Giter Site logo

tsiren / ete Goto Github PK

View Code? Open in Web Editor NEW

This project forked from etfdevs/ete

0.0 2.0 0.0 27.83 MB

Improved Wolfenstein: Enemy Territory Engine

License: GNU General Public License v3.0

C 68.39% Objective-C 0.03% Python 3.09% C++ 1.73% Makefile 14.03% M4 1.90% Shell 3.71% Batchfile 0.15% Roff 3.97% HTML 0.01% Awk 0.01% DIGITAL Command Language 0.70% Perl 1.66% CMake 0.28% D 0.25% DTrace 0.01% VBScript 0.05% Raku 0.02% Assembly 0.01%

ete's Introduction

ETe

build * Discord server

This is a modern Wolfenstein: Enemy Territory engine aimed to be fast, secure and compatible with many existing ET mods and etmain. It is based on the Quake3e engine which itself is based on the last non-SDL source dump of ioquake3 with latest upstream fixes applied. Several common fixes from upstream ET:Legacy also are applied as needed for security.

Go to Releases section to download latest binaries for your platform or follow Build Instructions.

Notes: Skip the ete-etmain-mod-replacement-allplatform.zip unless you know what you are doing. You will want ete-docs.zip and ete-platform-name.zip when downloading prebuilt packages. 64-bit (x86_64) platforms are unstable currently with bugs that do not exist under 32-bit platforms.

This repository does not contain any game content, so in order to play you must copy the resulting binaries into your existing Wolfenstein: Enemy Territory installation

Key features:

  • optimized OpenGL renderer
  • optimized Vulkan renderer NOT YET
  • raw mouse input support, enabled automatically instead of DirectInput(\in_mouse 1) if available
  • unlagged mouse events processing, can be reverted by setting \in_lagged 1
  • \in_minimize - hotkey for minimize/restore main window (win32-only, direct replacement for Q3Minimizer)
  • \video-pipe - to use external ffmpeg binary as an encoder for better quality and smaller output files
  • improved server-side DoS protection, much reduced memory usage
  • raised filesystem limits (up to 20,000 maps can be handled in a single directory)
  • reworked Zone memory allocator, no more out-of-memory errors
  • non-intrusive support for SDL2 backend (video,audio,input), selectable at compile time for *nix via CMake
  • tons of bug fixes and other improvements
  • basic Discord Rich Presence support (win32-only currently, linux support to follow when 64-bit support is ready)

Vulkan renderer

NOT YET AVAILABLE

OpenGL renderer

Based on classic OpenGL renderers from idq3/sdet/ioquake3/cnq3/openarena, features:

  • OpenGL 1.1 compatible, uses features from newer versions whenever available
  • high-quality per-pixel dynamic lighting, can be triggered by \r_dlightMode cvar
  • merged lightmaps (atlases)
  • static world surfaces cached in VBO (\r_vbo 1)
  • offscreen rendering, enabled with \r_fbo 1, all following requires it enabled:
  • screenMap texture rendering - to create realistic environment reflections
  • multisample anti-aliasing (\r_ext_multisample)
  • supersample anti-aliasing (\r_ext_supersample)
  • per-window gamma-correction which is important for screen-capture tools like OBS
  • you can minimize game window any time during \video|\video-pipe recording
  • high dynamic range render targets (\r_hdr 1) to avoid color banding
  • bloom post-processing effect
  • arbitrary resolution rendering
  • greyscale mode

Performance is usually greater or equal to other opengl1 renderers

OpenGL2 renderer

Original ioquake3 renderer, not available and unlikely to be ported

Missing ioquake3 features

  • OpenAL(-soft) support
  • VoIP support (probably never going to add since Discord etc)
  • Extra sound codecs like ogg and opus

Build Instructions

windows/msvc

Install Visual Studio Community Edition 2017 or later and compile all projects from solution

src/wolf.sln

Default settings are using Visual Studio 2017 with XP compatible toolset

Only 32-bit binaries compatible until 64-bit mods become available and a 64-bit etmain is available

Copy resulting exe from src/[Debug|Release] directory and src/ded/[Debug|Release] directory

To compile with Vulkan backend - clean solution, right click on wolf project, find Project Dependencies and select renderervk instead of renderer


windows/mingw

TODO

All build dependencies (libraries, headers) are bundled-in

Build with either make ARCH=x86 or make ARCH=x86_64 commands depending from your target system, then copy resulting binaries from created build directory or use command:

make install DESTDIR=<path_to_game_files>


linux/bsd

CMake is required to generate make files for this project under *nix

Debian or Arch based distros:

cd src
./linux_build.sh

Build artifacts ete.x86 and ete-ded.x86 are then found under the build directory.

Only 32-bit binaries compatible until 64-bit mods become available and a 64-bit etmain is available

The provided 32-bit cross compile toolchain is provided on this repository.

Several options available for linux builds with CMake:

BUILD_CLIENT=ON - build unified client/server executable, enabled by default

BUILD_DEDSERVER=ON - build dedicated server executable, enabled by default

USE_SDL2=ON - use SDL2 backend for video, audio, input subsystems

USE_SYSTEM_JPEG=ON - use current system JPEG-turbo library, enabled by default


raspbery pi os

TODO


macOS

  • install the official SDL2 framework to /Library/Frameworks
  • build should work similarly to linux/bsd section
  • aarch64 compilation not tested at all due to lack of device or Github Action support
  • Need testers and someone to help finish supporting the ET mac filesystem differences with regards to packaging and handling of mod binaries
  • Probably will skip PPC support but 32/64/aarch64 separate and universal would be ideal.

Contacts

Discord channel: https://discordapp.com/invite/hsDQVby

Links

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.