Jump to content

Josh

Staff
  • Posts

    23,142
  • Joined

  • Last visited

Blog Entries posted by Josh

  1. Josh
    I've uploaded a full build of version 4.3 on the beta branch. Version 4.3 will be released in short order and simply contains performance enhancements, OGG support, and bug fixes.
     
    Version 4.4 is due out in the spring and will include the new in-game GUI system. This will coincide with the first Leadwerks / itch.io Game Jam.
  2. Josh
    The Workshop interface will now more closely match our website. Item pages will now display videos, multiple images, and other information about the items.
     

  3. Josh
    The beta branch on Steam is updated with a new build. This uses the refactored Window class, on Windows and Linux. The GUI and Widget class are also added, although they are highly experimental and still in development. Both the engine and editor are using the refactored Window class, so please report any erroneous behavior your detect.
     
    Leadwerks is now using GDI+ for some GUI drawing commands, on Windows. You need to update your existing project by modifying the "Linker \ Input \ Additional Dependencies" property in Visual Studio and adding the "msimg32.lib" library.
     
    If you want to play around with the GUI system, check out GUI.h and Widget.h, in the Pro edition.
     

  4. Josh
    I'm happy to say I nailed the design of the Leadwerks 3 workflow overall, but there are a couple of places where there's still some friction. Because the community is going to soon be moving a lot of content into the Steam Workshop, now is a good time to take a look at those issues. It's also smart to address them before the Blender exporter is written.
     
    A new update has been pushed out to the beta branch on Steam that contains a lot of improvements in this area. However, both the map and model file format version have been incremented to support new features. That means your work saved in the beta build can only be opened by the newer builds, until a full update goes out.
     
    FBX Material Generation
    When FBX files are imported, their material files will now be automatically generated, if they aren't already present. A shader will be chosen based on what textures are present in the file, and it will even detect animated models and assign an animation shader when appropriate. This makes it dead simple to get models into Leadwerks.
     
    Collision Shapes in Models
    This came up because I found that 95% of the models I import are just static props that need a simple compound collision shape. First I tried using a convex decomposition algorithm in HACD, the same library Bullet Physics uses. This is a pretty impressive bit of code that takes a polygonal mesh and turns it into an approximate series of convex pieces:

     
    However, trying to generate low-poly physics geometry from a visual mesh had unpredictable results. Trying to generate a convex decomposition from a concave hand-modeled mesh was even worse; you had the tedium of hand-modeling the physics shape, combined with the unpredictability of an automated algorithm.
     
    So I abandoned that approach and decided to make something as simple as possible, that would handle most of the cases the average user encounters. You can now add solid convex pieces in your models, and as long as the name of the limb is "collision" it will get loaded as part of a default physics shape. The existing system of physics shapes remains unchanged, and all your existing objects will still work just as before.

     
    Multi-Animation FBX Files
    Leadwerks will now load multiple animations from FBX files, and will use the name of the animation sequence found in the files. Oh, by the way we now support...
     
    Named Animations
    Animations can now have a name assigned to them, and the animation commands now include an overload to specify a sequence name like "Run", "Walk", "Idle", etc. This makes it easy to mix and match character models because you don't have to worry about which animation index you want to use.
     
    This video shows how these great new features work:


     
    But wait, there's more!
     
    Script-based Post Effects
    We've also got script-based post effects in the editor! This allows a wider range of effects than pure shader effects did. You can modify the script in real-time and see the results immediately, although it is possible to crash the editor if you aren't careful:
     
    A samples bloom script effect is included that is a combination of mine and Shadmar's code. It is interesting that the real-time shader visualization of Leadwerks 3 has allowed us to create a much higher-quality bloom effect than what Leadwerks 2 could do. This is because I could quickly modify code, press F5, and see the results right away instead of having to restart the editor just to change a shader.
     

     
    Workshop files can now be selected in the file open dialog, so I expect to see lots of great new effects come from the community soon, especially from Shadmar and Klepto2.
     
    Batch Material Generation
    You just imported a folder full of textures and you don't want to create materials one-by-one. What do you do? The new Tools > Batch Generate Materials menu is the right solution for you! This feature will auto-generate materials for the entire current directory shown in the asset browser. And if you want some quick normal maps, just select the Tools > Batch Generate Normal Maps menu item. This will allow you to quickly import tons of textures and publish them to the Leadwerks Workshop in no time at all.
  5. Josh
    The beta branch has been updated. The following changes have been made:
    Rolled beta branch back to release version, with changes below. Added new FBX converter. Fixed Visual Studio project template debug directory. Fixed Visual Studio project template Windows Platform SDK version problem. If everything is okay with this then it will go out on the default branch soon.
  6. Josh
    An update is available on the beta branch. This fixes the picked triangle always returning 0 bug, and it adds a new dialog for managing Workshop add-ons on a project by project basis.
     
    I tried to keep the addon management dialog unobtrusive, but I still didn't want the user to be confused if they subscribed to a new Workshop item and didn't see it show up. The dialog appears automatically if you have added a new item, but otherwise it will stay hidden unless you open it with the Workshop > Manage AddOns menu item. This will allow you to remove items from projects that are not using them, and will make your published games a lot smaller.

     
    This is the final piece of the revamped Workshop file management system. I hope you find it useful.
  7. Josh
    Directional lights now allocate shadowmap stages in a different pattern. At medium and high lighting quality, a 4096x4096 texture will be used. I have no evidence for this, but I suspect this will be more reliable than creating a 8192x2048 texture. The directional light shader has been modified to read shadowmaps in this new pattern.
     
    The Texture::RG format has been added to the supported texture formats. This uses 2 bytes to store red and green channels.
     
    Terrains use a large amount of video memory to store their clipmaps. This amount has been reduced significantly and is using different texture formats. For example, the normal texture now uses an RG format texture and reconstructs the z component of the normal in the shader. The terrain shader has been modified to handle this.
     
    A serious bug that could cause the character controller to crash has been fixed. This was caused by two threads writing data at the same time without a thread lock.
     
    Two new collision shape options have been added for models. These are Convex Hull and Polymesh shapes. This setting only works with top-level models in your map, and will use either a polymesh (for static objects) or a compound collision hull (for dynamic objects) built from the model's own geometry. Please note that physics geometry built from high-poly physics geometry does not usually produce the most optimal results.
     
    Models can now act as shape hints, too. This totally removes the need for .phy files altogether, although the interface for that method is left intact.
     
    When walking down slopes, character controller motion will appear smoother now.
     
    Additionally, several small bugs have been fixed.
     
    These changes are available on the beta branch on Steam. Please note you must update your project to get the new shaders or your game won't render correctly.
  8. Josh
    A new update is available on the beta branch.
     
    The FPS player script has been fixed to allow throwing of objects when he is not holding a weapon.
     
    The script flowgraph system's behavior with prefabs has been changed. Script connections between prefabs will no longer be locked in the prefab file, and can be made in the map itself. The map version has been incremented, and maps saved with the new format will not load until you update or recompile your game. The changes in this system may have introduced some problems so please notify me of any maps that fail to load properly.
     
    You must update your project to get these changes. See the dialog when you select the File > Project Manager menu item. (Any files that are overwritten will have a backup copy made in the same directory.)
     
    You should only opt into the beta if you are comfortable using a potentially less stable version of the software that is still being tested.
  9. Josh
    A new update is available on the beta branch. This adds automatically generated hitboxes for animated characters, and a new tool to calculate physics shapes using convex decomposition.
     
    Existing C++ projects require a small modification due to the addition of the VHACD library. The VHACD includes directory must be added to the project header search paths.
     
    Visual Studio:

    $(LeadwerksHeaderPath)\Libraries\VHACD\src\VHACD_Lib\inc
     
    Code::Blocks:

    $(LeadwerksPath)/Include/Libraries/VHACD/src/VHACD_Lib/inc
     
    The C++ templates for new projects have been updated with these changes.
  10. Josh
    A new update is available on the beta branch on Steam.
     
    Changes
    Temporary slowdown from last beta is fixed.
    Bone picking behavior now matches default branch's original behavior (for compatibility with existing code).
    All recently locked bug reports fixed.

     
    Please see this note about updating C++ projects to accommodate the addition of the VHACD library.
  11. Josh
    Two new commands are available:
    System::CountGraphicsModes
    System::GetGraphicsMode

     
    This allows you to view available graphics resolutions and choose one.
     
    Fullscreen windows now work on Linux.
     
    The "Go To" menu item in the scene browser will also recenter the flowgraph editor, if it is open and the selected object has been added to the map flowgraph.
  12. Josh
    A new update is available on the beta branch. My goal is to get a stable build and move that over to the default branch before adding any new features.
     
    A bad bug in water rendering has been fixed.
     
    Memory usage in the editor is reduced.
     
    Additional checks have been added for potential rendering problems. These are for situations that should not happen, but It is possible these could raise errors when running in debug mode.
     
    Thank you for testing, I will continue to resolve any bug reports that arise.
  13. Josh
    A new update is available. This will cause the problem when the editor would crash on auto-loading a map with water on Linux at startup, and also fixes the problem where Lens flares weren't being hidden when you got close to them.
     
    Right now I am working towards a stable build that can go onto the default branch and am not adding new features before then. If you have opted into the beta branch, thank you for the feedback you're providing.
  14. Josh
    A new update is available on the beta branch.
     
    Fixed CSG texture / texture mapping bugs:
    http://www.leadwerks.com/werkspace/topic/10401-leadwerks-texturing-bugs/#entry85790
    http://www.leadwerks.com/werkspace/topic/10433-csg-prefabs-cannot-be-retextured-using-drag-and-drop/
     
    Fixed a long-standing script properties bug:
    http://www.leadwerks.com/werkspace/topic/11672-script-editor-incorrect-parameter-fields/
     
    Fixed script editor recent files list:
    http://www.leadwerks.com/werkspace/topic/11656-script-editor-recent-files-list/
     
    And other small fixes:
    http://www.leadwerks.com/werkspace/forum/80-bug-reports/page__changefilters__1
     
    This is close to the build that will go over to the default branch.
  15. Josh
    Asset browser search bug fixed:
    http://www.leadwerks.com/werkspace/topic/11966-searching-for-any-string-in-the-asset-browser-that-includes-a-will-crash-to-desktop/
     
    Low-quality fallback for water on Intel graphics implemented. At this point it is hard-coded to the manufacturer, but in the future an adjustable setting will be added.
     
    Water shaders moved into "Shaders/Water" folder. Make sure you update your project to get the shaders.
     
    Post-processing effects in the editor are disabled on Intel hardware, for stability. (There is a driver crash when deleting some FBOs and at this point it makes more sense to just prevent the problem and file a report with Intel).
     
    This is pretty close to the final 3.4 release. I'm just going to do some hardware testing and let it sit a few more days.
  16. Josh
    A new update is available on the beta branch. A few months ago, Valve introduced the SteamUGC API to Steamworks SDK. This replaces the original RemoteStorage API, and allows unlimited file sizes and a simpler command set. I also suspect the internals in the Steam client and servers are more reliable, because it is a second-iteration design. The beta build can download Workshop items published with the old legacy API, or with the new one. However, Workshop items published with the beta build will not be downloadable by the release build until version 3.5 is released. I am implementing this now because I think it will be more future-proof, and because I suspect it will solve some problems people have had syncing Workshop items.
     
    A command-line switch has been added to allow Leadwerks to automatically install Workshop items. This is now integrated together with the Steam browser protocol in our site, so that pressing the "Install" button on a Workshop item's page will launch Leadwerks and install the item. (This requires the beta build):
    http://www.leadwerks.com/werkspace/page/viewitem_?fileid=429595109
     
    The games section by default is now showing Workshop games from Leadwerks Game Launcher. If you have the Leadwerks Game Launcher beta, you can press the "Play" button to automatically launch a game in Steam. Games will show up automatically when they are published to the Workshop.
     

     
    A new Screenshots section on the site displays in-game screenshots people have uploaded from Leadwerks Game Launcher. By default Leadwerks Game Launcher screenshots are set to private because the application is unreleased. However, you can change this setting on the screenshot's page in Steam, and it will appear in the stream.
     

     
    These changes are all part of the overall direction Leadwerks is going in, which will benefit all members in our ecosystem, including developers, artists, and players.
  17. Josh
    The creation of our complete tutorial series, written with the help of Aggror, has had a really good effect because it gives us a specification saying "this is how to use Leadwerks". Instead of having different approaches and opinions scattered around, we can all discuss the user experience and be on the same page. This has led to improved user feedback, as we are able to more easily identify any small hangups or inefficiencies in the workflow. I'd especially like to thank the user Malachi for his thorough reporting as he has gone through the lessons.
     
    An update is now available on the beta branch that includes various fixes and improvements.
     
    The behavior of the file requester on Linux has been improved. I found it sometimes did not start in the correct directory, and improved this behavior.
     
    Right-click zoom in the texture editor is fixed.
     
    The .map file extension will automatically be added in Linux when a file is saved, if it is not specified (although technically this was not a bug, just the way the GTK file requester works).
     
    Some missing files have been added to the tutorials project and the documentation has been brought in sync with the samples.
     
    A bug that could cause the model editor to crash when closing the window and then saving the model has been fixed.
     
    You can now load any image file as a terrain heightmap.
     
    These changes are available now on the beta branch on Steam.
  18. Josh
    Things are very good on the business side of Leadwerks, so I wanted to take some time right now for some research and development so I can give you guys some new and shiny features. It's very interesting to me how the design of Leadwerks 3 has laid a foundation that allows us to do lots of new things that have never been done, and now I am getting to dig into some of those areas and explore.
     
    I've decided the area I want to focus on is all under the banner of "outdoor rendering". The vegetation and terrain systems work together to provide a lot of powerful options that make it easy to create realistic outdoor environments. Rather than try to add one "checklist" feature at a time, I want to develop all these things together so we can get the most out of their combined capabilities. For that reason, I am going to hold off on terrain tessellation for now, and do some more research on the "offset" terrain tool idea, which would allow crags and overhangs on heightmap terrain. I'm fairly sure it will work now, but there are still a few issues to resolve.
     

     
    The vegetation and/or terrain enhancements I am developing may also be featured in an upcoming book, so that is very exciting.
     
    Changes
    Added two new terrain layer texture mapping modes, vertical and trilinear. This is great for cliffs.
    Added setting in options to control terrain clipmap resolution. The corresponding command is world:SetTerrainQuality(quality). Use 0, 1, or 2 for the quality setting.
    Added new higher-resolution clipmap (using quality=2 or "High" setting in options.)
    Temporarily disabled terrain tessellation while I figure out what I am doing with this feature. It will definitely make it in, but we need some high-quality texture maps for this, and I may be doing some work with an offset vector on the terrain, so I don't want to roll this out until I see how those work together. The terrain tessellation shader from the previous beta will still work if you want to use it now.
    When your game is launched from the editor, you can press F12 and it will automatically take a screenshot and display the screenshot uploader when the game ends. So now you can easily upload in-game screenshots, and they will appear in the Leadwerks Game Engine community hub. (This took a little cleverness to set up because the launched process inherits the Leadwerks Game Engine app ID, which has the Steam overlay disabled.) I hope to see lots of screenshots from your games now!

     

  19. Josh
    A new build is available on the beta branch with the following changes:
    Fixed sidepanel tab switching bug.
    Improved compatibility with intel graphics.
    Fixes instance rendering bug with instance count over 256.
    Added terrain hardware tessellation.

     
    To enable hardware tessellation, select the Tools > Options menu item, select the Video tab, and set the tessellation value. Terrain layers much have a displacement map to display displacement mapping. Each terrain layer has an adjustable displacement value to control the strength of the effect. Displacement maps look best when they are rendered from a high-polygon sculpt. The terrain wireframe shader has alsod been updated to visualize the tessellation in wireframe view. You must update your project to get the new versions of the terrain shaders.
     
    At this time, terrain will always use tessellation when it is enabled, even if no texture layers contain a displacement map. This will be changed in the future.
  20. Josh
    An update is available on the beta branch. This will improve rendering speed of uncollapsed brushes in-game. You may also see a speed increase in the editor when viewing maps with lots of CSG brushes. You can read about this in detail in this thread.
     
    Lunarovich's suggestion here has also been implemented.
     
    I also tweaked a few stock prefabs and the FPS example map. The crates and boxes will now all use the dynamic shadow setting, and the red cage light prefab is set to only cast static shadows now. This prevents a lot of excessive shadow rendering in the big elevator room, since each point light requires six passes. You can see in the screenshot below the monsters aren't casting shadows from the red light on the right, but they are casting a shadow from the big overhead spotlight. It looks good and the performance is a lot more consistent now.
     

     
    Don't forget we are scheduling a Google Hangout Saturday the 5th at 1:00 PM PST to review the release of Leadwerks Game Launcher.
  21. Josh
    A new update is available on the beta branch on Steam. This fixes a few problems with brushes that the last update introduced. A grid snap button has also been added in the main toolbar.
  22. Josh
    A new update is available on the beta branch on Steam. This fixes the low-res terrain shader so it compiles on AMD cards. It also fixes a possible brush rendering crash having to do with the recent optimizations made to make uncollapsed brushes draw more efficiently.
  23. Josh
    A new update is available which should fix terrain rendering issues. The project explorer panel is also shown in the script editor on Linux as well. I am not 100% happy with the layout of this and it may change before the final release.
     
    I am also experimenting with Teragen 3 and think I can create some nice high-def skyboxes for us.
     

  24. Josh
    Leadwerks Editor has been updated to use version 1.35 of the Steamworks library. It also features Workshop improvements that eliminate the need for a local file cache in the app data folder, and should result in more reliable Workshop item downloads.
     
    The update is available now on the beta branch, for Linux and Windows.
×
×
  • Create New...