Jump to content

Next Steps...


Josh
 Share

Recommended Posts

Of course, getting the new editor up and running is top priority. The engine stands on its own as a programming SDK, but the visual editor will make the biggest difference in people's lives. The screenshots I've shown are the result of probably two months of work total. It came together a lot faster than I was expecting, probably because I invested so much time in getting the GUI and other features right, so now it's easy to build on. The new extensions system in the editor is going to be very very fun for us all, and I am really looking forward to working with people to make that useful.

Undoubtedly, there will be many small fixes for me to make as people dig more into the engine. I don't mind because we have a platform now that is designed the right way, and it's worth making it perfect.

There are many ways the performance of Ultra can be used at NASA, too, and I am super stoked to put this technology in use for space projects.

The future is cool. 😎

 

 

image.thumb.jpeg.1bf1a5ea0844b7e425ff561438b38fe0.jpeg

image.thumb.jpeg.2cdb212126bd0e75d84cf25e91d4df3e.jpeg

  • Like 6

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

  • Josh changed the title to Next Steps...
  • 2 weeks later...
On 1/12/2023 at 10:47 AM, Josh said:

Of course, getting the new editor up and running is top priority. The engine stands on its own as a programming SDK, but the visual editor will make the biggest difference in people's lives. The screenshots I've shown are the result of probably two months of work total. It came together a lot faster than I was expecting, probably because I invested so much time in getting the GUI and other features right, so now it's easy to build on. The new extensions system in the editor is going to be very very fun for us all, and I am really looking forward to working with people to make that useful.

Undoubtedly, there will be many small fixes for me to make as people dig more into the engine. I don't mind because we have a platform now that is designed the right way, and it's worth making it perfect.

There are many ways the performance of Ultra can be used at NASA, too, and I am super stoked to put this technology in use for space projects.

The future is cool. 😎

image.thumb.jpeg.1bf1a5ea0844b7e425ff561438b38fe0.jpeg

image.thumb.jpeg.2cdb212126bd0e75d84cf25e91d4df3e.jpeg

I would say your experience struggling with low end machines led (pun: Leadwerks) to study and learn how the best performance can can be achieved with software on current hardware.
Therefore your fast pace with getting things done speaks of solid knowledge.

  • Thanks 1

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

On the topic of next steps with performance and how far UltraEngine has come since Leadwerks, now that there is an ECS system, I wanted to ask you @Josh if you have ever checked into Unity DOTS?

I first started reading about it a year ago or so, and it seemed like an interesting implementation of ECS. The TL;DR as I understand it, is basically you hand craft your component layouts to be cache friendly, allocate raw arrays of component data, process them in a hardware friendly way, then reap crazy performance benefits over the traditionally OOP design that people use to implement ECS that results in memory being scattered about (and thus high cache misses). What I'm most uncertain about is how to actually apply that in practice to a real game as opposed a tech demo.

This video was by far the most comprehensive in the details of data layout optimizations and its impact on ECS:

 

I was a bit skeptical about real world results, but I came across a demo I was able to do some minor updates to test locally in Unity with, and sure enough, it was pretty legit: 

 

Finally, an interesting larger scale crowd simulation demo someone made: 

 

I wonder if anything like this would further help UltraEngine with even more scale?

Link to comment
Share on other sites

@Drew_BentonOur renderer and logic thread are separate, so you've got a full 16 milliseconds for your code to execute before you have to worry about performance of the ECS. In computing terms, this can usually be considered an eternity. However, I will watch these videos and maybe it will give me some ideas.

  • Thanks 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

4 hours ago, Drew_Benton said:

I was a bit skeptical about real world results, but I came across a demo I was able to do some minor updates to test locally in Unity with, and sure enough, it was pretty legit: 

This guy is bragging about displaying 35,000 boxes at 60 FPS, but Ultra does the same thing at 1200 FPS:
https://github.com/UltraEngine/Benchmarks#instanced-geometry-1

  • Like 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

DOTS is really not that impressive. I've converted a scene of 20 000 static game objects to entities and it didn't increase my performance at all. Instead of these workarounds they really should've stopped clogging main thread with render, scripts, physics, culling, animations, UI, garbage collection, GI and a funny "other" category that nobody knows what does.

Link to comment
Share on other sites

  • 11 months later...
On 1/22/2023 at 8:46 PM, Genebris said:

DOTS is really not that impressive. I've converted a scene of 20 000 static game objects to entities and it didn't increase my performance at all. Instead of these workarounds they really should've stopped clogging main thread with render, scripts, physics, culling, animations, UI, garbage collection, GI and a funny "other" category that nobody knows what does.

As far as I know DOTS isn't supposed to increase performance of rendering, at least previously it wasn't a thing, idk when you test it.
If you used it after conversion scenes was added, then you should profile, because I can't belive that performance stayed exactly the same. Was it 20k skinned meshes or 20k simple cubes? Maybe with cubes performance won't change so much unless your try to move them.
 

Quote

stopped clogging main thread with render, scripts, physics, culling, animations, UI, garbage collection, GI and a funny "other" category that nobody knows what does.

That's what DOTS is trying to do. There is no GC and every piece of logic is ideally multithreaded. Garbage collection is unavoidable in vanila Unity, and I'm sure same can happen with Ultra Engine Lua unless you avoid unnecessary allocations and being smart with pooling, but with that GC isn't not a big problem in Unity either.

Link to comment
Share on other sites

On 12/25/2023 at 6:12 PM, Lekret said:

As far as I know DOTS isn't supposed to increase performance of rendering, at least previously it wasn't a thing, idk when you test it.
If you used it after conversion scenes was added, then you should profile, because I can't belive that performance stayed exactly the same. Was it 20k skinned meshes or 20k simple cubes? Maybe with cubes performance won't change so much unless your try to move them.
 

That's what DOTS is trying to do. There is no GC and every piece of logic is ideally multithreaded. Garbage collection is unavoidable in vanila Unity, and I'm sure same can happen with Ultra Engine Lua unless you avoid unnecessary allocations and being smart with pooling, but with that GC isn't not a big problem in Unity either.

If you try to use dots for animated characters, you are going to have a fun time with their experimental dots animations system :)

My point is that their SRP batcher already solves most of the CPU side bottlenecks and DOTS isn't helping with anything other than heavy gameplay logic, but then you end up with terrible animations, no ucclusion culling and so on. That's what Cities Skylines struggled with.
They are adding new GPU resident drawer which is supposedly similar to DOTS hybrid renderer, which I have already tried with no benefit. Also, there is already progressive GC and I've never seen GC lags since it was added. GPU optimization is where the devil is, CPU is easy (from my Tech Art side).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...