f53279d065
The active tilemap layer can be renamed from the painting section, and a Show setting fades or hides the other layers in the scene view while the tilemap is selected (#138)
adminandClaude Opus 52026-09-18 10:56:32 +02:00
bfbcbe604c
The tile list in the tilemap section is a palette of pictures: each tile shows its lone tile (the four convex corners for floor and wall, the picture itself for none) with its name below, laid out with the image-picker grid (#139)
adminandClaude Opus 52026-09-18 10:15:51 +02:00
4c411c1ff3
Tilemaps can block movement: a tile gains a Solid switch, the solid cells of all layers are merged into rectangles and the placed tilemap takes part in the collision system as one body, reported as other in collision events (#132)
adminandClaude Opus 52026-09-18 09:47:03 +02:00
10b49fac46
Tilemap cells are stored compactly in the project file: each layer keeps a tile list, an origin and one run-length encoded string per row; older projects with a cell map still load (#134)
adminandClaude Opus 52026-09-18 09:17:49 +02:00
732f6518ae
The autotile asset is renamed to tile and gains a plain None (1 × 1) kind, which is now the default; older projects load their autotiles as floor tiles (#131)
adminandClaude Opus 52026-09-18 08:01:07 +02:00
a65132bb5a
Scrolling content is narrowed by the scrollbar width while the scrollbar is shown, so it no longer sits under the bar
adminandClaude Opus 52026-09-18 07:29:58 +02:00
91cdaf95cc
The panel frame is drawn above the content, so a hovered row no longer paints over the border
adminandClaude Opus 52026-09-18 07:29:58 +02:00
55bfa7521a
The assets and scene objects panels in the left column are split by a draggable splitter that keeps its ratio when the window is resized
adminandClaude Opus 52026-09-18 07:29:58 +02:00
33a7b1b63e
Tilemaps are a new placeable asset type that is painted with autotiles in the scene view, with layers, brush, eraser and rectangle, and is drawn at runtime and in the export (#128)
adminandClaude Opus 52026-09-18 06:41:47 +02:00
0607221423
Autotile floor tiles take their inner quadrants rotated by half a tile and their inner corners from the upper right block tile, matching RPG Maker MZ (#118)
adminandClaude Opus 52026-09-17 22:28:11 +02:00
1a9f07c4ac
Autotiles are a new asset type with a tab that shows every tile of the floor (2x3) or wall (2x2) block and an animated sample pattern (#118)
adminandClaude Opus 52026-09-17 21:35:29 +02:00
c17b2b5426
Plugins are switched on and off in a Plugins tab, the server keeps the state in data/plugins/plugins.json, and switched-off plugins are never delivered (#114)
adminandClaude Opus 52026-09-17 20:15:51 +02:00
57a97ba94f
Plugins in data/plugins are loaded at startup and can add a tab with a read-only node board, and the demo plugin shows every asset as a node (#113)
adminandClaude Opus 52026-09-17 19:00:03 +02:00
2a390e52ff
The scene view and the animation preview share one camera, the three form dialogs one base, and keys are found through one set of helpers (#85)
adminandClaude Opus 52026-09-17 14:19:53 +02:00
bf02c9e8b3
Timeline keys can be copied and pasted at the playhead, duplicated with Ctrl+drag, and frames inserted or removed from a right-click menu (#102)
adminandClaude Opus 52026-09-17 12:53:56 +02:00
195fc94e08
Animations blend out on Stop and at the end of Once (reset), and Play can restart a running animation (#106)
adminandClaude Opus 52026-09-17 11:50:10 +02:00
8a377d9239
Play animation's blend is given in seconds, not in frames of the new animation (#106)
adminandClaude Opus 52026-09-17 11:14:15 +02:00
04dc254b3d
Play animation can blend into the new animation over a number of frames (#106)
adminandClaude Opus 52026-09-17 10:03:53 +02:00
beeea355d9
Animation rows can target behavior variables and shader parameters (#104)
adminandClaude Opus 52026-09-17 09:04:29 +02:00
b278605c53
Keys carry an easing for the span to the next key: linear, step, ease in, ease out, ease in-out (#101)
adminandClaude Opus 52026-09-17 07:27:44 +02:00
4c92a9478f
The animation tab's Fit frames the preview, and the separate Centre button is gone (#111)
adminandClaude Opus 52026-09-17 07:12:21 +02:00
cc14988338
Ping-pong turns on the last key, and stepped rows hold the key they last passed (#112)
adminandClaude Opus 52026-09-17 07:08:44 +02:00
f68941fa3a
An animation reaches the scene's own background and objects inside placed containers (#109)
adminandClaude Opus 52026-09-17 06:48:21 +02:00
353b348c3c
e2e module 25 drives the animation timeline and its preview with real gestures (#110)
adminandClaude Opus 52026-09-17 06:16:40 +02:00
35c87888b0
The list's kind check counts the animation kind, which is a row in the kind table since #97adminandClaude Fable 5.12026-09-16 21:25:46 +02:00
89c46c30a0
An animation is previewed above its timeline: the root at the playhead, drawn but never written (#99)
adminandClaude Fable 5.12026-09-16 21:00:18 +02:00
4ed2edd0f0
An animation is a value a graph can pick, and playing a running one makes it win again (#97)
adminandClaude Opus 52026-09-16 20:47:31 +02:00
5af0a1c83a
An animation's rows are edited on a timeline: double click sets a key, keys are banded, dragged and deleted, the ruler scrubs (#98)
adminandClaude Opus 52026-09-16 20:38:34 +02:00
193378e6a9
An animation is a timeline of rows over one asset, played on an object rather than worn as a picture (#97)
adminandClaude Opus 52026-09-16 20:02:25 +02:00
d3563897d8
Two compilers that walk a graph the same way walk it through one emitter (#85)
adminandClaude Opus 52026-09-16 19:28:28 +02:00
94a0a578ed
A border drawn in pixels is as wide as the texture says a pixel is, so a small sheet can frame a large sprite (#96)
adminandClaude Opus 52026-09-16 18:09:43 +02:00
cc6db5f350
Three stores, three importers and three pickers that differ only in their type are one of each (#85)
adminandClaude Fable 5.12026-09-16 17:38:54 +02:00
15bdfdf07a
A gate that stands in front of the suite delays the news it carries, so it runs beside it (#94)
adminandClaude Opus 52026-09-16 15:21:18 +02:00
36ccc7626f
A box drawn around a part of the graph is part of it, so a fit frames it and a band catches it (#95)
adminandClaude Opus 52026-09-16 14:23:56 +02:00
be8f2331de
A frame that keeps its corners can be stretched to any size (#41)
adminandClaude Opus 52026-09-16 12:04:09 +02:00
b9f1a9d319
A graph that grew past one screen needs somewhere to say what a part of it is for (#38)
adminandClaude Opus 52026-09-16 11:24:34 +02:00
1135205d69
A machine that arrives as a value can still be commanded, so a name may name its state (#58)
adminandClaude Opus 52026-09-16 09:08:57 +02:00
7e5003b590
A test that waits for a deadline somebody guessed is waiting for the wrong thing, so it waits for the editor (#93)
admin2026-09-16 08:08:10 +02:00
c990dbcb26
A name that a sprite already owns cannot name a property, and a division by zero cannot answer (#63, #64)
admin2026-09-15 18:43:40 +02:00
150f2e0906
A row scrolled out of its list is not on the screen, so no test may click it
admin2026-09-15 18:43:34 +02:00
1e9d21cd5d
A game that is more than one scene needs a way from one to the next, so the graph can load one (#39)
admin2026-09-15 13:24:26 +02:00
30090fc48e
A cap measured against the canvas needs a yardstick from the canvas, so the check stops carrying a number
admin2026-09-15 11:36:04 +02:00
3b039384c4
A search that ignores what a thing is called is no search, so the name wins (#43)
adminandClaude Opus 52026-09-15 10:21:20 +02:00
5671a38044
A game that stays silent is only half a game, so a sound is an asset like any other (#45)
admin2026-09-15 07:54:28 +02:00
bc57f61c91
A still editor has nothing to draw, so the frame loop wakes on change (#44)
admin2026-09-14 21:41:50 +02:00
2637feb715
A square root is one node everywhere else, so the shader graph gets its own (#92)
adminandClaude Opus 52026-09-14 19:35:00 +02:00
80dd82349d
The + menu holds fourteen types now, so scrolling one into view belongs to the scaffold (#91)
adminandClaude Opus 52026-09-14 19:14:57 +02:00
98fa9907fd
A drop asks the area the pointer already uses, so a port at the very edge is still the node
adminandClaude Opus 52026-09-14 19:14:57 +02:00
8143130ed2
A shared value belongs to no behavior, so it becomes an asset of its own (#91)
rootandClaude Opus 52026-09-14 18:05:36 +02:00
d1fcfe8b81
A shared value belongs to the run, so a declaration carries its scope (#91)
rootandClaude Opus 52026-09-14 16:14:19 +02:00
9027a86edd
A behavior has rows of its own, so loading no longer drops Run in editor
rootandClaude Opus 52026-09-14 16:13:40 +02:00
68c92daaa6
A transition carries a name, so a state needs no visible port (#52)
rootandClaude Opus 52026-09-14 14:03:09 +02:00
a041322a0e
An edge to a vanished port needs a handle, so the port stays as a ghost (#60)
root2026-09-14 11:50:36 +02:00
d5e67cd80c
A shader costs a source nothing, because a field was already one draw call (#88)
rootandClaude Opus 52026-09-14 11:06:45 +02:00
a399795772
Shader graph: Pow node, base held at 0, exponent broadcast for colours (#80)
rootandClaude Fable 5.12026-09-13 18:29:04 +02:00
102a649a35
Shader library: fingerprint without node positions, a drag no longer recompiles (#65)
rootandClaude Fable 5.12026-09-13 18:00:48 +02:00
016e83c9b5
Transform: scale, rotation and mirror as properties, world transform as a matrix chain, oriented colliders (#76)
rootandClaude Fable 5.12026-09-13 17:25:06 +02:00
f85606427b
Shader graph: UV, Sample texture, Texture size, Time, Sin/Floor/Fract/Step; edge mode on Output (#78)
rootandClaude Fable 5.12026-09-13 16:18:22 +02:00
0e5e5ef925
Shaders draw in the sprite's own pass: a Mesh with the graph's fragment, no filter (#77)
rootandClaude Fable 5.12026-09-13 15:31:08 +02:00
05f7a2745e
Frames: cut each frame into its own GPU texture, no more fill matrix (#47)
rootandClaude Opus 52026-09-13 13:25:49 +02:00
06e1494f94
Textures: Linear/Nearest labels; prove the filter pass does not resample pixel art (#68)
rootandClaude Fable 5.12026-09-13 12:53:21 +02:00
3e99480b55
Actor smoke: measure the stop with two samples after key-up, not against a pre-screenshot probe
rootandClaude Fable 5.12026-09-13 12:32:34 +02:00
6471671f7d
Refactor round: ship web/index.html, drop the remote browser, fix stale comments and README
rootandClaude Fable 5.12026-09-12 15:44:05 +02:00