spawnpoint-studio 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {spawnpoint_studio-0.1.0/compiler/spawnpoint_studio.egg-info → spawnpoint_studio-0.1.1}/PKG-INFO +39 -11
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/README.md +38 -10
- spawnpoint_studio-0.1.1/compiler/spawnpoint/__init__.py +8 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/webcheck.py +25 -7
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1/compiler/spawnpoint_studio.egg-info}/PKG-INFO +39 -11
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/pyproject.toml +1 -1
- spawnpoint_studio-0.1.0/compiler/spawnpoint/__init__.py +0 -3
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/LICENSE +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/MANIFEST.in +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/analyze.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/build.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cli.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cockpit/__init__.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cockpit/server.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cockpit/static/app.css +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cockpit/static/app.js +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cockpit/static/index.html +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/diagnostics.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/expr.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/gif.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/godot.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/graph.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/level.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/llm_server.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/manifest.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/playtest/__init__.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/playtest/report.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/playtest/runner.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/playtest/tuner.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/project.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/py.typed +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/rules.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sfx.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/__init__.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/ai.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/contour.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/generate.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/importer.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/resolve.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/spriteset.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/tiles.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/__init__.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/assemble.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/brief.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/creative.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/dataset.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/edits.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/levelgen.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/llm.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/orchestrator.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/prompts.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/web.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio_cli.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint_studio.egg-info/SOURCES.txt +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint_studio.egg-info/dependency_links.txt +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint_studio.egg-info/entry_points.txt +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint_studio.egg-info/requires.txt +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint_studio.egg-info/top_level.txt +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/conftest.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_ai_sprites.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_analyze.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_cockpit.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_e2e.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_expr.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_gif.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_godot_library.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_graph.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_level.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_live_llm.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_manifest.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_playtest.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_rules.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_sfx.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_sprites.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_studio.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/tests/test_web.py +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/examples/coin_hopper.json +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/examples/neon_arena.json +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/examples/pixel_arena.json +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/examples/pixel_hopper.json +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/aim_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/animator_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/chase_ai_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/collectible_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/gate_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/health_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/hitbox_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/hurtbox_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/juice_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/patrol_ai_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/platformer_movement_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/player_input_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/projectile_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/spawner_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/stomp_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/top_down_movement_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/trigger_zone_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/components/weapon_component.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/manifest.json +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/camera_rig.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/cockpit.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/entity_core.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/fx.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/game_state.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/hud.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/level.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/sfx.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/sp.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/world.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/shaders/flash.gdshader +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/shaders/floor_grid.gdshader +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/build.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/build.tscn +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/capture.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/capture.tscn +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/dump_manifest.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/dump_manifest.tscn +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/playtest.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/playtest.tscn +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/playtest_nav.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/record.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/record.tscn +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/smoke.gd +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/smoke.tscn +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/setup.cfg +0 -0
- {spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/setup.py +0 -0
{spawnpoint_studio-0.1.0/compiler/spawnpoint_studio.egg-info → spawnpoint_studio-0.1.1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spawnpoint-studio
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Turn a sentence into a juicy, playable Godot 4 game — locally, on a consumer GPU.
|
|
5
5
|
Author: smoky1496
|
|
6
6
|
License: MIT
|
|
@@ -24,7 +24,12 @@ Dynamic: license-file
|
|
|
24
24
|
|
|
25
25
|
# Spawn Point
|
|
26
26
|
|
|
27
|
-
**
|
|
27
|
+
**Describe a 2D game in one sentence — get a playable, juicy Godot 4 game in seconds.**
|
|
28
|
+
|
|
29
|
+
[](https://github.com/leluong141996-dev/Spawn-Point/actions/workflows/ci.yml)
|
|
30
|
+
[](https://pypi.org/project/spawnpoint-studio/)
|
|
31
|
+
[](https://huggingface.co/smoky1496/SpawnPoint-Coder-7B-AWQ)
|
|
32
|
+
[](LICENSE)
|
|
28
33
|
|
|
29
34
|
<p align="center">
|
|
30
35
|
<img src="https://raw.githubusercontent.com/leluong141996-dev/Spawn-Point/main/docs/media/pixel-hopper.gif" width="48%" alt="Pixel Hopper — generated platformer">
|
|
@@ -34,7 +39,7 @@ Dynamic: license-file
|
|
|
34
39
|
<code>examples/pixel_arena.json</code>: generated sprites, collision traced from pixels, juice on by
|
|
35
40
|
default. Recorded with <code>spawnpoint gif</code> (autopilot).</sub></p>
|
|
36
41
|
|
|
37
|
-
Spawn Point is
|
|
42
|
+
Spawn Point is an open-source, autonomous game studio that runs on your own machine. Instead of asking an LLM to type
|
|
38
43
|
hundreds of lines of GDScript (slow, expensive, and easy to break with Godot 3/4 mix-ups), the LLM
|
|
39
44
|
assembles **pre-tested components** like LEGO, places them on an **ASCII map**, and wires gameplay
|
|
40
45
|
with **declarative rules**. A deterministic compiler validates everything and lets Godot itself write
|
|
@@ -54,6 +59,24 @@ graph.json ──► validate (Python) ──► build scenes (Godot headless)
|
|
|
54
59
|
| Hitboxes | drift from visuals | derived from the same shape as the visual |
|
|
55
60
|
| Failure mode | crashes, syntax errors | structured diagnostics *before* Godot runs |
|
|
56
61
|
|
|
62
|
+
## Install
|
|
63
|
+
|
|
64
|
+
Requirements: Python ≥ 3.10, [Godot 4.6](https://godotengine.org/download) on your `PATH` (`godot4` or
|
|
65
|
+
`godot`, or set `GODOT_BIN`), and for the LLM features either a 12 GB NVIDIA GPU with Docker (local model)
|
|
66
|
+
or any OpenAI-compatible API.
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pip install spawnpoint-studio
|
|
70
|
+
spawnpoint llm up # serves SpawnPoint-Coder-7B locally (or set SPAWNPOINT_LLM_* for an API)
|
|
71
|
+
spawnpoint create "a ninja platformer where you collect stars"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
No GPU? Try the hand-written examples, no LLM needed:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
spawnpoint examples copy pixel_hopper && spawnpoint build pixel_hopper.json --run
|
|
78
|
+
```
|
|
79
|
+
|
|
57
80
|
## Spawn Point Studio (web cockpit)
|
|
58
81
|
|
|
59
82
|
```bash
|
|
@@ -223,13 +246,10 @@ stop making the mistakes the normalizer and compiler had to fix (roadmap item 7)
|
|
|
223
246
|
|
|
224
247
|
## Quick start (hand-written graphs)
|
|
225
248
|
|
|
226
|
-
Requirements: Python ≥ 3.10 and [Godot 4.6](https://godotengine.org/download) on your `PATH`
|
|
227
|
-
(`godot4` or `godot`, or set `GODOT_BIN`).
|
|
228
|
-
|
|
229
249
|
```bash
|
|
230
|
-
|
|
231
|
-
spawnpoint build
|
|
232
|
-
spawnpoint build
|
|
250
|
+
spawnpoint examples list
|
|
251
|
+
spawnpoint examples copy coin_hopper && spawnpoint build coin_hopper.json --run # platformer
|
|
252
|
+
spawnpoint examples copy neon_arena && spawnpoint build neon_arena.json --run # top-down shooter
|
|
233
253
|
```
|
|
234
254
|
|
|
235
255
|
Controls: move **WASD / arrows**, jump **Space / Z / W**, dash **Shift / C**, shoot **X / J / left mouse**,
|
|
@@ -321,15 +341,20 @@ godot/ Godot project hosting the component library and its t
|
|
|
321
341
|
tests/ headless GDScript tests
|
|
322
342
|
compiler/spawnpoint/ Python compiler: graph schema, analysis, rules codegen, sfx, CLI
|
|
323
343
|
compiler/spawnpoint/studio LLM orchestrator: brief, assembler, level generators, web export, browser check
|
|
324
|
-
compiler/spawnpoint/sprites SpriteSet format, pixel-art generator, importer, contour → collision
|
|
344
|
+
compiler/spawnpoint/sprites SpriteSet format, pixel-art generator and tiles, importer, contour → collision, AI-art providers
|
|
345
|
+
compiler/spawnpoint/playtest bots, jump-aware planner, telemetry, heatmaps, tuner
|
|
346
|
+
compiler/spawnpoint/cockpit web studio: HTTP + SSE server and the single-page UI
|
|
325
347
|
compiler/tests/ pytest (includes end-to-end builds and the GDScript suite)
|
|
326
348
|
examples/ example graphs
|
|
327
|
-
|
|
349
|
+
scripts/ helper scripts (local LLM)
|
|
350
|
+
docs/media/ README GIFs
|
|
328
351
|
```
|
|
329
352
|
|
|
330
353
|
## Development
|
|
331
354
|
|
|
332
355
|
```bash
|
|
356
|
+
git clone https://github.com/leluong141996-dev/Spawn-Point && cd Spawn-Point
|
|
357
|
+
pip install -e ".[dev]"
|
|
333
358
|
pytest # everything: compiler, studio, end-to-end builds, web + browser, GDScript suite
|
|
334
359
|
pytest -m "not llm" # without the live-LLM tests
|
|
335
360
|
spawnpoint manifest # regenerate manifest.json after changing a component
|
|
@@ -340,6 +365,9 @@ Adding a component: create `godot/addons/spawn_point/components/<name>_component
|
|
|
340
365
|
contract (typed `@export`s with ranges, `SP_NAME` / `SP_HOSTS` / `SP_REQUIRES` / `SP_CATEGORY`
|
|
341
366
|
constants, `##` docs on everything public), add tests in `godot/tests/`, then run `spawnpoint manifest`.
|
|
342
367
|
|
|
368
|
+
Contributions are welcome: open an issue to discuss a bigger change first, keep `pytest -m "not llm"`
|
|
369
|
+
green, and add a test with every fix. CI runs the full suite (with Godot) on every push and pull request.
|
|
370
|
+
|
|
343
371
|
## Roadmap
|
|
344
372
|
|
|
345
373
|
1. ✅ Component library with juice
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Spawn Point
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Describe a 2D game in one sentence — get a playable, juicy Godot 4 game in seconds.**
|
|
4
|
+
|
|
5
|
+
[](https://github.com/leluong141996-dev/Spawn-Point/actions/workflows/ci.yml)
|
|
6
|
+
[](https://pypi.org/project/spawnpoint-studio/)
|
|
7
|
+
[](https://huggingface.co/smoky1496/SpawnPoint-Coder-7B-AWQ)
|
|
8
|
+
[](LICENSE)
|
|
4
9
|
|
|
5
10
|
<p align="center">
|
|
6
11
|
<img src="https://raw.githubusercontent.com/leluong141996-dev/Spawn-Point/main/docs/media/pixel-hopper.gif" width="48%" alt="Pixel Hopper — generated platformer">
|
|
@@ -10,7 +15,7 @@
|
|
|
10
15
|
<code>examples/pixel_arena.json</code>: generated sprites, collision traced from pixels, juice on by
|
|
11
16
|
default. Recorded with <code>spawnpoint gif</code> (autopilot).</sub></p>
|
|
12
17
|
|
|
13
|
-
Spawn Point is
|
|
18
|
+
Spawn Point is an open-source, autonomous game studio that runs on your own machine. Instead of asking an LLM to type
|
|
14
19
|
hundreds of lines of GDScript (slow, expensive, and easy to break with Godot 3/4 mix-ups), the LLM
|
|
15
20
|
assembles **pre-tested components** like LEGO, places them on an **ASCII map**, and wires gameplay
|
|
16
21
|
with **declarative rules**. A deterministic compiler validates everything and lets Godot itself write
|
|
@@ -30,6 +35,24 @@ graph.json ──► validate (Python) ──► build scenes (Godot headless)
|
|
|
30
35
|
| Hitboxes | drift from visuals | derived from the same shape as the visual |
|
|
31
36
|
| Failure mode | crashes, syntax errors | structured diagnostics *before* Godot runs |
|
|
32
37
|
|
|
38
|
+
## Install
|
|
39
|
+
|
|
40
|
+
Requirements: Python ≥ 3.10, [Godot 4.6](https://godotengine.org/download) on your `PATH` (`godot4` or
|
|
41
|
+
`godot`, or set `GODOT_BIN`), and for the LLM features either a 12 GB NVIDIA GPU with Docker (local model)
|
|
42
|
+
or any OpenAI-compatible API.
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install spawnpoint-studio
|
|
46
|
+
spawnpoint llm up # serves SpawnPoint-Coder-7B locally (or set SPAWNPOINT_LLM_* for an API)
|
|
47
|
+
spawnpoint create "a ninja platformer where you collect stars"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
No GPU? Try the hand-written examples, no LLM needed:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
spawnpoint examples copy pixel_hopper && spawnpoint build pixel_hopper.json --run
|
|
54
|
+
```
|
|
55
|
+
|
|
33
56
|
## Spawn Point Studio (web cockpit)
|
|
34
57
|
|
|
35
58
|
```bash
|
|
@@ -199,13 +222,10 @@ stop making the mistakes the normalizer and compiler had to fix (roadmap item 7)
|
|
|
199
222
|
|
|
200
223
|
## Quick start (hand-written graphs)
|
|
201
224
|
|
|
202
|
-
Requirements: Python ≥ 3.10 and [Godot 4.6](https://godotengine.org/download) on your `PATH`
|
|
203
|
-
(`godot4` or `godot`, or set `GODOT_BIN`).
|
|
204
|
-
|
|
205
225
|
```bash
|
|
206
|
-
|
|
207
|
-
spawnpoint build
|
|
208
|
-
spawnpoint build
|
|
226
|
+
spawnpoint examples list
|
|
227
|
+
spawnpoint examples copy coin_hopper && spawnpoint build coin_hopper.json --run # platformer
|
|
228
|
+
spawnpoint examples copy neon_arena && spawnpoint build neon_arena.json --run # top-down shooter
|
|
209
229
|
```
|
|
210
230
|
|
|
211
231
|
Controls: move **WASD / arrows**, jump **Space / Z / W**, dash **Shift / C**, shoot **X / J / left mouse**,
|
|
@@ -297,15 +317,20 @@ godot/ Godot project hosting the component library and its t
|
|
|
297
317
|
tests/ headless GDScript tests
|
|
298
318
|
compiler/spawnpoint/ Python compiler: graph schema, analysis, rules codegen, sfx, CLI
|
|
299
319
|
compiler/spawnpoint/studio LLM orchestrator: brief, assembler, level generators, web export, browser check
|
|
300
|
-
compiler/spawnpoint/sprites SpriteSet format, pixel-art generator, importer, contour → collision
|
|
320
|
+
compiler/spawnpoint/sprites SpriteSet format, pixel-art generator and tiles, importer, contour → collision, AI-art providers
|
|
321
|
+
compiler/spawnpoint/playtest bots, jump-aware planner, telemetry, heatmaps, tuner
|
|
322
|
+
compiler/spawnpoint/cockpit web studio: HTTP + SSE server and the single-page UI
|
|
301
323
|
compiler/tests/ pytest (includes end-to-end builds and the GDScript suite)
|
|
302
324
|
examples/ example graphs
|
|
303
|
-
|
|
325
|
+
scripts/ helper scripts (local LLM)
|
|
326
|
+
docs/media/ README GIFs
|
|
304
327
|
```
|
|
305
328
|
|
|
306
329
|
## Development
|
|
307
330
|
|
|
308
331
|
```bash
|
|
332
|
+
git clone https://github.com/leluong141996-dev/Spawn-Point && cd Spawn-Point
|
|
333
|
+
pip install -e ".[dev]"
|
|
309
334
|
pytest # everything: compiler, studio, end-to-end builds, web + browser, GDScript suite
|
|
310
335
|
pytest -m "not llm" # without the live-LLM tests
|
|
311
336
|
spawnpoint manifest # regenerate manifest.json after changing a component
|
|
@@ -316,6 +341,9 @@ Adding a component: create `godot/addons/spawn_point/components/<name>_component
|
|
|
316
341
|
contract (typed `@export`s with ranges, `SP_NAME` / `SP_HOSTS` / `SP_REQUIRES` / `SP_CATEGORY`
|
|
317
342
|
constants, `##` docs on everything public), add tests in `godot/tests/`, then run `spawnpoint manifest`.
|
|
318
343
|
|
|
344
|
+
Contributions are welcome: open an issue to discuss a bigger change first, keep `pytest -m "not llm"`
|
|
345
|
+
green, and add a test with every fix. CI runs the full suite (with Godot) on every push and pull request.
|
|
346
|
+
|
|
319
347
|
## Roadmap
|
|
320
348
|
|
|
321
349
|
1. ✅ Component library with juice
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"""Spawn Point: compile JSON game graphs into runnable Godot 4 projects."""
|
|
2
|
+
|
|
3
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
4
|
+
|
|
5
|
+
try:
|
|
6
|
+
__version__ = version("spawnpoint-studio") # single source of truth: pyproject.toml
|
|
7
|
+
except PackageNotFoundError: # running from a source tree that was never installed
|
|
8
|
+
__version__ = "0.0.0+source"
|
|
@@ -10,6 +10,7 @@ import json
|
|
|
10
10
|
import os
|
|
11
11
|
import re
|
|
12
12
|
import shutil
|
|
13
|
+
import signal
|
|
13
14
|
import socket
|
|
14
15
|
import struct
|
|
15
16
|
import subprocess
|
|
@@ -106,12 +107,13 @@ def check(url: str, seconds: float = 12.0, size: tuple[int, int] = (960, 540), k
|
|
|
106
107
|
if chrome is None:
|
|
107
108
|
raise RuntimeError("Chrome not found (set CHROME_BIN)")
|
|
108
109
|
result = WebCheck()
|
|
109
|
-
|
|
110
|
+
# Chrome's helper processes can outlive the main one for a moment and keep writing to the profile.
|
|
111
|
+
with tempfile.TemporaryDirectory(ignore_cleanup_errors=True) as profile:
|
|
110
112
|
proc = subprocess.Popen(
|
|
111
113
|
[chrome, "--headless=new", "--no-sandbox", f"--user-data-dir={profile}", "--remote-debugging-port=0",
|
|
112
114
|
"--use-angle=swiftshader", "--enable-unsafe-swiftshader", "--autoplay-policy=no-user-gesture-required",
|
|
113
115
|
f"--window-size={size[0]},{size[1]}", "about:blank"],
|
|
114
|
-
stderr=subprocess.PIPE, stdout=subprocess.DEVNULL, text=True)
|
|
116
|
+
stderr=subprocess.PIPE, stdout=subprocess.DEVNULL, text=True, start_new_session=True)
|
|
115
117
|
try:
|
|
116
118
|
ws_url = _devtools_url(proc)
|
|
117
119
|
port = re.match(r"ws://[^:]+:(\d+)", ws_url).group(1)
|
|
@@ -163,14 +165,30 @@ def check(url: str, seconds: float = 12.0, size: tuple[int, int] = (960, 540), k
|
|
|
163
165
|
result.value = ev.get("result", {}).get("value")
|
|
164
166
|
ws.close()
|
|
165
167
|
finally:
|
|
166
|
-
proc
|
|
167
|
-
try:
|
|
168
|
-
proc.wait(timeout=10)
|
|
169
|
-
except subprocess.TimeoutExpired:
|
|
170
|
-
proc.kill()
|
|
168
|
+
_stop(proc)
|
|
171
169
|
return result
|
|
172
170
|
|
|
173
171
|
|
|
172
|
+
def _stop(proc: subprocess.Popen) -> None:
|
|
173
|
+
"""Stop Chrome and every helper process it started (they share its process group)."""
|
|
174
|
+
for sig in (signal.SIGTERM, signal.SIGKILL):
|
|
175
|
+
try:
|
|
176
|
+
os.killpg(proc.pid, sig)
|
|
177
|
+
except ProcessLookupError:
|
|
178
|
+
return
|
|
179
|
+
try:
|
|
180
|
+
proc.wait(timeout=10)
|
|
181
|
+
except subprocess.TimeoutExpired:
|
|
182
|
+
continue
|
|
183
|
+
deadline = time.time() + 5 # the main process is gone; give the helpers a moment to follow
|
|
184
|
+
while time.time() < deadline:
|
|
185
|
+
try:
|
|
186
|
+
os.killpg(proc.pid, 0)
|
|
187
|
+
except ProcessLookupError:
|
|
188
|
+
return
|
|
189
|
+
time.sleep(0.05)
|
|
190
|
+
|
|
191
|
+
|
|
174
192
|
def _devtools_url(proc: subprocess.Popen) -> str:
|
|
175
193
|
deadline = time.time() + 20
|
|
176
194
|
while time.time() < deadline:
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1/compiler/spawnpoint_studio.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spawnpoint-studio
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Turn a sentence into a juicy, playable Godot 4 game — locally, on a consumer GPU.
|
|
5
5
|
Author: smoky1496
|
|
6
6
|
License: MIT
|
|
@@ -24,7 +24,12 @@ Dynamic: license-file
|
|
|
24
24
|
|
|
25
25
|
# Spawn Point
|
|
26
26
|
|
|
27
|
-
**
|
|
27
|
+
**Describe a 2D game in one sentence — get a playable, juicy Godot 4 game in seconds.**
|
|
28
|
+
|
|
29
|
+
[](https://github.com/leluong141996-dev/Spawn-Point/actions/workflows/ci.yml)
|
|
30
|
+
[](https://pypi.org/project/spawnpoint-studio/)
|
|
31
|
+
[](https://huggingface.co/smoky1496/SpawnPoint-Coder-7B-AWQ)
|
|
32
|
+
[](LICENSE)
|
|
28
33
|
|
|
29
34
|
<p align="center">
|
|
30
35
|
<img src="https://raw.githubusercontent.com/leluong141996-dev/Spawn-Point/main/docs/media/pixel-hopper.gif" width="48%" alt="Pixel Hopper — generated platformer">
|
|
@@ -34,7 +39,7 @@ Dynamic: license-file
|
|
|
34
39
|
<code>examples/pixel_arena.json</code>: generated sprites, collision traced from pixels, juice on by
|
|
35
40
|
default. Recorded with <code>spawnpoint gif</code> (autopilot).</sub></p>
|
|
36
41
|
|
|
37
|
-
Spawn Point is
|
|
42
|
+
Spawn Point is an open-source, autonomous game studio that runs on your own machine. Instead of asking an LLM to type
|
|
38
43
|
hundreds of lines of GDScript (slow, expensive, and easy to break with Godot 3/4 mix-ups), the LLM
|
|
39
44
|
assembles **pre-tested components** like LEGO, places them on an **ASCII map**, and wires gameplay
|
|
40
45
|
with **declarative rules**. A deterministic compiler validates everything and lets Godot itself write
|
|
@@ -54,6 +59,24 @@ graph.json ──► validate (Python) ──► build scenes (Godot headless)
|
|
|
54
59
|
| Hitboxes | drift from visuals | derived from the same shape as the visual |
|
|
55
60
|
| Failure mode | crashes, syntax errors | structured diagnostics *before* Godot runs |
|
|
56
61
|
|
|
62
|
+
## Install
|
|
63
|
+
|
|
64
|
+
Requirements: Python ≥ 3.10, [Godot 4.6](https://godotengine.org/download) on your `PATH` (`godot4` or
|
|
65
|
+
`godot`, or set `GODOT_BIN`), and for the LLM features either a 12 GB NVIDIA GPU with Docker (local model)
|
|
66
|
+
or any OpenAI-compatible API.
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pip install spawnpoint-studio
|
|
70
|
+
spawnpoint llm up # serves SpawnPoint-Coder-7B locally (or set SPAWNPOINT_LLM_* for an API)
|
|
71
|
+
spawnpoint create "a ninja platformer where you collect stars"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
No GPU? Try the hand-written examples, no LLM needed:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
spawnpoint examples copy pixel_hopper && spawnpoint build pixel_hopper.json --run
|
|
78
|
+
```
|
|
79
|
+
|
|
57
80
|
## Spawn Point Studio (web cockpit)
|
|
58
81
|
|
|
59
82
|
```bash
|
|
@@ -223,13 +246,10 @@ stop making the mistakes the normalizer and compiler had to fix (roadmap item 7)
|
|
|
223
246
|
|
|
224
247
|
## Quick start (hand-written graphs)
|
|
225
248
|
|
|
226
|
-
Requirements: Python ≥ 3.10 and [Godot 4.6](https://godotengine.org/download) on your `PATH`
|
|
227
|
-
(`godot4` or `godot`, or set `GODOT_BIN`).
|
|
228
|
-
|
|
229
249
|
```bash
|
|
230
|
-
|
|
231
|
-
spawnpoint build
|
|
232
|
-
spawnpoint build
|
|
250
|
+
spawnpoint examples list
|
|
251
|
+
spawnpoint examples copy coin_hopper && spawnpoint build coin_hopper.json --run # platformer
|
|
252
|
+
spawnpoint examples copy neon_arena && spawnpoint build neon_arena.json --run # top-down shooter
|
|
233
253
|
```
|
|
234
254
|
|
|
235
255
|
Controls: move **WASD / arrows**, jump **Space / Z / W**, dash **Shift / C**, shoot **X / J / left mouse**,
|
|
@@ -321,15 +341,20 @@ godot/ Godot project hosting the component library and its t
|
|
|
321
341
|
tests/ headless GDScript tests
|
|
322
342
|
compiler/spawnpoint/ Python compiler: graph schema, analysis, rules codegen, sfx, CLI
|
|
323
343
|
compiler/spawnpoint/studio LLM orchestrator: brief, assembler, level generators, web export, browser check
|
|
324
|
-
compiler/spawnpoint/sprites SpriteSet format, pixel-art generator, importer, contour → collision
|
|
344
|
+
compiler/spawnpoint/sprites SpriteSet format, pixel-art generator and tiles, importer, contour → collision, AI-art providers
|
|
345
|
+
compiler/spawnpoint/playtest bots, jump-aware planner, telemetry, heatmaps, tuner
|
|
346
|
+
compiler/spawnpoint/cockpit web studio: HTTP + SSE server and the single-page UI
|
|
325
347
|
compiler/tests/ pytest (includes end-to-end builds and the GDScript suite)
|
|
326
348
|
examples/ example graphs
|
|
327
|
-
|
|
349
|
+
scripts/ helper scripts (local LLM)
|
|
350
|
+
docs/media/ README GIFs
|
|
328
351
|
```
|
|
329
352
|
|
|
330
353
|
## Development
|
|
331
354
|
|
|
332
355
|
```bash
|
|
356
|
+
git clone https://github.com/leluong141996-dev/Spawn-Point && cd Spawn-Point
|
|
357
|
+
pip install -e ".[dev]"
|
|
333
358
|
pytest # everything: compiler, studio, end-to-end builds, web + browser, GDScript suite
|
|
334
359
|
pytest -m "not llm" # without the live-LLM tests
|
|
335
360
|
spawnpoint manifest # regenerate manifest.json after changing a component
|
|
@@ -340,6 +365,9 @@ Adding a component: create `godot/addons/spawn_point/components/<name>_component
|
|
|
340
365
|
contract (typed `@export`s with ranges, `SP_NAME` / `SP_HOSTS` / `SP_REQUIRES` / `SP_CATEGORY`
|
|
341
366
|
constants, `##` docs on everything public), add tests in `godot/tests/`, then run `spawnpoint manifest`.
|
|
342
367
|
|
|
368
|
+
Contributions are welcome: open an issue to discuss a bigger change first, keep `pytest -m "not llm"`
|
|
369
|
+
green, and add a test with every fix. CI runs the full suite (with Godot) on every push and pull request.
|
|
370
|
+
|
|
343
371
|
## Roadmap
|
|
344
372
|
|
|
345
373
|
1. ✅ Component library with juice
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "spawnpoint-studio"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.1"
|
|
8
8
|
description = "Turn a sentence into a juicy, playable Godot 4 game — locally, on a consumer GPU."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cockpit/static/app.css
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cockpit/static/app.js
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/cockpit/static/index.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/playtest/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/sprites/spriteset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint/studio/orchestrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint_studio.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/compiler/spawnpoint_studio.egg-info/requires.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/camera_rig.gd
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/cockpit.gd
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/entity_core.gd
RENAMED
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/game_state.gd
RENAMED
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/level.gd
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/runtime/world.gd
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/shaders/flash.gdshader
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/build.tscn
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/capture.gd
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/capture.tscn
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/dump_manifest.gd
RENAMED
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/playtest.gd
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/playtest.tscn
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/playtest_nav.gd
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/record.gd
RENAMED
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/record.tscn
RENAMED
|
File without changes
|
|
File without changes
|
{spawnpoint_studio-0.1.0 → spawnpoint_studio-0.1.1}/godot/addons/spawn_point/tools/smoke.tscn
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|