致谢
Gandi IDE 是一个免费的开源 Game Engine for Scratcher。 开发 Gandi IDE 的成本是巨大的,如果没有以下的合作伙伴和肝酱们的参与和投入,我们是无法做到持续优化和迭代的。 在此,我们真诚地感谢他们对 Gandi IDE 以及社区的贡献(排名不分先后):
机构和组织
Scratch @ MIT Media Lab在 Google Blocky 的基础上发明了 Scratch 编程语言,并且在全球推动了图形化编程的学习和创作的运动。 Gandi IDE 的整个演进是基于了 Scratch 的开源项目。
TurboWarpTurboWarp 对 Scratch 的 VM 进行了大量改造,支持了 JIT 的技术后,让 Scratch 的运行速度显著提高。 不仅如此, TurboWarp 还对编程工具 GUI 进行了大量的修改,让编程体验对高级 Scratcher 更友好。 Gandi IDE 的 JIT 部分继承了 TurboWarp 对 VM 的修改。
Post Scratch FoundationPost Scratch Foundation 是一个独立非盈利性组织 501 (c)(3),致力于帮助学习了 Scratch 的新一代创作者进行更深入专业的进阶。PSF 资金用于支持进阶的工具开发、支持个人或机构在 YouTube 和 Bilibili 上课程内容的开发,以帮助更多的创作者精进创作能力。 PSF 为 Gandi IDE 的持续开发提供赞助。
个人
Arkos参与了 Gandi IDE 初始版本的测试,帮助修复了大量 Bug。 贡献了社区中十分受欢迎的拓展。
-6参与 A* 插件的 WASM 化,以及正则和时钟插件的开发
白猫参与到 Gandi IDE 的拓展开发,为社区提供了大量突破 Scratch 边界的拓展。
也特别感谢以下贡献者帮助我们设计、开发和测试 Gandi IDE
[ todo 增加贡献清单]
如果您也想加入到 Gandi IDE 和社区的共创,可以在这里查看如何参与开发:
参与开发版权声明
Gandi IDE 内核基于 Scratch 进行二次开发。 JIT 部分基于 TurboWarp,并对引擎的 Runtime, VM 和 Render 部分进行改造以支持 WASM, Open GL ES3 等技术。
Gandi IDE 的开源代码,可以在 github 上获取,其中:
功能 | 基于 | 开源许可 | 开源地址 |
Python 文本编辑器 | monaco | MIT | |
Scratch 虚拟机 | TurboWarp
scratch-vm | BSD | |
拓展 | 自研 | 贡献者决定
默认GPLv3 |
ACKNOWLEDGEMENTS
These are the open source libraries we use to make Gandi IDE:
scratch-gui:https://github.com/LLK/scratch-gui
scratch-render:https://github.com/LLK/scratch-render
scratch-vm:https://github.com/LLK/scratch-vm
scratch-blocks:https://github.com/LLK/scratch-blocks
scratch-l10n:https://github.com/LLK/scratch-l10n
scratch-storage:https://github.com/LLK/scratch-storage
scratch-audio:https://github.com/LLK/scratch-audio
scratch-svg-renderer:https://github.com/LLK/scratch-svg-renderer
scratch-parser:https://github.com/LLK/scratch-parser
scratch-render-fonts:https://github.com/LLK/scratch-render-fonts
TurboWarp/scratch-paint:https://github.com/TurboWarp/scratch-paint
TurboWarp/scratch-render:https://github.com/TurboWarp/scratch-render
TurboWarp/scratch-vm:https://github.com/TurboWarp/scratch-vm
@vernier/godirect: https://github.com/VernierSoftwareTechnology/godirect-js
arraybuffer-loader: https://github.com/hughsk/arraybuffer-loader
atob: https://github.com/polygonplanet/atob
btoa: https://github.com/jsdom/btoa
canvas-toBlob: https://github.com/blueimp/JavaScript-Canvas-to-Blob
decode-html: https://github.com/mah0x211/decode-html
diff-match-patch: https://github.com/google/diff-match-patch
format-message: https://github.com/format-message/format-message
htmlparser2: https://github.com/fb55/htmlparser2
immutable: https://github.com/immutable-js/immutable-js
jszip: https://github.com/Stuk/jszip
minilog: https://github.com/mixu/minilog
scratch-parser: https://github.com/Gandi-IDE/scratch-parser/tree/gandi
scratch-sb1-converter: https://github.com/LLK/scratch-sb1-converter
scratch-translate-extension-languages: https://github.com/LLK/scratch-vm/tree/develop/src/extensions/scratch3_translate_extension/languages
text-encoding: https://github.com/inexorabletash/text-encoding
worker-loader: https://github.com/webpack-contrib/worker-loader
@babel/cli: https://github.com/babel/babel/tree/main/packages/babel-cli
@babel/core: https://github.com/babel/babel/tree/main/packages/babel-core
@babel/plugin-proposal-object-rest-spread: https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-object-rest-spread
@babel/plugin-syntax-dynamic-import: https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import
@babel/plugin-transform-async-to-generator: https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-async-to-generator
@babel/preset-env: https://github.com/babel/babel/tree/main/packages/babel-preset-env
@babel/preset-react: https://github.com/babel/babel/tree/main/packages/babel-preset-react
@babel/preset-typescript: https://github.com/babel/babel/tree/main/packages/babel-preset-typescript
@teana/melon-utils: https://github.com/teana/melon-utils
@teana/oss: https://github.com/teana/oss
@teana/scratch-analyzer: https://github.com/teana/scratch-analyzer
@types/react: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react
arraybuffer-loader: https://github.com/webpack-contrib/arraybuffer-loader
autoprefixer: https://github.com/postcss/autoprefixer
aws-sdk: https://github.com/aws/aws-sdk-js
babel-core: https://github.com/babel/babel/tree/main/packages/babel-core
babel-eslint: https://github.com/babel/babel-eslint
babel-loader: https://github.com/babel/babel-loader
base64-loader: https://github.com/webpack-contrib/base64-loader
bowser: https://github.com/lancedikson/bowser
chromedriver: https://github.com/giggio/node-chromedriver
classnames: https://github.com/JedWatson/classnames
computed-style-to-inline-style: https://github.com/rofrischmann/computed-style-to-inline-style
conventional-changelog-cli: https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-cli
copy-webpack-plugin: https://github.com/webpack-contrib/copy-webpack-plugin
core-js: https://github.com/zloirock/core-js
css: https://github.com/reworkcss/css
css-loader: https://github.com/webpack-contrib/css-loader
dayjs: https://github.com/iamkun/dayjs
enzyme: https://github.com/enzymejs/enzyme
enzyme-adapter-react-16: https://github.com/enzymejs/enzyme/tree/master/packages