Move aside, Py, there’s a new sheriff in town!
Godot Engine 
Godot.rb – Ruby in Caution: This project is still developing.
While the Ruby land designs are mostly set, the C side code are all still experiments.
Even the core components see occasional rewrites.Moreöver, the lead maintainer is a C novice,
so thank you early adopters for beïng prepared to encounter and report segfaults and core dumps 😅.
Getting Started
-
As betaware, only Windows and RubyInstaller2 without Devkit is tested currently.
It also needs MinGW in thePATH
. Things will go unexpected with the MSYS2 Devkit.- Support for Devkit and Linux are planned, but not for Windows going through WSL
(but Linux support means yes for Godot Engine and Ruby both contained in WSL).
- Support for Devkit and Linux are planned, but not for Windows going through WSL
-
I might publish this project to RubyGems in the future.
For now, download/clone this repo to a consistent place (i.e., not the Downloads folder) and run:gem install mingw-make gem install rake rake-compiler json rake rake clean # optional, delete leftovers
If you don’t have symlink permissions,
consider admin elevation for therake
line so the script symlinks Ruby DLLs rather than duplicating them. -
Copy-paste or symlink
generated/godot_rb.gdextension
in your Godot Project
(Unlike nearly all GDExtensions, this one uses absolute paths so multiple projects can share the same install.) -
Have fun with real singletons! 💎
(No ideas on exporting projects currently…)
-
The
Rakefile
is for building, not setting up… -
bundle install
fails on RubyInstaller no-Devkit because of theGemfile
appsteep
’s transitive dependencyffi
.
Gem insists to use the platform-independent version of theffi
gem, which doesn’t know about
bin/ruby_builtin_dlls/libffi-8.dll
and must compilelibffi
from scratch withlibffi
ownMakefile
.
I’m unable to work around this problem one way or another (#help-wanted
). -
RubyInstaller Ruby utilizes the new Universal C Runtime, but Godot Engine still uses the old MS VC++ Runtime,
for they support (on a best-effort basis) the minority who refuse to upgrade their outdated Windows versions.
See godotengine/godot-proposals#9111 regarding the situations. Fortunately, while mixing runtimes is unsupported,
the only known issue is that Ruby cannot print to console (onlyGodot#print
and etc. can).
Features
☑️️ Current
[TBA]
📝 Beta
[TBA]
🔜 Planned
[TBA]
⏳ Backlog
[TBA]
🧊 Anti-Features
[TBA]
License
include/godot/
Copyright (c) 2014-present Godot Engine contributors. https://godotengine.org/license/
The rest of this project
Copyright 2024 ParadoxV5
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.