This repository contains source code of Jenova Runtime for Godot Engine and It's a part of Projekt J.E.N.O.V.A
Projekt J.E.N.O.V.A is a comprehensive collection of modular components for the Godot Engine, designed to deliver major enhancements and break through the limitations of current development workflows. By bringing fully-featured C++ scripting directly into the Godot Editor, it enables the use of modern C++20/C++23 standards within Godot in a manner similar to GDScript.
Jenova Framework empowers developers to build entire games or applications natively in C/C++ with ease and stability. It supports seamless integration of cutting-edge technologies and allowing direct integration of OpenCV, CUDA, Vulkan, OpenMP and any other modern C++ features seamlessly, All supported by the powerful backend.
For more information and to view the full feature list, check out the details here.
This repository contains the full source code of Jenova Runtime, a full-featured scripting backend with a wide range of capabilities including a Build System, Compiler Interface, Script Objects, Script Language, Script Instances, Script Interpreter and more.
- If you want to report an issue or bug create a new thread at Issues.
- If you have any questions you can create a new thread at Discussions.
- More details on the build process can be found at Documentation.
Jenova Core has following dependencies :
- AsmJIT
- LibArchive
- LibLZMA
- LibCurl
- LibFastZLib
- LibTinyCC
- LibPThread
- JSON++
- FileWatch
- ArgParse++
- Base64++
Important
- Edit base64.hpp namespace to
base64 - Only header file
libtcc.his required from TinyCC beside static library - In FileWatch.hpp change
_callback(file.first, file.second);to_callback(_path + "/" + file.first, file.second); - By using Jenova Builder, All the dependencies are downloaded, manipulated and compiled automatically.
Building fully-featured Jenova Runtime for Windows x64 requires Visual Studio 2022 with C++20 Support.
For Windows, Jenova Framework provides a massive compiler collection including all standard compilers :
- Microsoft Visual C++ (msvc)
- Microsoft Visual C++ LLVM (clang-cl)
- LLVM Clang (clang/clang++)
- Minimalist GNU for Windows (gcc/g++)
You can use Jenova Builder to build Jenova Runtime for Windows using GigaChad Toolchain. Everything is automated and all dependencies will be compiled by Jenova Builder. The compiled dependencies from Jenova Builder can be used in Visual Studio as well.
# Running Builder
python3 ./Jenova.Builder.py
# Build using MSVC
python3 ./Jenova.Builder.py --compiler win-msvc --skip-banner
# Build using MSVC LLVM
python3 ./Jenova.Builder.py --compiler win-clangcl --skip-banner
# Build using MinGW Clang
python3 ./Jenova.Builder.py --compiler win-clang --skip-banner
# Build using MinGW GCC
python3 ./Jenova.Builder.py --compiler win-gcc --skip-bannerThe toolchain is only 150MB and contains all compiler toolchains All-in-One. You don't need to install anything extra, including Visual Studio.
Note : Using Jenova Builder with
win-msvcalso compiles a fully-featured Jenova Runtime. It serves as an alternative to Visual Studio 2022 with C++20.
Building Jenova Runtime for Linux x64 can be done using Jenova Builder. To build using Jenova Builder, Install Python 3 and then use the following commands from VSCode or Terminal:
# Running Builder
python3 ./Jenova.Builder.py
# Build using Clang++
python3 ./Jenova.Builder.py --compiler linux-clang --skip-banner
# Build using G++
python3 ./Jenova.Builder.py --compiler linux-gcc --skip-bannerJenova Runtime source code is fully compatible with both Clang++ (18+) and G++ (13+). Additionally, Visual Studio Code compatibility files are provided.
Note : Code::Blocks project files have been deprecated and removed following the significant update to Jenova Builder.
Before using Jenova Builder you need to install following prerequisites on both Windows and Linux.
- Python (3.10+)
- CMake (3.20+)
- Ninja (1.11+)
Additionally, the following Python packages are required for Builder :
pip install requests py7zr coloredFull information and a detailed usage guide for the build system can be found here.
While the public source code of Jenova is ~90% identical to the proprietary version, a few specific features have been removed or disabled.
-
Jenova Emulator Connector is removed and will be made available later as an addon in the Package Manager.
-
A.K.I.R.A JIT is removed from the public source code. This component was responsible for executing obfuscated code using a proprietary highly secured VM.
-
Code Encryption and Key System has been omitted from the public version to protect critical proprietary algorithms. However, Code Compression is fully included, Developers can add their own encryption on top of the existing buffering system.
-
Jenova Code Virtualizer/Sandbox removed due to reliance on the proprietary SecureAngel™ 2.0 technology.
Jenova Proprietary version includes only Microsoft Visual C++ (MSVC) and Microsoft LLVM Clang (Clang-cl) compilers and is compatible only with Windows. Open-Source version, however, is fully ported to Linux and includes support for MSVC, Clang-cl, MinGW GCC and LLVM on Windows as well as GCC and LLVM Clang on Linux.
Important
Runtime proprietary version is no longer available for public access. Open-Source version will continue to receive all future updates from the proprietary version, except those related to security features.
Developed & Designed By Hamid.Memar (MemarDesign™ LLC.)
