Jump to content

Josh

Staff
  • Posts

    24,629
  • Joined

  • Last visited

Everything posted by Josh

  1. Version 0.9.0 is the default channel. This is the initial release and will never change. You can switch to the dev channel to get the latest updates. To do this run the client app: Press the uninstall button. Select the dev channel in the dropdown box. Hit install to download the files.
  2. Editor will now set a system environment variable called ULTRAENGINE with the path to the install directory, and project templates now use that instead of explicitly indicating the path on the user's machine. This is good because if you download a project from someone else and your Ultra Engine install folder is different from theirs, it will still compile with no changes. The C++ component include / register stuff is moved into a separate file so main.cpp is simpler.
  3. Okay, this is implemented now. The environment variable will be set when a C++ project is created, only if it does not already exist. The C++ project template is updated to use the env var and the property sheets file is removed. This will not affect your existing projects.
  4. Yes, it's in the player components group.
  5. Looks like this can be used in a bat to set a value. I think set is user and setx is system: setx /m ULTRAENGINE "C:\Program Files\Ultra Engine"
  6. If you open the vcxproj in a text editor and do a search and replace to replace "$(UltraEnginePath)" with "$(ULTRAENGINE)" then you can get rid of the propertysheet.props file and Visual Studio will be able to compile using the env variable that is set.
  7. With the env variable set, you can replace propertysheet.props with this, and it does actually work: <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ImportGroup Label="PropertySheets" /> <PropertyGroup Label="UserMacros"> <UltraEnginePath>$(ULTRAENGINE)</UltraEnginePath> </PropertyGroup> <PropertyGroup /> <ItemDefinitionGroup /> <ItemGroup> <BuildMacro Include="UltraEnginePath"> <Value>$(UltraEnginePath)</Value> <EnvironmentVariable>true</EnvironmentVariable> </BuildMacro> </ItemGroup> </Project>
  8. Okay, I figured out how to add this into the installer with Inno setup: [Setup] ChangesEnvironment=yes [Registry] Root: HKLM; Subkey: "System\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "ULTRAENGINE"; ValueData: "{app}"
  9. I have considered this, but it either requires admin permissions or requires the user to manually add the key, so I am hesitant to start building anything on this.
  10. Also do this: https://stackoverflow.com/questions/42662444/how-to-disable-perfwatson2-exe-from-visual-studio
  11. Fixed DPI scaling issues in flowgraph interface.
  12. Reported to Valve here: https://steamcommunity.com/groups/steamworks/discussions/0/6699728899097329588/
  13. The Lua debugger is actually using Lua socket, not libcurl. A couple of things to note: Curl (curl.exe) is now included standard on WIndows 10 and 11. Having libcurl.dll in the application's root directory will cause the Steam build to crash, presumably because the Steamworks API is using a different version of the DLL: https://steamcommunity.com/groups/steamworks/discussions/0/6699728899096777474/
  14. It's not a bug, I intentionally designed this behavior that everyone seems to dislike.
  15. Updated example that uses LoadTable() instead of the Lua JSON parser: local s = FetchUrl("https://ambientcg.com/api/v2/categories_json") local t = LoadTable(s) if type(t) == "table" then local n for n = 1, #t do if (type(t[n]) == "table") then if type(t[n]["categoryName"]) == "string" then Print(t[n]["categoryName"]) end end end end
  16. LoadTable will now return a Lua table from a string as well, if it is encased in {} or [] characters. Note that type(t) will now be "table" instead of "userdata".
  17. LoadTable now returns an actual Lua table, not a C++ table. LoadTable can load a file from a path or from string info: t = LoadTable("{\"a\":1}") Print(t.a)
  18. Changed "userdata" values to "table" for incoming update. Changed emissive texture format to BC7.
  19. It should detect a file system event. If not it is a bug... A simple test works correctly: CreateDir("Models/test") CreateDir("Models/test/a/b/c", true)
  20. First build with support for VR is uploaded on the /dev channel. OpenVR is being implemented initially, with plans to switch over to the more complicated OpenXR library in the future. Add delayload:openvr_api.dll to your C++ projects in Solution Properties > C++ > Command line. This will allow non-VR apps to be distributed without the OpenVR DLL. Sky rendering method is changed, so you need to sync your project to get some files. Just HMD display and mirror-to-window is currently supported. No controls implemented yet. Don't create a camera, it will be created automatically. No access to HMD object or orientation yet. Also fixed black viewport on first frame bug (Nvidia only). Added ASyncDownloadFileInfo:Cancel() method. Example: #include "UltraEngine.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { //Initialize engine in VR mode EngineSettings settings; settings.openvr = true; Initialize(settings); //Load the FreeImage texture plugin auto plugin = LoadPlugin("Plugins/FITextureLoader"); //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); //Create a world auto world = CreateWorld(); //Environment maps auto specmap = LoadTexture("https://github.com/UltraEngine/Assets/raw/main/Materials/Environment/footprint_court/specular.dds"); auto diffmap = LoadTexture("https://github.com/UltraEngine/Assets/raw/main/Materials/Environment/footprint_court/diffuse.dds"); world->SetEnvironmentMap(specmap, ENVIRONMENTMAP_BACKGROUND); world->SetEnvironmentMap(specmap, ENVIRONMENTMAP_SPECULAR); world->SetEnvironmentMap(diffmap, ENVIRONMENTMAP_DIFFUSE); //Create a light auto light = CreateBoxLight(world); light->SetRotation(55, 35, 0); light->SetRange(-10, 10); light->SetColor(2); //Load a model to display auto model = LoadModel(world, "https://github.com/UltraEngine/Documentation/raw/master/Assets/Models/Characters/cyber_samurai.glb"); model->Turn(0, 180, 0, true); model->SetPosition(0, 0.25, 0); model->SetScale(0.9); //Add a floor auto floor = CreateBox(world, 5, 1, 5); floor->SetPosition(0, -0.5, 0); auto mtl = CreateMaterial(); mtl->SetTexture(LoadTexture("https://github.com/UltraEngine/Documentation/raw/master/Assets/Materials/Developer/griid_gray.dds")); floor->SetMaterial(mtl); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { world->Update(); world->Render(framebuffer); } return 0; }
  21. Added the default player model with animations.
  22. Duplicate report, as mentioned above. This is a design issue and I don't know yet what the solution is. I also wonder if making terrain selectable at all is a good idea, since it can be awkward during editing. I can think of a few solutions: Make a separate selection tool. This effects the entire workflow and I don't think I like the idea. Just allow one terrain per level, like Leadwerks does. Make a selection lock button. Does not solve the problem described here, but it does solve the issue of accidentally deselecting / selecting the terrain. Make selection require holding down the control key. I'm cautious to make any changes right now until we figure out the right decision to make.
  23. https://creazilla.com https://3dassets.one/?q=&sort=popular
×
×
  • Create New...