Skip to content

Javascript module plans #132

@Geequlim

Description

@Geequlim

Note These are plans about this project todo but not found enough time to make it happen yet.

  • Remove godot form global scope, make it as an esmodule. #212

    import { Vector2, Node, clamp } from 'godot';
  • Improved TypeScript support

    • Better signal/slot support
      • Remove extral signal value bindings, implements in TS declerations
      • Type checking and code completion for signals, callbacks and paramters
    • Add godot importer to compile TypeScript files with tsc/esbuild
      • We want writing TypeScript files and attach them to nodes in editor
  • Improved debugger for QuickJS

  • Standard ESModule/CommonJS implementation

    • Rename jsx to mjs for esmodule
    • Add interface to native API for module code loading so that would be possible to
      • Load script from remote like deno
      • Load TypeScript and run it (after custom compile process)
      • Script content encryption
  • Add operators as methods like op_add op_divide to builtin math types for compatibility with more backends

  • Samples for complicated projects

    • Out of box configuration of webpack/esbuild etc
    • Out of box remote debugger/profiler configurations for VSCode to make it easier for mobile game development
    • Hot reload implementation for faster development
    • Remote update version without ship new version on App Store/Google Play/Steam
  • Port to godot 4.x

    • Port QuickJS binding to godot 4.0
    • Add GDExtension support to make everyone can just download and using it
  • Some demo projects

    • For performance tests
    • For best practics
    • For make good use of TypeScript/JavaScript/NPM
  • Documentations

    • I can writing documentations in Chinese
    • It world be great if anyone can help translate them

About backends and improvements to current workflow

  • Add V8 backend
    • Professional debugger/inspector/profiler/memory tools support
    • Enable JIT as default and using jitless mode on iOS
  • Add NodeJS backend (Editor/PC Only)
    • Using full NodeJS API (and millions of libraries) to extend editor or make games on PC

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions