Jump to content

Josh

Staff
  • Posts

    22,895
  • Joined

  • Last visited

Blog Comments posted by Josh

  1. Starting on the flowgraph implementation. I'm going to try to have this done by Monday. This is rendered in GDI+.

    Untitled.thumb.png.bf1e0524d7761b562ba37816fef7a0d9.png

    Zoom also works, without much effort:

    zoom.thumb.png.d4ff642adb720ba217793c5d8b97e7fa.png

    I'm designing it as a custom widget I will post the source to, so it can be reused for other purposes if desired.

    I didn't mention it but segmented line widget blocks exist in Ultra now. ;)

    • Like 6
    • Thanks 1
  2.  

    The versioning is just an arbitrary number. Maybe you are right that making the final non-EA release "1.0" makes more sense. I don't have any strong opinion on this.

    This is the first release of the visual editor. This allows you to set up a scene, add components to objects, and adjust properties, which makes development much easier. The programming SDK may have been premature, but no harm done. The editor is very nearly complete, with a lot of features that Leadwerks lacks, so it makes sense to get it in peoples' hands as early as possible so they can start learning the new workflow.

    I would estimate most of this stuff will be done by the end of the year, but like any engineer I like to add extra padding to my estimates. The AMD issues will likely be the slowest step. If there is indeed a driver bug it will probably take a couple months before the next driver comes out. It might actually make sense to prioritize the flowgraph editor, since it has the most "downstream" effects on the workflow, whereas with something like decals there's no big questions about how they should work..

    Although no definite plans for Leadwerks have been announced, I have some things I would like to do with it. I don't know how much time I will have for it, but I do know my workload has gotten much much easier as of late. All the really difficult work is done and none of my remaining tasks are super difficult, so it is possible I may have some time for this in the near future.

    I understand you have put a significant amount of effort into building games on Leadwerks. Although Ultra can load Leadwerks assets, there are breaking API changes and the concepts don't always translate across with 100% accuracy. For example, Ultra supports multiple components per entity and Leadwerks just supports one. In order to overcome some of the limitations of the older system, breaking changes were necessary.

    However, Ultra offers an extreme performance advantage that in my view justifies all the difficulty of developing or learning a new engine. The engine scales extremely well as you add more and more content to your game. Rather than trying to make the easiest to learn engine, I am trying to make the one that is most worth learning. It took a huge amount of work to develop this system, and Vulkan made it even more difficult, but I think the payoff is worthwhile and the people who have had the most experience with Ultra so far seem to agree with me that this was the right approach.

  3. 8 minutes ago, ERKGames said:

    Can you please answer me:
    1. Am I correct in understanding that you are planning to release a version called 1.0, which will have a minimally functioning engine, but modules for developing flowgraph scenes and particle emitters will be unavailable?
    2. Will 1.0 also be released on Steam, or will it be an exclusive release for the website?

    1.0 is considered "Early Access" and does not include the following:

    • Flowgraph editor
    • Decals
    • Particle emitters
    • Brush smooth groups
    • Other various editor enhancements

    Additionally, AMD GPUs will display visual artifacts in the current build.

    Releasing now as "Early Access" is good because there is a ton of new things for people to learn, and I want additional user feedback on the design of some of the remaining items. People can only make good suggestions if they understand how the core engine works.

    Version 1.1 will be a free update to finish out these items, and at that point the software will no longer be considered "Early Access". I think March 2024 is a comfortable deadline to finalize that, with updates along the way on the dev branch.

    The standalone version of the software will first be available on the website here, followed by a release on Steam in early November.

  4. 6 minutes ago, DoomSlayer said:

    Are you planning to bring back the water system?

    Also, If I preorder I get access to Ultra right way or I have to wait for the official release on steam?

    1. In Ultra, every surface is reflective, so there is actually no need for a special water surface (AAA games nowadays are taking the same approach, see Phantom Liberty). Water consists of two things:

    • An animated or scrolling texture
    • Some kind of buoyancy physics volume

    I do not have the second part set up yet, but plan to do so. Also, we can probably do something interesting with the player physics to allow swimming.

    2. The standalone version will be available before the Steam build is.

    • Like 1
  5. Updated code for generating cubemap:

    #include "UltraEngine.h"
    
    using namespace UltraEngine;
    
    // https://www.ultraengine.com/community/blogs/entry/2780-building-a-single-file-4k-hdr-skybox-with-bc6-compression/
    int main(int argc, const char* argv[])
    {
        //Settings
        const bool compression = true;
    
        // Load required plugin
        auto fiplugin = LoadPlugin("Plugins/FITextureLoader");
        auto cplugin = LoadPlugin("Plugins/ISPCTexComp");
    
        // Load cube faces output from https://matheowis.github.io/HDRI-to-CubeMap/
        std::vector<std::shared_ptr<Pixmap> > mipchain;
        WString files[6] = { "px.hdr", "nx.hdr", "py.hdr", "ny.hdr", "pz.hdr", "nz.hdr" };
        for (int n = 0; n < 6; ++n)
        {
            auto pixmap = LoadPixmap(files[n]);
            Assert(pixmap);
            if (pixmap->format != VK_FORMAT_R16G16B16A16_SFLOAT)
            {
                pixmap = pixmap->Convert(TextureFormat(VK_FORMAT_R16G16B16A16_SFLOAT));// this step is required for BC6H conversion
            }
            while (true)
            {
                auto mipmap = pixmap;
    
                if (compression) mipmap = mipmap->Convert(TEXTURE_BC6H);
                Assert(mipmap);
                mipchain.push_back(mipmap);
                auto size = pixmap->size;
                if (size.x == mipmap->blocksize and size.y == mipmap->blocksize) break;
    
                size /= 2;
                pixmap = pixmap->Resize(size.x, size.y);
                Assert(pixmap);            
            }
        }
        
        // Save cubemap
        SaveTexture("skybox.dds", TEXTURE_CUBE, mipchain, 6);
    
        return 0;
    }

     

  6. There is a "browse" option in the collider drop-down, but you raise a good point. The current design follows how mesh materials and material textures work. With those items, there are multiple files that might be applied to one asset in one window. However, with colliders there is only one collider per model. So that might be a justification why a menu item for the window is the better option.

    I'm dragging my feet on your request to load colliders directly from models because:

    • Colliders loaded from models could be a Newton tree collision (mesh) or convex hull(s).
    • Convex hulls have a tolerance value to control exactly how precise/detailed the hull is.
    • Collision trees have an optimize parameter to control whether adjacent faces get merged.

    These options are all available in the current interface. In order to support them in a model loading step, I would need to duplicate all this functionality in a new interface. It is strange to implement the same feature twice.

  7. 5 hours ago, Mr. Fox said:

    Great job! Josh i still have my Leadwerks t-shirt here. Now i come back and have a great idea what i want to archive with your engine!
    btw under purchases the old leadwerks 2 is gone?!
    best regards

    Hi! Leadwerks 2 was a long time ago, before this system was even in place. All purchases of more recent versions of Leadwerks were sold through Steam.

×
×
  • Create New...