Skip to main content

just_game_engine_editor 0.1.0-dev.2 copy "just_game_engine_editor: ^0.1.0-dev.2" to clipboard
just_game_engine_editor: ^0.1.0-dev.2 copied to clipboard

A level editor that runs inside your just_game_engine game while you develop it: scenes, inspector, 2D and 3D level design, timelines, tilesets, materials, an Asset Store.

Changelog #

0.1.0-dev.2 #

  • Tags. The Asset Store shows where each item comes from (Official, Third Party, Unlisted, Local) and how finished it is (Beta, Experimental, Deprecated; stable shows none). Experimental items are listed once "Show experimental" is on, deprecated ones only to a search; installing either says so first, and an installed deprecated item is a warning in the Problems dock, naming what replaces it. The editor shows its own stage, Beta, on its start card (EditorRelease).

  • A tidier store page. Cards have a 16:9 picture (marked when the item is installed or has an update), a line about the item, and one row of tags; a kind with nothing to show has no chip; the grid sorts by name or by the newest release. The details show the item's pictures with a strip to pick one, a version menu (install or switch to an older version), the version's date, size, licence and catalog by name, what it needs (another store item opens on a click), and links to its store page, its source and the report form. When no catalog can be read, the page says why and offers to try again, to show what is installed, or to open Sources. The Installed page lists items no catalog lists too (a checkout of your own, or everything while offline), as their own manifests describe them and with their own pictures; a checkout of your own shows no empty button bar.

  • The Asset Store is part of the editor. BuiltInAssetStoreModule (in asset_store.dart) comes with every game's editor, as the materials do, so plugins, kits, art and sound can always be added from inside it: the shop button under the transform tools (always shown, with its tile and tip on the start card), Ctrl+Shift+G (Cmd+Shift+G on macOS), or Get assets from the store in the Assets dock. It takes the place of the just_asset_store_editor package, which is retired. The editor now depends on just_asset_store ^0.1.1, the store's core: plugins and kits it installs go into plugins/{category}/{name}/, content into packages/{category}/{name}/.

  • WebAssembly again. The 3-D graphics files reach files through package:just_editor_core/io.dart instead of dart:io, so the package is wasm-ready again; the store's own files never compile on the web (an empty module stands in for it there).

0.1.0-dev.1 #

First release: a level editor that runs inside a just_game_engine game in a debug build. The package compiles on every Flutter platform (web and wasm too); editing runs on Windows, macOS and Linux. Elsewhere, and in a profile or release build, JustGameEditorPlugin.register returns null (supportsPlatform says why) and the game runs on its own. Needs just_game_engine ^2.0.0-dev.2, Flutter 3.47.1 and Dart 3.11.

Getting started #

  • JustGameEditorPlugin.register makes the editor for a game's engine, with the game's modules, spawners and hot reload hook; JustGameEngineEditor shows the game with the editor over it, and is a plain GameWidget when there is no editor.
  • Built on just_editor_core (the module contract, the scope, undo, the inspector's rows, the UI kit), re-exported by the package's library.
  • The editor's own tools come as modules, BuiltInEditorModule, BuiltInMaterialsModule and, for a game with 3-D graphics, BuiltInGraphicsModule, registered ahead of the game's (JustGameEditorPlugin.builtInsFor).

Scenes and play-testing #

  • Scenes are JSON files in assets/scenes/, with the play order in scenes.json; the game loads the same files through the engine's SceneLoader.
  • Files of an earlier scene format are migrated as they open; components no registered definition reads are kept and written back unchanged.
  • New scene (2-D or 3-D) writes the same starter scenes as just game scene new (just_game_engine_formats).
  • A start card when no scene is open, and a Scenes panel: search, sort, play order by drag or Alt+↑/↓, rename, duplicate, delete, keyboard control.
  • Autosave with backups in .editor_backups/, recovery of unsaved changes on open, and the last session reopened on start.
  • Play-testing in place: Play, Pause, Step, Restart and speed, a game-camera preview (F4), and the authored level put back exactly on Stop.
  • The editor tells the just tool it has the project open (.dart_tool/just_core_cli/editor.lock), so just game scene and just upgrade wait for it.

Viewport and scene tree #

  • All, Move, Scale and Rotate (Q, W, E, R); moving a parent carries its children; each gizmo drag is one undo step.
  • Snapping: one switch, move, rotation and scale steps, smart snapping to entities and guides; Ctrl (Cmd on macOS) suspends it mid-drag.
  • Gizmos shown or hidden per mode (editor, Level Designer, play-test), each kind on its own.
  • The scene tree on the editor's one undo stack: re-parent, reorder, group, rename, enable, hide, lock, isolate, colour labels, and filters by component, tag, layer or problem.
  • A right-click menu on the level; files dragged from the Assets dock become entities where they land. One that goes in the other kind of scene — a model in a 2-D scene, a sprite in a 3-D one — is turned away with a message saying where it goes.

3-D scenes #

  • An orbit-and-fly view, a 3-D gizmo (in world or local axes), picking by ray, a grid on the working plane, and placement on surfaces.
  • A 3-D Level Designer with a built-in Default 3D kit: marquee select, a working plane, Place with a ghost, arrays, size handles for the eleven built-in 3-D shapes and for colliders, groups, view modes and a view cube, bookmarks, a slice plane, four views, a material paint tool, prefab files with overrides, and level aids (ruler, level checks, a performance meter, Play from here).
  • 3-D physics when the engine has Physics3D: collider and character outlines, material presets, Solid and Trigger variants of every shape, and Problems checks.
  • 3-D graphics when the engine has Graphics3D (BuiltInGraphicsModule, in graphics.dart): models (.glb, .gltf) in the Assets dock with rendered pictures, dropped into 3-D scenes, opened in a Model window of their import settings and cooked (ModelCooking), or placed with their lights and sockets as entities; picking by triangles; light markers, a selected light's reach and a selected camera's frustum; Model, Light and Environment inspector sections with sky presets.

Inspector #

  • Built from each component's runtime ComponentDefinition, with an editor for every field type; vectors and related numbers in one row, lists and maps as rows, references as pickers.
  • Cards that can be rearranged (Transform first), saved with the entity's component order.
  • A typed value is kept when a field is left (Enter, Tab or a click elsewhere); Esc puts back what was there.
  • A colour picker beside the field, live in the scene, with gradients, project palettes and an eyedropper.
  • Tags from assets/project/tags.json, with tag and target pickers.
  • Physics, 2-D and 3-D alike: body type, material presets, Fit to visual, collider editing in the viewport, named collision layers and a collision grid (assets/project/physics.json), a live readout while playing.
  • Virtual cameras: previewed while authoring, frames, zones and confiners drawn in the viewport, Solo camera, and a dolly track tool.

Level Designer #

  • Tools: Select, Draw, Paint, Sample and Measure, with rulers and guides, a minimap, view bookmarks, align, distribute, duplicate and array.
  • The Level Map: one tile map per scene, painted with Stamp, Terrain, Fill, Erase and Select tiles, on orthogonal, isometric, staggered and hexagonal maps; placed entities go on its layers.
  • LAYERS and TILESET panels, a built-in Basic shapes tileset, and a Tileset Editor for collision, animation, properties and terrains.
  • Tiled: import .tmx and .tmj, convert .tsx and .tsj, export any map.
  • A designer switch: a module can bring a Level Designer of its own (prefabs, tools, layers, grid).

Sound and 2-D lighting #

  • Sound sources and the listener as markers, a selected source's reach drawn in the viewport, an Audio group in the Add menu, and an audio file dropped on the viewport becomes a source. Sound plays only in a play-test.
  • 2-D lights and the scene's lighting as markers, a light's reach and a spot's cone drawn, a Lighting group in the Add menu, Shift+L to see the scene unlit, and a check for lights with no Scene lighting.

Materials #

  • 3-D and 2-D material files pictured in the Assets dock; New material, New 2D material, New screen material and New variant.
  • The 3-D and 2-D Material windows, alike in layout and keys: the material's values in cards on the left, a live preview under one toolbar, presets and variants. The 2-D window adds effects from a grouped, searchable Add effect menu.
  • A material being edited is drawn live in the open scene; a material dropped on what it draws is one undo step; Level Map layers take a 2-D material.
  • Problems checks for materials, with fixes; materials made from texture sets and from a model's own; normal maps made from a picture (NormalMaps, in materials.dart).

Docks and settings #

  • One tabbed dock panel: Console (with a command line), Assets, Timeline, Profiler, World, Problems, History, Animator, Search, Tags and Physics Layers. Tabs reorder, docks pop out, and the layout is remembered.
  • The Assets dock opens every file: a scene as the scene, a file in its module's window, and any other JSON file in a read-only JSON window.
  • Timeline: dope sheet, curve editor, Record, markers, work and play ranges, motion paths in the viewport, and a preview that never reaches a save.
  • Problems: what is wrong with the open scene, many with one-click fixes.
  • Settings (Ctrl+,): appearance, accessibility, editing, snapping, viewport, saving, play-testing, Console, performance and every command's keys, searchable, exported and imported as one file.
  • Accessibility: text size, bolder text, high contrast, colour-blind safe colours, reduced motion, longer timings, bigger targets and a visible focus ring.
  • On macOS the shortcuts use Cmd, and Backspace deletes.

Hot reload #

  • A hot reload brings the game's wiring (register(onReassemble:)), the component definitions, every registry, the Level Designer's tools and the built-in docks up to the code; a field added to a component shows in the inspector.
  • EditorModule.onRegister runs once per module, onReassemble after each hot reload; definitions, prefabs and styles are getters, so a reload updates them.
  • A hot restart starts the editor clean.
1
likes
160
points
108
downloads
screenshot

Documentation

API reference

Publisher

verified publisherjustunknown.com

Weekly Downloads

A level editor that runs inside your just_game_engine game while you develop it: scenes, inspector, 2D and 3D level design, timelines, tilesets, materials, an Asset Store.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#game-engine #gamedev #level-editor #editor #game

License

BSD-3-Clause (license)

Dependencies

flutter, just_asset_store, just_debugger, just_editor_core, just_game_engine, just_signals, just_tiled

More

Packages that depend on just_game_engine_editor