7 ms·
I am always skeptical of tech demos like this, but if Epic has truly created a way to show full quality assets at runtime without manual LOD / optimization, the
by robmerki 6y ago
I am always skeptical of tech demos like this, but if Epic has truly created a way to show full quality assets at runtime without manual LOD / optimization, then this is going to be a huge process improvement for game development. Same goes for this lighting. Baking lights is such a burden, if they can simply do all of this at runtime then making beautiful games just became that much easier.
They also bought Quixel, which gives all of these photo realistic assets to any Unreal Engine developer (even if you're some kid building a game for free). Not sure how Unity can keep up with this.
- _bxg1 6y agoI'm normally skeptical of tech demos, but normally they don't actually talk about the tech. Assuming the actual promises aren't misleading, this is extremely impressive. > Not sure how Unity can keep up with this. Unity still has a big edge on usability. Unreal is very much a AAA tool: you have to use C++, all the built-in systems have a much steeper learning curve, etc. Even as a professional dev who's tried a few times to get into it for fun, it's just too much headache for my level of project. Whereas I can whip something together in Unity really easily. All that said, this definitely widens the gap for actual studios. If you have the time and know-how to use Unreal, you have even less reason to consider Unity now.
- jakearmitage 6y agoYou don't have to use C++, you have Blueprints, which can control not only shaders, but also game logic and levels.
- _bxg1 6y agoIf you're a programmer who wants to write code, you have to use C++
- speedgoose 6y agoI'm a programmer and I love unreal's blueprint. Unreal's c++ on the other hand, I hate it.
- random32840 6y agoYou can also use SkookumScript, although I wouldn't. Blueprints can also be compiled down to C++.
- virtualritz 6y agoNah, you can do a minimal binding and write most of it in something else. E.g. Rust. Considerable boilerplate work initially for sure but possible.
- TeMPOraL 6y agoFor a non-programmer getting into games, C++ isn't that much larger leap than C#. Also, as others said, you have blueprints. They're not bad - though hopefully there will be some investments made into ergonomics of their use.
- bigfoot675 6y agoEhh this is debatable. After searching for a memory bug in a AAA game C++ codebase for hours, you might feel differently
- TeMPOraL 6y agoWhich kind? Most of the memory problems (in particular leaks and null pointers) happen just as much in managed languages, so you'll have your fair share of those bugs in C# games as well.
- robmaister 6y agoTrying to find a GC-related crash on a stale pointer that is only reproducible in a Shipping build on a single platform is fun (depending on your definition of fun) (Shipping in UE4 means release mode with full optimization enabled, most logging & profiling stripped out, etc)
- Arelius 6y agoThat's not entirelly true, there are for instance Python bindings, and I think some work exists on bindings for other languages. I just think they don't always have a lot of support until a case exists where it ends up being really valuable. Film studios in the case of Python. https://docs.unrealengine.com/en-US/PythonAPI/introduction.html https://docs.unrealengine.com/en-US/PythonAPI/introduction.h...
- robmaister 6y agoUnreal's Python integration is incredible. I made some modifications to it at work to run a version of WinPython (both for loose scripts outside the engine and pip access) It's great for complex asset pipelines and quick one-off editor scripts, at least in my experience. The only thing that felt a bit wonky to me was attempting to use bitflag enums.
- Arelius 6y agoThat's actually good to hear. I haven't used it, but it seems that it's important for some clients!
- wlesieutre 6y agoBlueprints felt to me like they made a lot more sense if you knew how C++ worked, but I only used UE4 a little bit to toy around with it
- ngold 6y agoI looked at unity and unreal 4 before starting to learn an engine. Unreal is great, but the massive amount of tutorials and documentation is why I started with unity. I really hope unreal 5 can do something similar in the distant future. Before unreal 6 is released.
- AlunAlun 6y agoUnity pays lip service to AAA but its primary market segment mobile game development (which is nearly half of the entire gaming market).
- klmadfejno 6y agoWow! Quixel looks amazing! I've been hobbyist in Unity for a long time. But I think I'll switch to Unreal just for that.
- Mirioron 6y agoI think it remains to be seen. Unity's big upcoming feature seems to what they call the Data Oriented Technology Stack. Essentially, this supposedly allows you to put far more non-static objects onto the screen than is usually available in a game engine. I do agree though that what Epic's doing here is a huge deal.
- robmerki 6y agoI love the Unity's efforts with ECS, but how many games would benefit from it?
- Mirioron 6y agoThat's the big question, isn't it? Obviously every mobile game is going to benefit from it, because it will save battery life. The greatest question related to this for me is how many games that couldn't be easily made before are now doable? I imagine that Total War style games will be much easier to make with Unity.
- barbecue_sauce 6y agoAs far as I know, Quixel still requires a subscription, and the assets can still be used in Unity. But the dynamic LOD optimization is definitely a killer feature.
- naikrovek 6y agoQuixel is free for use with Unreal. The pricing structure for all other content tools is the same as it was before Epic bought Quixel.
- 6gvONxR4sf7o 6y agoDon't you still need to do some of that just for file size and data transfer, if nothing else? In the demo they said it had hundreds of billions of triangles. Google tells me you can get down to 18 bytes or so per triangle, but even if we assume a lower bound of just three bytes per triangle (amortized storage of 1 vertex per triangle of an x,y,z point), we're talking about on the order of terabytes to just store that scene, right?
- BiteCode_dev 6y ago"virtual" is the keyword. They do some magic to not calculate or store most of it, most of the time.
- badsectoracula 6y agoI'm pretty sure the virtual word here refers to the geometry being in a virtualized form, meaning that the renderer refers to it but the GPU does not have all of it in RAM but instead is paged in on demand. This paper about geometry images[0] was mentioned on Twitter from an old post by the programmer who implemented the functionality in UE5. Geometry images encode geometry in rectangular 2D textures that can be reconstructed later (the paper is kinda old for this, but i guess it can be done on a computer shader nowadays). If those images are stored as virtual textures, which are supported by the GPUs nowadays, they could be essentially using sparse textures/resources to store geometry. [0] http://hhoppe.com/gim.pdf http://hhoppe.com/gim.pdf
- Apofis 6y agoThis would be awesome tech if everyone had gigabit fiber. You could just stream all the assets during loading time or if possible during gameplay. On second thought, 125MB per second probably wouldn't be fast enough. A 30 second load time would only result in 3750mb of assets at best. 4k on a Google Stadia doesn't sound bad if the latency is good.
- ponyous 6y agoSomebody on reddit calculated that those Zbrush character models in demo are roughly 125MB in size.
- airstrike 6y agoI'm mostly concerned about the storage and bandwidth issues associated with this level of detail. Are we going to download 500GB games on our Playstation 5s?
- pas 6y agoGears of War with updates is 250G, so yeah, looks like it.
- tommoor 6y agoCall of Duty: Warzone requires over 100Gb free on the PS4 disk just to download updates.
- mentos 6y agoMaybe we'll go back to the days of cartridges. Imagine getting a 1TB SSD that you push into your PS5
- thu2111 6y agoPresumably at some point the standard model for games will be streaming as you play.
- Stevvo 6y agoMaybe, but some assets could have smaller sizes; instead of distributing a mesh with 500k vertex in LOD0 and various other LODs with less, you could distribute a single mesh with 50k vertex, then do some passes of catmull-clark subdivision on it during loading. Wouldn't work the statues and rocks seen in the demo, but good for weapons, cars etc.