Marcus Posted December 12, 2009 Share Posted December 12, 2009 I have just been playing through Oblivion and it made me think about a few different things concerning LE. 1) Terrain texture limitations. I really hope there are plans to increase the amount of textures supported on the terrain. Looking at Oblivion, how far would the visuals have gone with 4 or 5 textures on the terrain? 4 or 5 textures may work for a VERY limited geographical area, but anything more than that it fails hard...epically. Adding more textures...perhaps unlimited (theoretically) amount would really add to the visual quality of the engine. 2) Background loading. I personally believe the days of corridor shooters is drawing to a close. I believe games will generally trend towards open environments. LE is really good for large terrains and now massive amounts of trees (just waiting on collision). Things would be even more efficient if we had background loading/streaming. While not in my plans, this would allow for MMO games. It would still benefit other games as well and I would consider it essential to the success of LE in the future. 3) Global Illumination. While I know that deferred rendering is great for a massive amount of lights. This creates stunning results. But honestly, I still think baked global illumination and ambient occlusion still looks better than the flat look in LE right now. Just to be clear, I still believe that LE behaves more realistically with all dynamic lights, but I don't think it looks as good as some of the baking that can be done. I would love to see global illumination make it into LE ASAP. I believe Josh has this in the plans...I forgot what he called his implementation. Anyway, just a few suggestions. I hope the fanboys don't take this as criticism. I think that LE has a long way to go yet, but I think it is moving the right direction. 2 2 Quote Link to comment Share on other sites More sharing options...
Pixel Perfect Posted December 12, 2009 Share Posted December 12, 2009 I think I would support all three of these suggestions, they are certainly things that have all indivdually been requested in the past. I personally have now given up asking for the increase in texture layers ... you can only ask for something so many times before it just becomes a pointless exercise. I hope it's on the 'to do list' for implementation at some point; as the current 5 layers are way to restictive. Quote Intel Core i5 2.66 GHz, Asus P7P55D, 8Gb DDR3 RAM, GTX460 1Gb DDR5, Windows 7 (x64), LE Editor, GMax, 3DWS, UU3D Pro, Texture Maker Pro, Shader Map Pro. Development language: C/C++ Link to comment Share on other sites More sharing options...
Marcus Posted December 12, 2009 Author Share Posted December 12, 2009 as the current 5 layers are way to restictive. If the 5 layers don't change soon, I have to move on. Five layers just won't work for the project I'm working on. Deal breaker. I hope it comes soon. Quote Link to comment Share on other sites More sharing options...
Marleys Ghost Posted December 12, 2009 Share Posted December 12, 2009 If the 5 layers don't change soon, I have to move on. Five layers just won't work for the project I'm working on. Deal breaker. I hope it comes soon. Deal Breaker? Quote AMD Bulldozer FX-4 Quad Core 4100 Black Edition 2 x 4GB DDR3 1333Mhz Memory Gigabyte GeForce GTX 550 Ti OC 1024MB GDDR5 Windows 7 Home 64 bit BlitzMax 1.50 • Lua 5.1 • MaxGUI 1.41 • UU3D Pro • MessiahStudio Pro • Silo Pro 3D Coat • ShaderMap Pro • Hexagon 2 • Photoshop, Gimp & Paint.NET LE 2.5/3.4 • Skyline • UE4 • CE3 SDK • Unity 5 • Esenthel Engine 2.0 Marleys Ghost's YouTube Channel • Marleys Ghost's Blog "I used to be alive like you .... then I took an arrow to the head" Link to comment Share on other sites More sharing options...
Marcus Posted December 12, 2009 Author Share Posted December 12, 2009 Deal Breaker? Not sure what you are referring to. The meaning or if it shouldn't be a big deal. Maybe it is an American expression. Deal Breaker - A deal breaker is ‘the catch’ that a particular individual cannot overlook and ultimately outweighs any redeeming quality the individual may possess. Deal Breaker Definition Quote Link to comment Share on other sites More sharing options...
Marleys Ghost Posted December 12, 2009 Share Posted December 12, 2009 I'm aware of the definition, was just curious how you apply it to something you have already completed a deal on. Terrain Layers Global illumination Seems they are coming, eventually. Quote AMD Bulldozer FX-4 Quad Core 4100 Black Edition 2 x 4GB DDR3 1333Mhz Memory Gigabyte GeForce GTX 550 Ti OC 1024MB GDDR5 Windows 7 Home 64 bit BlitzMax 1.50 • Lua 5.1 • MaxGUI 1.41 • UU3D Pro • MessiahStudio Pro • Silo Pro 3D Coat • ShaderMap Pro • Hexagon 2 • Photoshop, Gimp & Paint.NET LE 2.5/3.4 • Skyline • UE4 • CE3 SDK • Unity 5 • Esenthel Engine 2.0 Marleys Ghost's YouTube Channel • Marleys Ghost's Blog "I used to be alive like you .... then I took an arrow to the head" Link to comment Share on other sites More sharing options...
Marcus Posted December 12, 2009 Author Share Posted December 12, 2009 I'm aware of the definition, was just curious how you apply it to something you have already completed a deal on. Terrain Layers Global illumination Seems they are coming, eventually. Well, yes I have bought the engine, but I don't have to use it. Anyway, I could probably bake the global illumination. The terrain...not sure what to do. Quote Link to comment Share on other sites More sharing options...
Josh Posted December 12, 2009 Share Posted December 12, 2009 It will come. 1 1 Quote 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...
Paul Thomas Posted December 12, 2009 Share Posted December 12, 2009 Would be nice to assign material files instead of just dds textures. If the editor was changed around to do that it could easily raise the limit to ten (or more) by assigning two texture files and using a blending value. 0.0 would be texture 1, 0.5 would be a blend of both, 1.0 would be texture 2. Just some ideas. I'd experiment such a thing but I need the sandbox source or to finish mine, lol. Edit: Not to mention additional effects, like parallax. 2 Quote Link to comment Share on other sites More sharing options...
Josh Posted December 12, 2009 Share Posted December 12, 2009 Dynamic loading like you describe is unlikely to happen. It would only benefit a few people with a design so ambitious it is unlikely to ever be completed. Even STALKER and Crysis don't use this approach. This would also limit the flexibility of the engine. For example, right now you can loop through all the entities in a scene. What happens when you have other sections of a scene loading and being freed? An entity you have a handle to might no longer exist. A raycast you perform might go outside of the loaded area of the scene. And if people aren't even filling up the existing area they have now with a scene they make, why would they need more space? 2 1 Quote 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...
Marcus Posted December 13, 2009 Author Share Posted December 13, 2009 Dynamic loading like you describe is unlikely to happen. It would only benefit a few people with a design so ambitious it is unlikely to ever be completed. Even STALKER and Crysis don't use this approach. This would also limit the flexibility of the engine. For example, right now you can loop through all the entities in a scene. What happens when you have other sections of a scene loading and being freed? An entity you have a handle to might no longer exist. A raycast you perform might go outside of the loaded area of the scene. And if people aren't even filling up the existing area they have now with a scene they make, why would they need more space? Actually the Crytek 3 engine does allow for streaming of assets Crytek 3 Specifications. Gamebryo and Unreal 3 also allow this as well. I wouldn't be surprised to hear that S.T.A.L.K.E.R.'s X-Ray engine does it as well. I'm not entirely sure how it is done, but it is obviously being done. Quote Link to comment Share on other sites More sharing options...
Josh Posted December 13, 2009 Share Posted December 13, 2009 They stream textures and shaders in. That's why textures start blurry and get sharper as they are loaded. I don't like requests like this because people are requesting things they can't even define. 1 1 Quote 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...
Scott Richmond Posted December 13, 2009 Share Posted December 13, 2009 Will be interesting to see how LE and the other engines compare to iD Software's iD Tech 6 engine - It plans to abolish texture restrictions entirely. It looks amazing. 1 1 Quote Programmer, Modeller Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64 Visual Studio 2008 | Photoshop CS3 | Maya 2009 Website: http://srichnet.info Link to comment Share on other sites More sharing options...
Marcus Posted December 13, 2009 Author Share Posted December 13, 2009 They stream textures and shaders in. That's why textures start blurry and get sharper as they are loaded. I don't like requests like this because people are requesting things they can't even define. Not sure how I haven't defined streaming? I'm not being negative about your engine. I don't understand why you attack me when I am trying to offer a sensible way to improve the engine. No engine == perfection LE != perfection It is just a trade off of what works for your project. 1 1 Quote Link to comment Share on other sites More sharing options...
Niosop Posted December 13, 2009 Share Posted December 13, 2009 Unreal 3 supports streaming of assets/scenes/etc (http://udn.epicgames.com/Three/ContentStreaming.html), as does Unity3D and Unigine (supposedly, I haven't gotten around to testing it yet in Unigine). It would be a nice feature to have. LWE seems like it could do much the same thing, even over the web using the http and caching features of the abstract file system. Does LWE support async/background loading or are all the Load* calls blocking? Is there any reason we couldn't implement our own threaded background loading system by calling Load* in a separate thread before it's actually used? I guess the only thing missing in LWE that we couldn't implement ourselves would be streaming terrain. Maybe having the ability to load terrain blocks would satisfy everyone, then leave it up to them to load/unload/position them properly. Anyways, Josh says he's bumping the number of textures which will be a nice start. All in all LWE is still the best I've found when you take into account licensing terms/cost, lighting, features, performance and ease of programming. 1 Quote Windows 7 x64 - Q6700 @ 2.66GHz - 4GB RAM - 8800 GTX ZBrush - Blender Link to comment Share on other sites More sharing options...
Paul Thomas Posted December 13, 2009 Share Posted December 13, 2009 You'd have to make your own LoadScene() as a start. I'm not sure how to communicate with the engine for the vegetation data though, it doesn't seem to be exposed, or at least not documented to know how to use the functions. Quote Link to comment Share on other sites More sharing options...
Niosop Posted December 13, 2009 Share Posted December 13, 2009 Yeah, seems like everything is doable ourselves as far as loading in assets as required except for terrain portions. Would need to be able to load multiple terrains and position them. Then could do the loading/unloading yourself to make arbitrarily large terrains and such. Maybe just set a cap on the max total loaded in at once for performance reasons and leave it up to the user to page in/out as needed to stay under these limits. Quote Windows 7 x64 - Q6700 @ 2.66GHz - 4GB RAM - 8800 GTX ZBrush - Blender Link to comment Share on other sites More sharing options...
Josh Posted December 13, 2009 Share Posted December 13, 2009 There would be so many workarounds and complications you would have to deal with when programming that people would be yelling to change it back if I did this. What happens if the user does this?: mesh=LoadMesh() CountChildren(mesh)//mesh is not loaded yet. Should it wait? Should it crash? Should it only return the loaded children? Now let's say your program loops through all meshes in the scene and does something. After it finishes, a mesh that was loading appears! Now you can't figure out why that one mesh was unaffected by what you just did. Your entity counts would change during other routines which could easily cause random crashes if you are not careful with your code. It's hard enough now to keep everything in order and bug free. This would continuously introduce a lot of new bugs in my code, and in your own games. There's a thread on the Unreal forum where a person who is familiar with LE asks how to alter a mesh's vertices at runtime. The answer was that you could not with that engine. That's just one example of the tradeoffs of freedom this kind of thing involves. If I allow multiple terrains, then all terrain shaders like grass color, vegetation height, or vehicle dust color are broken. Quote 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...
Niosop Posted December 13, 2009 Share Posted December 13, 2009 Exactly why I'm using LWE The UDK was too restrictive in some ways. It does have some awesome tools though. I'm hoping to replicate some of them for LWE. I wouldn't worry about implementing streaming/paging of either terrain or assets in LWE itself, leave that to the people who want to use it. But you have to make it possible for them to implement it themselves, which right now doesn't seem possible for terrain. I'm not sure if it's a limitation of whats exposed by the engine or just a documentation deficiency. Quote Windows 7 x64 - Q6700 @ 2.66GHz - 4GB RAM - 8800 GTX ZBrush - Blender Link to comment Share on other sites More sharing options...
Josh Posted December 13, 2009 Share Posted December 13, 2009 It isn't possible due to the reasons I said above. Is it worth losing the grass system for? Not sure how I haven't defined streaming? "Streaming" can mean a lot of things. In Crysis it means textures are loaded in one mipmap at a time. In Far Cry 2 it means the whole world is one seamless region. The kind of streaming Crysis has is not the same kind of streaming FC2 has. Quote 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...
Scott Richmond Posted December 13, 2009 Share Posted December 13, 2009 I guess it really comes down to the paradigm you want to build your game in. Its pretty obvious to me that game engines aren't a one-stop shop. You have to the pick the one that ticks the most boxes for you. For me, I picked LE because this is my first foray into C++ and game development, so having an easy to understand and modern OO engine is very important to me. Everything else is just a bonus. Quote Programmer, Modeller Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64 Visual Studio 2008 | Photoshop CS3 | Maya 2009 Website: http://srichnet.info Link to comment Share on other sites More sharing options...
Marcus Posted December 13, 2009 Author Share Posted December 13, 2009 It isn't possible due to the reasons I said above. Is it worth losing the grass system for? "Streaming" can mean a lot of things. In Crysis it means textures are loaded in one mipmap at a time. In Far Cry 2 it means the whole world is one seamless region. The kind of streaming Crysis has is not the same kind of streaming FC2 has. Yes it can. That is why in the original post I was talking about large open environments, like Oblivion. If you haven't played Oblivion or have no idea what it is, then I can see why you were confused. Haven't played Far Cry 2, but if it is one seamless world, that is what I am talking about. Quote Link to comment Share on other sites More sharing options...
L B Posted December 13, 2009 Share Posted December 13, 2009 Hasn't Josh already told us 20 times that both an increased terrain texture layer count and an eventual alternative way of doing GI (to use his words: "I think I know a way of doing this.")? If I were Josh, I would totally understand why not pushing these features: No one has made a single game yet. Quote Link to comment Share on other sites More sharing options...
Josh Posted December 13, 2009 Share Posted December 13, 2009 An engine like FC2 has to be designed that way from the very start. The problem is a lot of compromises have to be made for it to work. What happens if you modify a mesh, and then it goes out of the playable region? Then when it is reloaded, the mesh is unmodified? What about scripted entities? When they go out of the region and then come back in, all Lua data will be lost? So the user will have to have a save function to save any important info about the lua state so it can be saved across transitions. There are so many complications this would add that most users would be very frustrated by it. Quote 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...
Rick Posted December 13, 2009 Share Posted December 13, 2009 Multiple terrains would be pretty cool. Why does the grass system effect multiple terrains? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.