Skip to content

Releases: TheKillerey/ReyEngine

ReyEngine v0.5.1-beta

ReyEngine v0.5.1-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Oct 19:14

A small release about the previous one: Got it in What's New puts the glows out at once.

Fixed

  • Got it left the menu glows on until the next start. After an update, the menu entries whose capability changed carry a glow, and Got it in Help ▸ What's New… marks the release as seen. It saved that, but the glows in the open window never heard about it: they were told under a name the editor's UI framework no longer listens for, so they stayed lit until the editor was restarted. They go out the moment you press Got it now.

Nothing else changed.

ReyEngine v0.5.0-beta

ReyEngine v0.5.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Oct 17:06

A release about seeing a map the way the game shows it. Direct3D 11 is now the default renderer, and much more of what Riot's maps and effects do reaches it: fog, bloom, stencil-masked particles, the TFT boards' own stages, the event content Summoner's Rift keeps hidden, and the critters and decorations every map places by itself. The Content Browser shows a picture of each map, and a map opens framed the way that picture is. The Particle Editor catches up with LTK Manager's on forces, moving emitters and particles born on a mesh or a character. And a mod can now send its game bin edits to LTK Manager as declarations, so it keeps Riot's later changes to the same bins.

Added

  • Map previews in the Content Browser. A map's tile shows a rendered picture of the map instead of the map icon: its start state (a TFT board at its first stage, no event switched on), with its placed props and the decorations it places itself. Particles, the sky and dynamic lights are left out. Pictures are drawn in the background, one map at a time and only for the tiles on screen, and kept on disk under %LocalAppData%\ReyEngine\Cache\map-thumbnails, so a map is drawn once until it, its materials or the game's shaders change. Right-click a tile ▸ Refresh Thumbnail to redraw one. 198 of the 201 shipped maps render. Drawing needs Direct3D 11; on OpenGL you see the pictures already drawn.
  • A map opens framed the way its preview is. Opening a map used to put the camera around its whole bounding sphere, sky bowls included: 93,641 units from Summoner's Rift. It now frames the visible map from the preview's angle, at the distance that fills the viewport (17,934 units on Summoner's Rift). Frame and F use the same framing. A map tab remembers its camera when another tab takes the viewport, and reloading the same map keeps your camera.
  • Board stage, for TFT boards. TFT boards stage themselves: getting the board ready and each level-up switch layers, effects and lighting on and off. A Board stage picker under VISIBILITY LAYERS (32 boards, 46 stages) shows a board exactly as its own stage data leaves it: the layers that stage shows, the effects it switches on or off, the lighting volume it turns on, and the placed props that belong to it. Start is the map as it loads and changes nothing. Before this, a board's level-1 and level-7 content showed together, such as the white level-1 cloud vortex over dawnbringernightbringer's level 7.
  • Events. Summoner's Rift ships content for single game events: the Hall of Legends, the MSI trophies and the esports sponsor banners. A normal game has no event on, so they now start hidden; they used to show all the time. An Events block under VISIBILITY LAYERS has a box per event. It applies to meshes, particles, sounds and picking, and is never saved.
  • The critters and decorations a map places by itself. Every map has these: Summoner's Rift's snails, birds, lizards, antler mice, duck, stags and its gromp and dragon props, Bilgewater's boats and sharks, the Howling Abyss's poros and shopkeepers, and the TFT Freljord poro. They now draw and play their idle with the placed props whenever Props is on. The 117 esports sponsor banners join them when their event is ticked. They show the default "RIOT GAMES" flags their materials name, because the game picks the sponsor art per league at runtime. These are read-only: they are not listed in the outliner and cannot be picked.
  • Fog, drawn the way the game draws it. A map's environment fog is a height fog. Its shape was decoded from Riot's own shaders and is drawn on both renderers, from all six fog fields of the map's sun. Screen fog, a depth and height fog laid over the finished frame, is drawn by Riot's own shader on Direct3D 11 and by a port of it on OpenGL. Tools ▸ Light ▸ Lighting… has a FOG card (on/off, both colours, start and end heights, emissive in fog) and a SCREEN FOG card (each fog's switch, colour, start, end and strength; Save screen fog to map and Reset). The viewport's View menu ▸ Fog shows or hides both. Most shipped map suns switch fog off (153 of 201), and no shipped map has a screen fog.
  • Particle Editor: forces. Every emitter card has a FORCES section listing its acceleration, drag, noise, orbital and attraction forces, with their values by name. A force can be added and removed. A new force starts at the value Riot ships most, so it visibly acts the moment it is added. Mute and Solo change only what the preview simulates; the saved effect keeps every force.
  • Particle Editor: a Move handle. An emitter's position, and the centre of a drag, noise or attraction force, can be dragged with a gizmo in the preview: switch on Move on its emitter card or force. The file is written once, when you let go, and the forces that act are drawn as shapes, which Show force shapes in the RIG panel turns off. It works on the Still and Burst rigs; a missile or a trail moves every frame, so it has no handle and the view says why.
  • Particles born on a mesh or a character. An emitter can name a surface to emit from instead of a point. That surface is a mesh (Aatrox's trails, Caitlyn's E), part of a skin, or a skeleton's joints (Shyvana's dragon flames), and every preview now emits from it. Emitters that mean "the character the effect is on" (Akali's W, Aatrox's dash, the ward pads) emit from the character's posed body once there is one: open the character in the Character window, then RIG panel ▸ CHARACTER HOST ▸ Use character window. Each emitter card says what its particles are born on.
  • Send game bin edits as declarations. Project ▸ Project Settings… ▸ Send game bin edits as declarations (LTK Manager 1.20+), off by default. With it on, Send to LTK Manager writes only what the project changed in each game bin, rather than the whole bin. Riot's later changes to everything you did not touch then survive a patch. The output was checked with LTK Manager's own loader: 262 changed Riot bins applied back exactly. Anything a declaration cannot express ships as the whole bin, and the log says why. An older LTK Manager ignores declarations, which is why it is off by default.
  • Bake tangents into a skin. Right-click a .skn ▸ Bake Tangents (PBR), or the Character window's RENDERER card ▸ Bake tangents, writes MikkTSpace tangents into the mesh, so a normal-mapped skin has the tangents its shader reads. The file is byte for byte what LTK Manager's bake writes: 5,206 of the game's 5,627 skins match exactly. The other 421 are refused by both tools, for the same reason: a broken normal.
  • Submesh lists in the Character Editor. A skin's initialSubmeshToHide and the other "to hide" fields get a checklist of the mesh's own submeshes, and submeshRenderOrder gets an ordered list. They used to show as texture paths with a warning. Hiding a submesh updates the preview at once.

Improved

  • Direct3D 11 is the default, and the viewport toolbar is two short strips. On the left is what the mouse does: Move, Rotate, Scale, World/Local, Snap, Faces and Paint. On the right is how the view looks: undo and redo, Shading, Dynamic/Baked/Combined, the View, Show and Map menus, and Frame. OpenGL is still there as View ▸ Use OpenGL renderer (compatibility), for a machine where Direct3D 11 will not start, and the choice is remembered.
  • The gizmo. Rotate turns the way you drag and follows the cursor round the ring. It turns about exactly the axis it draws, in World and Local mode. The gizmo keeps the same size on screen from every camera; it used to grow as the camera moved. In face mode, Rotate and Scale no longer act on the mesh under the faces.
  • Focus and F work on Direct3D 11. Every Focus button did nothing there. They now move the camera to whatever is selected, every time: a particle, sound, light, added mesh, prop, probe or mesh selection. F focuses the selection, or frames the map when nothing is selected. The Mesh Preview's arena camera follows the champion on Direct3D 11 too.
  • The Particle Editor previews on the map viewport's Direct3D 11 renderer, with a toggle in the 3D VIEW header. It falls back to OpenGL with the reason shown, for example while a character host is set. Skyboxes that broke only in the editor, like 7yanniversary's, draw.
  • Bloom reaches the frame on Direct3D 11. It was computed every frame and then lost, so glowing materials never glowed. Champions in the Character window glow too.
  • Particles closer to the game:
    • Ray particles draw as rising streaks.
    • Mesh particles draw their vertex colours, so smoke has soft edges.
    • Stencil-masked effects stay inside their mask on Direct3D 11, such as the Arena's Noxus portal inside its arch.
    • Particles drawn as free-standing quads map their texture and rotation the way the engine does.
    • Mesh particles apply their texture rotation, scroll and scale: the anniversary candle flames stand upright and the aprilfool sky ring has no seam.
    • An emitter's scale and offset overrides are applied, so the darkstar_blackhole stars surround the arena instead of lying on the board as a ring.
    • Mesh particles use Riot's rotation order, and the Summoner's Rift base-door shields sit level with their edge fade in place.
    • An emitter that leaves its rate unset emits one particle, not ten a second. One that leaves its lifetime unset lives 3 seconds, not 1. These are the game's own defaults.
    • A large effect stays on screen until all of it leaves the view; the 7yanniversary penguin no longer pops out.
    • Play All leaves out effects the game switches on only later in a match, which stops the 7yanniversary penguin's gold strobe. It also leaves out effects fixed to the camera, like the aprilfool vignette. Selecting one still previews it.
  • Maps closer to the game:
    • Skin materials that live in a linked bin load, such as the Nexus glass.
    • Ski...
Read more

ReyEngine v0.4.10-beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Sep 17:39

A release about things you place on a map actually being there in game. Props placed from ReyEngine never spawned, because the game's server creates character placements and a mod cannot change the server; they are now placed the way Riot places its own decorations, which the game client creates itself. They can also wait for the game clock before appearing. And a mod can now ship an optional part as its own layer in LTK Manager, which the Harrowing map's champion fix is the first to use.

Added

  • Placed props appear in game. Add prop to map and Import character folder used to write a prop as a scenery character, the form Riot uses for turrets and camps. The game's server spawns those from Riot's own data, and a mod never reaches the server, so a prop placed that way never appeared, even though the map listed the character, its files were all in the mod, and its placement was written the way Riot writes its own. Tested on a replay: Riot's own Yonkeys spawned beside ours, which did not. Props are now written as a MapAnimatedProp by default, the form Riot uses for decorations like the ducks on Summoner's Rift (3,058 of them across the shipped maps). The game client creates those itself, the way it draws particles, and they spawn. Both windows have a Client-side prop box, ticked by default; untick it for the old character form.
  • A prop can wait for the game clock. An Appear after N s field beside it keeps the prop hidden until the game has run that long. It is built from pieces Riot already uses in champion effects, and it was confirmed in game: a prop set to 60 appeared at 1:00. It works on client-side props only.
  • Change a prop's time without placing it again. Select a client-side prop and the prop inspector shows its Appear after time; change it and press Save Map Content Edits. 0 removes the timer.
  • Old placements convert in one click. A prop placed before this release is a character placement. The prop inspector now offers Convert to client-side prop, which rewrites it in place: same position, rotation, skin and idle. It refuses what it cannot carry over faithfully and says why: turrets, inhibitors, the nexus and camps, which are gameplay units; placements on a special character record; and Riot's own placements, which the server spawns anyway, so a converted copy would appear on top of the original.
  • Content layers. Project Settings has a new Content layers section. Name a layer, give it a priority and the description LTK Manager shows beside its switch, and choose which layer each WAD folder ships in. Send to LTK Manager then delivers the mod in layers, so a user can switch an optional part off without losing the rest. Folders no layer claims ship in the base layer, so a project that never touches this sends exactly as before.
  • Fix Jade Champion Projections. On the Harrowing map every champion plays its jade version, and those old effects lay flat, hard-edged glows across the ground (Malzahar's Q among them). A button in the map inspector switches off those ground-projection effects for every champion in your game install, 407 of them on the current patch, and stages the result into the project in its own switchable layer. Riot rewrites these files every patch, so run it again after each patch; it always reads the game's own files. Three effects cannot be staged because their file names are longer than Windows allows.
  • Lift Decals. The map inspector can raise the ported decal overlay a set distance off the ground it was welded to, as one undoable edit.

Improved

  • Riot's own animated props show in the editor. The editor only recognised a prop by its character data, so every MapAnimatedProp Riot ships (the Summoner's Rift ducks and the TFT board props among them) was invisible in the viewport. They load and animate now, at most 144 in one map.
  • A character placement goes where the map keeps its characters. Placements used to go into whichever group of placements came first in the map file. On the Harrowing map that is a scratch group holding a test light and nothing else. They now go into the group that already holds the map's characters.

ReyEngine v0.4.9-beta

ReyEngine v0.4.9-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Sep 20:24

A small release about the previous one: v0.4.8's work never reached What's New.

Fixed

  • What's New skipped a whole release. The list is built from features that each highlight a menu entry, so a release that adds no new entry point had nothing it could list - and the window left the release out altogether, heading and all. v0.4.8 made maps with particles, animated props and lights draw far faster and fixed two things about capturing a sequence, and the window had nothing to say about any of it. A release can now carry lines of its own without a menu entry behind them: they are listed and marked NEW like anything else, and nothing in the menus glows for them, because there is nothing to point at. v0.4.8's two lines are there now, and Got it acknowledges the release you are actually running.

ReyEngine v0.4.8-beta

ReyEngine v0.4.8-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Sep 19:54

A release about a map with everything switched on, and about getting a shot out of it. The viewport stopped redoing work it had already done and stopped doing a toggle's worth of loading inside one frame, and it now says where a frame's time went instead of leaving you to guess. Cinematic Capture keeps the sky it was framed with, and a captured sequence runs at the speed of the shot rather than the speed of the export.

Improved

  • A map with particles, animated props and lights repeats less work every frame. Four things the viewport was redoing sixty times a second now happen once. A particle emitter that carries an animated mesh was re-posed by a call that builds a pose buffer, a positions array, a normals array, a bone-segment array and a table of every joint name in the skeleton — and then used the positions alone; it now poses into buffers it keeps, and skips the normals the mesh pipeline never reads. The same normals were being computed and dropped for animated props on their fallback path. The rings that show how far each light reaches were re-uploaded to the graphics card every frame even when no light had moved, which on the Harrowing map's 676 lights is about 2.3 MB a frame; they are uploaded when they change now, like the light markers beside them. And a placed prop's mesh was decoded twice — once in the background where it belongs, then again on the frame's own thread as the props were handed to the viewport — so switching props on paid for every prop mesh a second time.
  • An effect fills its first moment without reallocating on every frame of it. Each emitter keeps the particles it has drawn in one array, and that array was resized to exactly what was needed — so an emitter gaining a particle a frame, which is every emitter while it fills, replaced the whole array each time, and a system being warmed for the camera does that up to 150 times. The array grows in steps now: warming the jade map's 425 systems allocates 29.5 MB instead of 37.5 MB.
  • Switching props on no longer stops the frame. Every distinct prop mesh was uploaded in one go - the shaders resolved, every texture decoded, the pipeline built and the geometry sent to the graphics card - and it happened inside the frame the viewport was drawing, because that is where the viewport is handed the prop set. On a map with twenty-eight different props that is twenty-eight meshes' worth of loading between two frames, every time props are switched on and on every scene rebuild. The meshes now arrive a few per frame under a time budget, the way a particle system entering the camera is warmed, so the props fill in over a handful of frames instead of the editor stopping for all of them. The viewport's frame line says how many are still to come.
  • The viewport says where the particle time goes. The frame line reported the particle step as a single number, which tells you the particles are expensive without telling you which part of them is - and the parts have nothing in common: the camera gate, the simulation itself, the mesh and ribbon emitters, turning live particles into vertices, and sending those to the graphics card are five different costs with five different fixes. Each is timed and named on the line under the frame time, and the one-off rebuild after a playback change is separated from the work every frame does.

Fixed

  • Capturing a sequence dropped the sky out of the map. The cinematic capture saves its settings before the first frame and writes a PNG per frame, and the editor watches the project folder so files added from outside show up on their own. That refresh rebuilt the skybox list, and rebuilding the list reset it to "No skybox" - so a second into a capture the sky vanished from the viewport and every frame after it was written without one. The chosen sky is kept now: a refresh that finds the same skyboxes leaves the selection alone entirely, and one that finds a different set restores the same sky by name, without re-loading it. Saving a bin or adding a mesh dropped the sky the same way, and no longer does; the preview window's own sky list had the same fault.
  • A captured sequence ran its effects fast and its props slow. The viewport keeps drawing while a capture runs, on purpose, so you can watch the shot go by - but those live frames are on the wall clock while the captured ones walk the shot's timeline, and both were writing to the same two pieces of state. Every live frame that landed between two captured ones handed the particles a step of "now minus the shot's time", which the simulator caps at a tenth of a second and then applies: at 60 frames a second the effects advanced about six times too fast. The same crossing left the props' last-posed time on the other clock, so two captured frames in a row hit the rate limit meant for live frames and the second one repeated the first one's pose, which is why the props came out slow. A captured frame now steps by the gap to the previous captured frame and poses every prop every time - an export has no frame budget to spend - and a live frame drawn during a capture shows the shot without moving anything.

ReyEngine v0.4.7-beta

ReyEngine v0.4.7-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Sep 22:29

A release about putting your own characters in a map, and about a map with everything switched on. Every mob breathing and every particle playing used to be the slow way to look at a map; the frame no longer stops when the camera swings, the cinematic export no longer freezes the window, and the inspector shows an asset where you look for it. The Character Editor catches up with the game on what a champion does while it stands there — its idle effects, its show-and-hide, its chromas — and gets its map back under Direct3D 11, lit the way the old client lit it. And two things now look after themselves: a map skin you forced survives the next patch, and the hash tables stay current.

Added

  • Character Creator: an old character folder becomes a prop your map can place. Tools ▸ Import character folder… reads a folder of any age — its mesh, its skeleton, its animations and its texture — says what era every file is in, and brings the outdated ones to the form the game writes today: simple skins to 4.1, the pre-2015 rig to the current one, and animations to version 5, which the toolkit this editor builds on can read but never write. It then writes the three bins a placed character needs, in the shape Riot's own scenery props have, stages everything into the open map's package, and puts the prop down where the gizmo is. A mesh whose bones the skeleton does not have is refused rather than placed folded; an animation that moves none of that skeleton's joints is left out and said so, rather than shipped silent.

  • Add prop to map. Tools ▸ Add prop to map… lists every character the open map's package already carries — the camps, the turrets, anything you imported — and places one as scenery at the gizmo, with the idle it should play. A placed prop draws and animates, and nothing in game can target it. Characters you make with the Character Creator appear in this list as soon as they are staged.

  • The particle preview can carry an effect the way the game does. A particle file describes emitters and says nothing about where the effect goes: a missile is a missile because a spell flies it, not because of anything in the bin. So the preview sat everything at the origin, which shows a missile as a puff standing still and a trail with nothing to trail behind. The preview now has a rig. Still leaves it where it is. Burst starts the whole run over as soon as it ends. Missile flies it in a straight line at a real speed and stops it emitting where it lands, the way the game does. Trail circles it so a ribbon has a path to lay itself along. There is a height, a switch to replay the run, a switch to stop the effect halfway through so its teardown plays without holding Stop, and a seed - the whole of a run's randomness, so the same number gives the same run twice and a new one shows the effect playing differently without editing it. The rig opens on a guess from the system's own name, and says why it guessed, because the name is right about nine times in ten for a missile and wrong in the two ways that matter: a dash and a recall are written like one.

  • The preview rig comes from the game, not from a guess, when the effect belongs to a champion. A spell record names the effect it flies and carries that ability's own speed, so the preview no longer has to read the effect's name and hope. Open a champion's particles and a missile flies at the speed the ability really uses; an effect a spell plays on whatever it hit, or one a buff hangs on a bone, is told apart and stands still with the bone named. The panel says which of the two you are looking at, so a guess is never mistaken for an answer. Nothing outside a champion has a spell to ask, so a map's effects keep the name guess as before.

  • The particle editor has the shape a particle editor has. Five panes: the system list down the left, the emitters across the middle, the details on the right, and the curve editor beside the 3D view along the bottom, both running the full width of the window. The curve plot and the preview used to share the middle column under the emitter cards, which left the plot about a third of the window wide and the preview smaller than a single emitter card, while the two narrow panes beside them took the full height. Every pane says what it is and no splitter can collapse one into nothing. The rig sits at the foot of the details pane rather than over the 3D view, so the whole preview is free to look at and orbit.

  • The curve editor edits. The plot beside the 3D view used to be only a picture of the keys, with the numbers typed into a list next to it. Now you can drag a key to move it, double-click the graph to add a key where you clicked, and press Delete to remove the selected one. A key cannot pass its neighbours, and holding Shift while dragging keeps it on one axis. The wheel zooms, Ctrl zooms time only, Shift zooms the value only, and a right-drag pans. You can hide a colour curve's channels one at a time, or solo one with Ctrl-click, so you can edit red without grabbing green. A drag moves the key on screen while you hold it and applies once when you let go, so the effect is rebuilt once per drag, not at every pixel. A read-only file shows its keys as rings that cannot be picked up. The typed list stays, for when you need an exact number.

  • The champion window can rig an effect too. Picking one of a skin's effects by hand used to sit it still at its anchor, with nothing to start it over and no way to see its teardown. It now takes the same rig the particle editor has, and it takes it from the game: an effect a spell flies gets flown at that ability's real speed, and an effect the skin hangs on a bone is hung on that bone - which this window can do and the particle editor cannot, because this one has the champion. A cast composite and a clip effect are left alone; both already move better than a rig could.

  • A forced map skin survives the patch. The Map Skin Switcher's result used to go through the Patch Update Wizard like any other bin: diff it against the original it was made from, re-apply the differences onto the new original. That is the right thing for a hand edit and the wrong thing for a rule. Riot adds and removes map skin slots between patches — 16.17 brought a Hall of Legends slot, 16.18 took it away again — and a slot that did not exist when you forced the map cannot be in the diff, so it arrived as Riot shipped it, the game picked the seasonal slot, and the map you forced was gone. The switcher now records what you asked for in the project file — which map, which environment every slot is routed through, whether the turret, minion and nexus skins came along — together with a copy of that environment. At update time the wizard does the switch again on the new original, new slots included, and merges only the edits the recipe does not explain, so a conflict it reports is a real one. If Riot stops shipping the environment you forced, the recorded copy is applied and the report asks for a look in game. A map bin made before this existed gets its recipe worked out from the bin itself the first time the wizard meets it; one that cannot be worked out — a bin edited by hand after the switch — is merged as before, and running the switcher once makes it remembered from then on.

  • Hash tables and meta classes keep themselves current. Names for hashed paths come from CommunityDragon's lists or Mimir's tables, and the class schema behind the bin editor from LeagueToolkit, and all three were updated only when you remembered to ask. At startup the editor now fetches a newer Mimir release — or the CommunityDragon lists, whichever this install already uses — and a newer meta-class database, and re-resolves the open project. When nothing is new it costs one request each: the meta database is asked with the tag of the copy on disk and answered unchanged, and a CommunityDragon sync skips every file whose content hash the last sync recorded. Preferences ▸ Updates has the switch, on by default; off, Tools ▸ Sync is what it was. Mimir releases are kept one folder each, an unchanged table is reused from the previous release rather than downloaded again, and older releases are removed once nothing reads them — five of them, some 300 MB, used to sit beside each other with nothing ever clearing them.

Improved

  • A field you add is editable straight away. Adding one from the schema wrote it into the bin and then showed nothing to set it with, so the value you came for was there and out of reach until the file was opened again. The row now appears the moment the field does. Texture-valued fields can be added too - emissive, gloss and reflection maps - at the empty link the game already assumes.

  • The skin's own settings are editable. A character with no material draws from the skin's own block, and the editor showed only its diffuse. Everything else that block carries is now listed and editable - self-illumination, fresnel colour and strength, reflection opacity, gloss, emissive, brush alpha, cast shadows, skin scale - and any of the 43 the schema declares can be added at the value the game already assumes, so materialising a setting and changing it stay separate steps.

  • A character's submesh can be given a material. A character material is optional: Riot's scenery characters ship none at all and draw from the skin's own block, and so does an imported one - which means there was nothing to change the shader of. Each submesh in the character window now offers to author one, starting from the texture that submesh already draws with so nothing changes appearance, on a skinned shader that asks for nothing else. From there its shader, samplers and parameters are ordinary edits.

  • A placed prop can be moved. Mobs and props have been drawn in the map since the viewport learned to skin them, but the gizmo never touched one: selecting a prop showed no gizmo, and the editor had nowher...

Read more

ReyEngine v0.4.6-beta

ReyEngine v0.4.6-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 01:21

One fix, and it is the one that matters if you installed v0.4.5 through the installer.

Fixed

  • The MSI upgrade registered the new version and kept the old files. v0.4.5's installer ran, wrote 0.4.5 into the registry, and left v0.4.4's files on disk — so the app started as v0.4.4, saw a newer release, and updated again on every start. Two things let that happen: every release's assemblies carried the same file version (0.1.7.0, from a build property nobody bumped), and the installer removed the previous version only after copying the new files, at which point Windows Installer's rule of never replacing a file with the same version had already kept every one of them. The workflow now stamps every assembly with the release's version, and the installer removes the previous version before it copies — either alone would have prevented this; both are in.

Installing this release over the broken state puts the right files in place. Nothing else changed.

ReyEngine v0.4.5-beta

ReyEngine v0.4.5-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 00:59

A small release of small things, and one bug that was not small: the highlights that were supposed to point out new features after an update had never shown, in any release since they were added.

Added

  • Help ▸ What's New… lists every feature by release, newest first, with the ones this install has not acknowledged marked — and its Got it is the one place that puts the menu highlights out. The command to do that has existed since v0.4.0; nothing called it.
  • Animated GIF backdrops. A .gif behind the editor plays now, in every window, decoded once and shared; a still GIF stays a still.
  • The Mobs and animated props switch under Overlays highlights for the prop work of v0.4.4, so the release's third change has a control that says so.

Fixed

  • New-feature highlights never appeared. The registry behind them was initialised from a list declared further down the same file, and C# runs static initialisers in order — so it was empty in every real run, every highlight threw, and the throw was swallowed as a binding error. The test suite never noticed because each test class resets the registry first; a headless run of the new What's New window, a fresh process with nothing reset, is what caught it.
  • Every text box's placeholder used a property Avalonia has retired; fifty of them, now on the current one. No visible change, and a clean build log.

ReyEngine v0.4.4-beta

ReyEngine v0.4.4-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Sep 21:08

A release about the editor itself as much as what is in it. There is an installer now, updates explain themselves before they happen, the Blender add-on installs from a button, the look of the tool is yours to set — and underneath, the mobs and props placed on a map finally draw, animate and light the way the character editor does.

Added

  • An installer. Each release now ships a per-user .msi next to the portable zip. It installs under %LocalAppData%\Programs\ReyEngine without administrator rights, puts ReyEngine in the Start menu (and on the desktop if you say so), and upgrades in place — settings, projects and the install folder stay where they were. The zip is unchanged for anyone who prefers a folder.
  • Updates that show what they are. A new release arrives as a dialog with its release notes in it, not a yes/no box. Choose there, or under Settings ▸ General ▸ Updates, whether ReyEngine installs new releases by itself and restarts, asks first, or only opens the download page as before. The installer asks the same question on its options page, and msiexec /i ReyEngine-vX.Y.Z-win-x64.msi AUTOUPDATE=0 sets it for a scripted install; a choice made in Settings always wins over the installer's default.
  • The Blender add-on installs from the editor. Settings ▸ Blender (or Tools ▸ Install Blender add-on…) lists every Blender version on the machine, says whether the bridge add-on is there and whether it is the current copy, and installs it per version or for all of them — enabled straight away when that version's blender.exe can be found. No more copying a file into scripts\addons by hand.
  • Five more palettes, and a look of your own. Midnight, Forest, Amber, Rose and Slate join Crimson, Kalista and Violet. On top of any palette: an accent colour of your choosing, and a picture behind the whole editor — png, jpg, bmp, webp, or the first frame of a gif — with its own opacity, a glass slider that lets the panels over it show it through, and a choice of fill, fit, stretch or tile. Everything applies live while you look at it; Cancel puts it back. The picture sits behind every window, not only the main one, and the palette now reaches the last places that ignored it: the active document tab and the selected outliner row (cyan under every palette since before palettes existed), the flyouts and tooltips over the viewport, warning strips, error boxes, badges and the console's line colours.
  • Remove unused materials. The Materials window can now strip every material no mesh in the map draws, in one go, with the list shown first and ticks to narrow it. The old materials.bin is backed up under the project's .reyengine/cleanup/ before anything is written.
  • Props and mobs, properly. A placed mob or prop now draws through Riot's own skinned shaders in D3D11 and with the character materials in OpenGL, at the scale its skin .bin sets, playing its idle by default with any of its clips selectable in the inspector — and it opens in the character editor from there. Each one is lit by the map's lightgrid where it stands.
  • The preview window gets the shading modes, and spell casts are separated so Blitzcrank's outbound and return tether both render.

Fixed

  • Locke rendered wrong in both viewports, for two different reasons. In OpenGL his materials carried a flowmap texture and were therefore classified as river water — a rule that was only ever meant for maps, and a champion skin is never water. In D3D11 the parameters his materials declared without a value were dropped, when a value-less entry is an authored zero; the diffuse flowed across his body until the parser kept them.
  • A mob's animations come from its skin's graph, not its folder. SmallGolem wears the Golem's rig and animation set, and YoungLizard's idles are Lizard files; the folder-scan found stale clips for the wrong rig in one case and no idle at all in the other. The graph is the population now, with the folder only as a fallback when a skin has no graph.
  • The debug views read Onsen's vertex signature the wrong way round; the preview hid the loaded skin's own submeshes rather than a sibling's; and the props were drawn between the mesh's opaque and transparent passes, which is where the crash lived.

Known limits

  • The lightgrid lights placed props in D3D11; the OpenGL viewport and the character window's arena still use the neutral ambient.
  • An animated gif as the backdrop shows its first frame only.
  • The installer is unsigned until the project's SignPath application is through; Windows SmartScreen may ask once.

ReyEngine v0.4.3-beta

ReyEngine v0.4.3-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Sep 12:50

A release about the things you look at and the things you grab. New icon art for both viewports, a transform gizmo that is solid and stops growing in your face, markers that hide behind the wall they are behind — and the two windows that bring content in got the work they needed: Add Mesh can finally be used on a real map, and the Workshop has a shelf of your own.

Added

  • A Workshop shelf of your own. Import one or more legacy .troybin effects, or pick the particles out of any custom materials.bin or skin .bin, and keep them beside Riot's catalogue. Deletable, and they survive a patch — the catalogue next to them is rebuilt from nothing whenever Riot's wads change, which is exactly why yours cannot live in it. Entries point at your files rather than copying them, so editing the source and reopening the Workshop shows the edited effect, and a file that has moved says so instead of quietly disappearing.
  • Meshes on that shelf too. Shelve geometry out of a .mapgeo, .fbx, .glb, .gltf, .obj, .scb, .sco or .skn and add it to the map later. "Add mesh to map" opens Add Mesh on that file with that mesh ticked, because the material question is not optional and that window is where it is asked properly.
  • .skn is a mesh you can import. A champion's SimpleSkin comes in as plain geometry with its skeleton dropped — a map has no skeleton to bind it to. Each submesh arrives separately, so Aatrox's wings, body, sword and shoulder are four pickable pieces with four material cards.
  • Point-light range. A wire ball at each dynamic point light showing how far it actually reaches — the global radius multiplier folded in, so it is the range the map is lit with and not the raw number in the file. Overlays ▸ Point-light range.
  • Painted viewport icons. Particles, mobs and props, reflection probes, sounds and lights, in both the OpenGL and D3D11 viewports.

Improved

  • Add Mesh works on a real map. A shipping mapgeo is a library, not a model — base_srx offers 600 pieces across 186 materials — and every row used to arrive ticked with no way to filter, so "Add To Map" meant "append the whole source map". There is a search box now (over mesh and material name), select all / none over whatever the search leaves, nothing ticked when the import is clearly a library, and a material card only for the materials your selection actually uses.
  • The original material really comes across. Copying it was offered only when a .materials.bin happened to sit next to the mapgeo, which is never true for one extracted out of a wad; the bin is pickable now, and each material is checked against it so the option appears exactly when it will work. The copy brings its textures with it — without them the material landed structurally perfect and drew untextured, which is what "the material did not come across" looks like from the outside.
  • The transform gizmo is solid, and stays the same size on screen. It was a wireframe scribble that grew without limit as you flew in, until the arrows covered the thing you were placing. Both viewports now draw filled arrows, rings and boxes at a fixed pixel length.
  • Markers are hidden by what is in front of them. They used to be drawn with no depth test at all, so a particle under the terrain showed anyway and a busy map read as a cloud of icons belonging to nothing visible. Overlays ▸ Icons through geometry brings the old behaviour back when you want it. The gizmo is always on top either way.
  • Icons no longer grow without limit as the camera closes in; they are capped at a fraction of the viewport height, which means the same thing on a high-DPI display.
  • Particle list items can be duplicated and removed from their own row, and the emitter fields the editor could not read before now say what they are.

Fixed

  • The NavGrid overlay never drew in the D3D11 viewport. Nothing about it was broken: its upload was written inside the bucket grid's change guard, so it was only ever published when the bucket grid changed identity. Switching the overlay on never reached D3D11 at all. The face-edit selection sat in the same block with the same fault.
  • The debug views work in D3D11. They are if (mode == N) branches inside our own shader in OpenGL, and D3D11 draws with Riot's compiled shaders, which have none — so the modes had nowhere to live rather than a wire missing. All thirteen now render through a generated shader that replaces Riot's for the pass.
  • Every icon in the OpenGL viewport was drawn upside down, and had been since they were introduced. It went unnoticed because every glyph drawn in code was vertically symmetric; painted art made it obvious immediately.
  • A mesh lifted out of a mapgeo is placed where the gizmo is. Each piece used to be measured and positioned as the whole mesh it came from — up to 1,850 units away from where you put it.

Known limits

  • Basic and Riot Approx look identical on most maps, and that is correct. Riot Approx is Basic plus rim, matcap, emissive and specular, each gated per material — and only 2.3% of 9,253 shipped map materials enable any of them (0 of 92 on Map453). Load Map22 and look at an ocean-blend surface to see the difference.
  • In D3D11 those two modes are identical always: both draw Riot's own shader, so there is no approximation to differ from.
  • The depthBiasFactors emitter field is still parked. It is narrowed to one hypothesis — D3D rasterizer bias — and the files cannot settle it.