CE1 (CryEngine 1)

September 21, 2024 ยท View on GitHub

Project aims to bring CryEngine 1 to modern systems, improve overall stability, add QoL changes while maintaining compatibility with Far Cry.

Key changes

  • Using Premake5 for project files generation
  • Converted code to build with Visual Studio 2022 and GCC
  • Enabled C++17, removed legacy stuff
  • Sandbox Editor runs on latest MFC
  • Multiple buffer overflows found and fixed with ASAN
  • SDL2 for handling window and input
  • Code file structure cleanup
  • crysound replaced with FMOD, since it's the same thing
  • Bink & DivX replaced with FFMpeg
  • Updated Cg to 3.1

Compatibilty changes

  • CrySystem - HTTPDownloader.cpp: commented 309-310 lines
  • CryNetwork - Disabled ubisoft nerwork code

Future work TODO

  • Fix original bugs
  • Bring multi-threading
  • Optimize loading times
  • Merge some bits of code from more recent CryEngine versions
  • Support for importing FBX to use as static and skinned objects
  • Replace FMOD 3.74 with OpenAL
  • Replace nvTriStrip with meshoptimizer
  • Replace nvDXT with nvtt
  • Rewrite renderers and get rid of obsolete hardware support
  • Remove x86 assembly code
  • Remove custom data structures like TArray, list2, etc and replace with eastl or e2ds (Eq2 Engine Data Structures)
  • Cross platform compiling and running

This project is intended for educational and non-commercial purposes only.

Based on source code published 24 june 2023. https://archive.org/details/far-cry-1.34-complete