Skip to content

Jenova Runtime is an extension library for the Godot 4 Game Engine that brings fully-featured C++ scripting directly into the Godot Editor.

License

Notifications You must be signed in to change notification settings

Jenova-Framework/Jenova-Runtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projekt J.E.N.O.V.A :: Jenova Runtime (Core)

This repository contains source code of Jenova Runtime developed for Godot 4 and It's a part of Projekt J.E.N.O.V.A

image

Jenova Runtime (Windows-x64) Jenova Runtime (Linux-64)

Overview

Projekt J.E.N.O.V.A is a comprehensive series of extension libraries for the Godot 4 Game Engine that brings fully-featured C++ scripting directly into the Godot Editor. It allows the use of modern C++20 standards within the Godot Engine similar to GDScript.

By using Jenova Framework you can easily program your entire game or application in C/C++ without any issues. You can also integrate OpenCV, CUDA, Vulkan, OpenMP and any other modern C++ features seamlessly, All supported by the powerful backend.

Structure of Projekt J.E.N.O.V.A

  • Jenova Framework: The framework contains Jenova Runtime and JenovaSDK.
  • Jenova Runtime (Core): The heart of the framework, It includes the Jenova Interpreter, Jenova Compiler Interface, Jenova Packer etc.
  • JenovaSDK: An optional component of Jenova Runtime, providing helpers and APIs for hot-reloading, global allocation/access, etc.

Full feature list can be found here.

Issue/Bug Reports and Questions

  • 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.

Dependencies

Jenova Core has following dependencies :

Important

  • Edit base64.hpp namespace to base64
  • Only header file libtcc.h is 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.

Build Systems

Windows x64

Building fully-featured Jenova Runtime for Windows x64 requires Visual Studio 2022 with C++20 Support.

Proprietary Pre-built Windows x64 binaries can be obtained from here. (Not Available After v0.3.6.0)

Tip

If you want to use pre-built dependencies to build Jenova Runtime on Windows x64 you may need to build libVSWhere and libTinyCC libraries yourself as these libraries must match your compiler's exact version. Check the Windows x64 Workflow for more details.

Using GigaChad Toolchain

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.

# 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-banner

The toolchain is only 200MB and contains all compiler toolchains All-in-One. You don't need to install anything extra, including Visual Studio.

Linux x64

Building Jenova Runtime for Linux x64 can be done through Code::Blocks or Jenova Builder. To build with Code::Blocks, simply open Jenova.workspace and build. 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-banner

Jenova Runtime source code is fully compatible with both Clang++ (18+) and G++ (13+). Additionally, Visual Studio Code compatibility files are provided.

Builder Prerequisites

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 colored

Open Source vs Proprietary

While the public source code of Jenova is ~90% identical to the proprietary version, a few specific features have been removed or disabled.

These changes include :

  • Jenova Emulator Connector is provided in full source code but parts of the integration code for proprietary emulators have been removed. It remains functional if connected to another emulator module.

  • 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.

Cross-Platform

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 MinGW GCC and LLVM on Windows as well as GCC and LLVM Clang on Linux.

Important

The Jenova Runtime Proprietary version is no longer available for public access. The last version released was 0.3.6.0 Alpha. Open-Source version will continue to receive all future updates from the proprietary version, Except those related to security.


Developed & Designed By Hamid.Memar (MemarDesign™ LLC.)

About

Jenova Runtime is an extension library for the Godot 4 Game Engine that brings fully-featured C++ scripting directly into the Godot Editor.

Topics

Resources

License

Stars

Watchers

Forks