Xray 16

Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

Open for everyone

OpenXRay

OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

Goals
  1. Make it a drop-in replacement for original engine.
    1. 100% compatibility and same behaviour.
    2. Compile engine into a single executable file that you can just drop into bin folder. (see #210)
  2. Support all three games in the series: SOC/CS/COP. (see Supported games below)
  3. Fix original S.T.A.L.K.E.R. series bugs.
  4. Introduce a solid platform for modmakers:
    1. Add frame/render graph for those who want to add new graphics features.
    2. Improve performance via refactoring the code, parallelizing the engine, making it multithreaded.
    3. Add new scripting, development and debugging features.
  5. Clean up engine code, make it easily portable to new platforms, minimize platform-specific code.
  6. Enhance player's experience with new graphics, gameplay and other features that can be enabled optionally. (by default, we stay close to vanilla)
Main differences from original X-Ray are:
  • Support for 64-bit.
  • Support for ARM, ARM64, E2K (Elbrus 2000).
  • Works on Linux, macOS, OSL (Elbrus OS).
  • New OpenGL renderer. (currently, requires OpenGL 4.1 minimum, lowering to at least OpenGL 3.3 is planned)
  • Improved performance, better FPS.
  • Original bugs fixes.
  • New features for modmakers.
  • Gamepad support. (not yet finished, but you can try already, see #943)

You can see the detailed differences table here

Supported games

OpenXRay is based on X-Ray 1.6.02, used in S.T.A.L.K.E.R.: Call of Pripyat, so initially it supported only this game.
Currently, we are working on support for all three games in the series. |Call of Pripyat|Clear Sky|Shadow of Chernobyl| |---|---|---| |Yes|Beta (see #382)| Not supported yet (see #392)|

Documentation:

Make sure to visit our wiki. |How to||| |---|---|---| |Build and setup|On Windows|On Linux| |Install and play|On Windows|-|

Build status

CI Platform Compiler Configurations Platforms Status
AppVeyor Windows, Ubuntu MSVC, GCC Debug, Mixed, Release, Release Master Gold x64, x86 AppVeyor Build status
GitHub Actions Windows, Ubuntu, Alpine Linux, macOS MSVC, GCC, Clang Debug, Mixed, Release, Release Master Gold x64, x86 GitHub Actions Build Status
Travis Ubuntu GCC Debug, Release ARM64 Travis Build Status

Contributing

All contributions are more than welcomed. There are several ways how you can contribute:

Community

Discord

Play and enjoy the game, file an Issue when you encounter any bugs, or you have an enhancement request.

Join us on our Discord, subscribe to our YouTube channel, join our VK group, leave a comment, put a like and communicate there!
Also you can put a star on this repository :)

Development

Contributors

Join our efforts in making our beloved game better, send pull requests, participate in discussions and code reviews!

It is a place to share ideas on what to implement, gather people that want to work on the engine, and work on the source code. However, the following things should be taken into consideration:

  • We want to keep the game close to the vanilla, untouched state, so if you want to introduce new gameplay features, make sure it is optional, doesn't break compatibility with original game resources (i.e. everything in gamedata folder and .db*/.xdb archives). You also may want to add non-gameplay features, fix bugs or improve engine performance and code quality.
  • Major changes should be discussed before implementation.
  • Follow the procedures.

Take a look at our Issues page:

  • See issues labeled as good first issue to get familiar with the engine code in practice.
  • You may also want to look at issues labeled as help wanted. Some of them are difficult ones, though.

The dev branch is the default and base branch for the project. It is used for development and all Pull Requests should go there. But, be aware that this branch, sometimes, may be broken and, rarely, we can do force pushes to this branch.

Be advised that this is a community project not sanctioned by GSC Game World in any way and they remain the copyright holders of all the original source code and S.T.A.L.K.E.R. franchise.
However, they know about many community projects, including this, and support the S.T.A.L.K.E.R. community efforts to make the game better.

Funding

Financial Contributors Sponsors Patreon

You may provide financial support for this project by donating via Boosty, GitHub Sponsors, Patreon or Open Collective.
Thank you for your support!

Thanks

  • GSC Game World for creating S.T.A.L.K.E.R. and supporting the community;
  • Loxotron for making the engine sources available;
  • All the OpenXRay contributors for making the project better.
    • The first OpenXRay team (2014-2017) for being at the origins of the project.
      • nitrocaster original project founder.
      • Kaffeine initial work on the Linux port, refactoring, polishing.
      • Armada651 creation of the OpenGL renderer, work on the build system, other project maintenance work.
      • andrew-boyarshin work on the build system.
      • Swartz27 work on renderer features.
      • awdavies project maintenance work.
    • The second OpenXRay team (2017-now) for continuing work on the project.
      • Xottab_DUTY current project leader.
      • intorr work on the project quality. (memory leaks, refactoring, optimizations)
      • eagleivg main part of the work on Linux port.
      • q4a main part of the work on Linux port.
      • SkyLoader OpenGL renderer improvements and polishing, other project work.
      • qweasdd136963 supporting the OXR_COC project, other project work on new features, refactoring and bug fixing.
      • JohnDoe_71Rus our regular tester.
      • Chip_exe work on Linux port, maintaining AUR package, our regular tester.
      • a1batross work on Linux port.
      • The Sin! new features, refactoring, bug fixing polishing.
      • Zegeri work on Linux port, code quality, fixes, polishing.
      • drug007 work on Linux port.
      • vTurbine work on renderer unification, refactoring, polishing.
      • Zigatun work on ARM port.
      • Masterkatze work on the build system, bug fixing.
    • Other contributors:
      • NeoAnomaly for help with debug functionality on Windows.
      • RainbowZerg for work on the renderer features, bug fixing.
      • FozeSt for help with some fixes and features.
      • mrnotbadguy for work on gamepads support and bug fixing.
      • ZeeWanderer for work on the build system.
      • GeorgeIvlev for work on the build system, bug fixing.
      • Plotja for work on portability, polishing.
      • dimhotepus for work on code quality.
      • Chugunov Roman for work on extending functionality for modmakers.
      • Vertver for work on macOS support.
      • Lnd-stoL for work on macOS support.
  • Particular projects:
    • Oxygen for being our friends and giving tips and help with new features, optimizations, bug fixes, etc.
    • Shoker Weapon Mod and Shoker for contributing new features, bug fixing.
    • Im-Dex for the work on the engine.
    • OGSR for amazing work on Shadow of Chernobyl.
    • Call of Chernobyl and its contributors for useful new features, bug fixes and optimizations.
    • Lost Alpha for their effort on restoring the old game concept.
    • Lost Alpha DC for continuing work on Lost Alpha.
  • Individuals:
    • tamlin-mike for work on the build system.
    • Vincent for work on the Linux port.
    • abramcumner for useful fixes and additions.
    • Morrey for work on Clear Sky support and his Return to Clear Sky mod.
  • Companies:

If your work is being used in our project and you are not mentioned here or in the contributors page, please, write to us and we will add you. Or send us a pull request with you added to this list ;)