Josh Posted March 17, 2023 Author Share Posted March 17, 2023 Updated 1.0.2 Added Asset::GetPackage method Added Asset::packagepath member Fixed problems in OBJ loader and saver OBJ and glTF saving will now reconstruct Z component of converted BC5 textures OBJ loader will now create fewer vertices Added Stream::Align Fixed glTF byteOffset validation error Fixed reversed vertex X position in glTF export Added support for Microsoft DDS extension in glTF export Removed KTX2 plugin Added Basis Universal plugin Added support for KHR_texture_basisu in glTF loader/saver Fixed glTF save not writing object positions Fixed glTF save not including emissive textures Added support for our own ULTRA_triangle_quads extension for packing quad meshes in glTF files Fixed problems with Model::Collapse method Fixed TEXTURE_RG read/write/convert Added some missing shader combos when tessellation is used 3 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted March 20, 2023 Author Share Posted March 20, 2023 Updated 1.0.2 First build of "Asset Explorer", the precursor to the Ultra Engine editor is up. Run "UltraEngine.exe" in the client install directory to run it. The first thing you should do is select the File > Open Folder menu item and select one of your Ultra Engine project folders. The rest should be pretty self-explanatory, especially if you have used Leadwerks before. It's still the early days but the app is already very useful for file format conversion and fine-tuning of textures. Please let me know what you think, especially regarding the workflow and design choices. 4 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted March 27, 2023 Author Share Posted March 27, 2023 Updated 1.0.2 Fixed Model::Collapse mesh rotation Fixed BC4 compression Fixed Combobox RemoveItem Fixed Combobox SetItemState Widget::RemoveItem will now select the nearest item within the valid range Added WritePixel, Fill, and Sample overloads Support for more pixel format conversions 3 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted March 27, 2023 Author Share Posted March 27, 2023 Updated 1.0.2 Render layers now ignore hierarchy, i.e. a parent's setting does not affect the child Added Mesh::SetRenderLayers() (default is all layers) Removed Entity:SetSelected / GetSelected 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 1, 2023 Author Share Posted April 1, 2023 Updated 1.0.2 Fixed a lot of bugs with scrollbar sliders and improved their behavior when combined with treeviews and other scrolling widgets. Widget::SetRange now accepts a third parameter for the increments value. This allows you to create a smooth scrollbar slider that doesn't just move one pixel when the user clicks on the little arrows. The mouse wheel will move three times the increments. Window::GetMouseAxis now returns a Vec3 with the smooth mouse wheel / trackpad Z value EVENT_MOUSEWHEEL works as before, but EVENT_ZOOM will provide a high-resolution Z value for smooth trackpad scolling. Use IntBitsToFloat to convert event.data to a float value, otherwise it works just the same as EVENT_MOUSEWHEEL. Menus will now emit an action event for the top-most menu and an event for themselves, so two events go out and you can choose either. Added MENU_BORDER menu style (adds a 1-pixel line across the bottom of the menu) Added TABBER_MINIMAL tabber style 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 1, 2023 Author Share Posted April 1, 2023 There is a bug in the current version of the client app that will write a null-terminated when syncing text-based files. CameraControls.hpp will not open in Visual Studio, but if you open it in Notepad and remove the NULL character at the end of the file, then save, it will work. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 2, 2023 Author Share Posted April 2, 2023 Updated 1.0.2 Fixed menu hover bug in submenus EVENT_ZOOM now stores an integer in event.data and moves 100 units for every unit that EVENT_MOUSEWHEEL changes by Fixed alphabetical sorting when TREEVIEW_SORT style is in use Fixed TreeView::GetNodeAtPoint bug Drag and drop treeviews will now automatically expand a node when you drag over them Fixed widget cursor not working 2 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 4, 2023 Author Share Posted April 4, 2023 Updated asset browser and named it "Editor.exe". You can delete the previous EXEs I uploaded. This is pretty close to finished. The tree view and asset panel drag-and-drop functionality is all worked out now. Models and material files will load correctly from ZIP packages, with materials and textures intact. Mouse wheel Z-movement without right-click is temporarily disabled. All thumbnails other than the ones Windows generates are temporarily disabled. 2 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 4, 2023 Author Share Posted April 4, 2023 Updated 1.0.2 Fixed window size bug Fixed ziplib bug Improved behavior of zip package saving Added WINDOW_ACCEPTFILES and EVENT_WINDOWACCEPT Model files now load correctly from a package, with materials and textures Added function RelativePath() An important change was made to the way package paths work. The name of the package file will now be considered a folder. So if you have a package called "Models.zip" and it contains a file called "box.gltf" you can load the model with the path "Models/box.gltf". After seeing the zip files in the new editor, it was very clear to me this is the way it should work. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 4, 2023 Author Share Posted April 4, 2023 Added two Lua extensions in 1.0.2: ZenMode.lua adds an option in the View menu to switch to a fullscreen view StartupTime will print the time it takes for the program to start to the console 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 5, 2023 Author Share Posted April 5, 2023 Updated 1.0.2 Package file now name does not count as part of the file path files are loaded from. If you have a Zip file named "data.zip" in your project directory that contains a file "box.gltf" you would load it by calling LoadModel(world, "box.gltf") 3 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 6, 2023 Author Share Posted April 6, 2023 The client app has been updated: https://github.com/UltraEngine/ultraengine.github.io/raw/main/files/UltraClient.exe When you click on a project it will now be opened in the editor If the editor is already open, the client will send a message to the already opened instance, and it will switch to the new folder You can open the project folder by clicking on the new folder icon Shortcuts for the editor will be created on the desktop and in the start menu The gear icon has a little bit of shading on the gear now, which I think looks better Fixes file copy bug in project sync system Also note the name of the client app is now "Client.exe" and the editor is "Editor.exe". 3 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 7, 2023 Author Share Posted April 7, 2023 Updated 1.0.2 Lua listeners will now be executed in such a way that errors will be shown Added PreviewSound.lua extension, which plays a WAV file when the popup preview window is displayed 3 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 7, 2023 Author Share Posted April 7, 2023 Updated 1.0.2 Editor Added EVENT_ERROR which gets triggered in a RuntimeEvent. EmitEvent now returns a boolean. See docs for explanation. Fixed bug in WAV loader Modules (Lua DLLs) now stored in Scripts/Modules Added some critical system scripts in Scripts/Start/System Editor will now remember window position I recommend uninstalling and reinstalling version 1.0.2. Not the whole client, just the install process in the client. It only takes a minute and it will get rid of some scripts that I moved. This prepares for Lua debugging of the editor from VSCode. I haven't run the Lua debugger in a long time but I think it will all work to allow debugging of editor extensions. 2 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 7, 2023 Author Share Posted April 7, 2023 Update 1.0.2 In-editor Lua debugging now works with Visual Studio Code: Run VSCode Select the File > Open Folder menu item Open your Ultra Engine install directory (C:/Program Files/Ultra Engine) When prompted, install the Lua debugger extension. (Devcat Lua Debugger) Select the Debug option in the left-side panel and press the run button. Or just select the "Scripting > Open Editor Folder in Visual Studio Code" menu item. You can set breakpoints and examine variables when they are hit and step through the code. Set a breakpoint in one of the Lua files in "Scripts/Start/Extensions". 1 2 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 8, 2023 Author Share Posted April 8, 2023 1.0.2 Did a lot of work on editor Lua debugging and it works really well now. I recommend doing an uninstall / reinstall of version 1.0.2 to clear out the scripts. 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 8, 2023 Author Share Posted April 8, 2023 1.0.2 Updated editor to Lua 5.4.4 and everything seems to work fine. This adds a utf8 library, bitwise operations, constants, integers, to-be-closed variables, and goto. See here for details, previous version was Lua 5.1: https://www.lua.org/versions.html#5.4 A copy of Lua is available here for building modules. 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 8, 2023 Author Share Posted April 8, 2023 1.0.2 All recent changes are now available in the C++ library Updated C++ library to Lua 5.4.4 Added some system Lua files in the game template Added PollDebugger() function Added .vscode folder in game template for development with VSCode @CanardiaPrint() now takes an optional bool for the line return. This function does not attempt to be thread-safe in any way! 2 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 9, 2023 Author Share Posted April 9, 2023 1.0.2 Baseline Lua example now works ZenMode module now using light user data for HWND pointer 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 10, 2023 Author Share Posted April 10, 2023 1.0.2 Editor now using Lua with UTF-8 strings File thumbnails are disabled until I rework these No environment maps will be set temporarily and PBR materials will appear darker than normal (file opening bug, there is an error in the DDS loader and I don't know why, probably some low-level file read change...) It looks like the DDS load error is happening with every single DDS file...stay tuned... Fixed! (An integer overload of Max() was returning a double causing the calculated mipmap size to be wrong.) You can see the unicode working if you copy and paste this text into the console and press return to run it: Notify("Message: Unicode❤♻Test", "Title: Unicode❤♻Test") 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 10, 2023 Author Share Posted April 10, 2023 1.0.2 Updated C++ library with all recent changes. Documentation for exposing C++ classes to Lua is complete. It's a lot to take in, but it covers all the nuances and is very powerful. Use Core::LuaState() instead of the GetLuaState() function in the docs, for now. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 12, 2023 Author Share Posted April 12, 2023 1.0.2 New entity component system is integrated in C++ and Lua Preprocessor removed Added String and WString::Data() which is the same as .c_str() Documentation mostly updated, mostly: https://www.ultraengine.com/learn/Scripting?lang=cpp https://www.ultraengine.com/learn/Entity_AddComponent?lang=cpp https://www.ultraengine.com/learn/Component?lang=cpp 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 12, 2023 Author Share Posted April 12, 2023 1.0.2 Added String and WString constructors that play nice with nlohmann::json and eliminate the need for the horrible SetJsonString/GetJsonString functions I was using. This allows you to easily get strings from JSON structures without producing errors: j3["name"] = "Frank"; j3["number"] = 462; String s1 = j3["name"]; String s2 = j3["number"]; Removed DebugLog function Remove Language class since it's not tested and superfluous 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 12, 2023 Author Share Posted April 12, 2023 1.0.2 New Visual Studio projects are now set up to compile with the new good icon. I guess it needs both an .ico and a .png? I don't know why. Future builds of the client app will load the file projecticon.png to display in the projects list. Added "/delayload:lua54.dll" in release mode settings so you can distribute C++ programs without including the Lua DLL if you don't use it. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted April 13, 2023 Author Share Posted April 13, 2023 1.0.2 Since the Lua stuff is stable now, I was able to compile Lua as a static lib, which means no DLL is needed. Lua 5.4 repo here is updated: https://github.com/UltraEngine/Lua5.4 Scripts/Modules/Socket/core.dll is recompiled with Lua static lib. 3 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Recommended Posts