Use Godot as visual editor but write game in TypeScript, a magic web game framework :)
Install build dependencies: yarn
or npm install
npm run start
: start dev server with live-reloading
npm run build
: build for production and copy media
with compiled scripts to dist
, also generate .br
and .gz
for files.
You can edit scenes from Godot and then use the importer to convert project setting and scenes to JSON, which will then be loaded automatically. Voltar editor is deprecated in favor of the workflow with Godot and importer.
-
Scenes should be saved into the
assets/scene
, and uses assets located insideassets
folder. -
Textures should ALWAYS go into
assets/image/*
and uses the texture packer to generated atlas exported tomedia
folder. Otherwise it won't work. -
Single images that will be copied into
media
folder should be put in theassets/image/standalone
folder, so they will be copied automatically (even after you modified). -
Bitmap font with BMFont format added to
assets/bitmapfont
will be automatically convert and copy tomedia
folder too. -
3D data formats like
.dae
,.fbx
,.gltf
and.obj
are not supported. But those are still usable by SAVE imported mesh data as ".tscn" manually. So basically any format supported by Godot become YES \o/
Make sure you've installed dependencies of the importer. In case you're not:
cd tscn && yarn
or cd tscn && npm install
Setup Godot project (from project settings)
Create scenes, and save them into the assets/scene
folder
Run node tscn/main
to convert project settings and scenes to JSON
file, and then import these files or preload them as assets in your code.
(in VSCode you can press F5
, and find configs in Jetbrains IDEs)
Most 2D features and basic 3D support (no 3D physics and particles yet). Custom shader supported in a level (may not work with complex shaders right now).
- screen stretch mode/aspect
-
CanvasLayer
-
ParallaxBackground
-
ParallaxLayer
-
Camera2D
-
Path2D
-
Node2D
-
YSort
-
RemoteTransform2D
-
VisibilityNotifier2D
-
Timer
-
Sprite
-
Control
,Container
and most GUI nodes -
Label
-
TextureButton
-
TextureProgress
-
TextureRect
-
NinePatchRect
-
AnimatedSprite
-
AnimationPlayer
- Tween (tweens are no longer nodes, they are just data and runs through
tweens
) - Input
-
CPUParticle2D
-
TileMap
-
Area2D
-
RayCast2D
-
StaticBody2D
-
KinematicBody2D
- shapes, font, curve
-
Viewport
-
Spatial
-
Camera
-
MeshInstance
with primitive meshes and mesh withescn
format -
Cube
,Quad
andPlane
primitive meshes -
Skeleton
and skeleton animation -
DirectionalLight
with shadow -
SpotLight
(no shadow support yet) -
OmniLight
with shadow support (not perfect but fast) -
RichTextLabel
(WIP) -
RigidBody2D
(WIP)
- comment unused exports in
engine/index
to disable modules not used - uncomment export of PhysicsServer2D in
engine/servers/physics_2d
to enable physics support - uncomment code to replace usage of
earcut
inengine/servers/visual/visual_server_canvas
for 2D polygon rendering - uncomment export of AudioServer in
engine/audio/index
to enable audio support