Repository navigation
ReyEngine v0.5.0-beta
Pre-release
Pre-release
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
initialSubmeshToHideand the other "to hide" fields get a checklist of the mesh's own submeshes, andsubmeshRenderOrdergets 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.
- Skin parts with no material of their own draw the way the game draws them: the inhibitor cage is see-through, and the Map12 turrets, inhibitors and nexus are no longer dark.
- A TFT board is lit by the lighting volume that is on at the start, so the anniversary cake is no longer dark.
- Stencil-only materials stay invisible, so a TFT stage-transition mask no longer covers the board.
- Blended ground no longer has the sky and clouds painted over it (dawnbringernightbringer's board).
- Textures read only by the vertex shader are bound. The Arena's cloth sways by its mask without taking the brazier with it, and kites and foliage move as their masks say.
- A Summoner's Rift object that names dragon layers shows only on those layers; Base content stays on every one.
- Materials that repeat a setting's name load instead of failing the whole file (thelastdrop, Soraka skins 53-61).
- The Particle Editor says why an effect draws nothing. Two Summoner's Rift effects, HoL_26_CubeGrid and HoL_26_CubeGrid_02, use Riot's new component-based effect format. All of their emitters are disabled, so the game draws nothing from them either, and the editor now says so instead of reporting a failed render.
Fixed
- Switching props off and on, or dragging a prop, could crash the editor on Direct3D 11. Props also sometimes drew particle meshes after the scene was rebuilt.
- Closing the last 3D view could crash the editor.
- Map mesh particles below a height of -1 drew solid black: waterfalls and the dragon pit.
- A saved or built map no longer carries vertex buffers that no mesh uses, which LTK Manager refuses to load. Build Package cleans a project file saved before this fix, and the file itself is cleaned the next time the map is saved.
- A duplicated emitter or placement keeps the type of its empty optional fields, as Riot writes them.
- The Particle Editor's Direct3D 11 view stayed black when Direct3D 11 was already on as the window opened.
- An install whose hashes come only from Mimir's tables no longer warns "No hash dictionary yet" at every start.
Known limits
- Board stages show where a stage ends up. Lighting and fog fades, the props' stage animations, sounds and the transition masks are not played.
- Effects fixed to the camera (eight on the TFT boards) are left out of Play All. The game shows them as screen overlays, which the editor does not draw.
- The esports banner walls and platforms show whenever Props is on. Whether the game places them outside tournaments is not in the data.
- When a material repeats a setting's name, the editor uses the first copy. Which copy the game uses cannot be told from the data.
- Riot's new component-based effects are recognised, not simulated. None of the shipped ones draws in game.
- OpenGL does not apply mesh particle texture transforms, and map previews need Direct3D 11.