Josh Posted May 17, 2011 Share Posted May 17, 2011 I've never heard Josh talk about giving us more control over the scene graph, but he does plan on letting us load models on another thread. It would be another parameter to the LoadModel() method. We are hoping for some kind of callback then that let's us know when the model was fully loaded.. No such feature has been promised. I'll see how it works out, but I honestly think this kind of thing is overblown and would only benefit a very small number of people. 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...
Gandi Posted May 17, 2011 Share Posted May 17, 2011 No such feature has been promised. I'll see how it works out, but I honestly think this kind of thing is overblown and would only benefit a very small number of people. Are you joking?!?! I might be wrong - but my guess would be that basically everyone here would _love_ to have a multithreaded LoadModel - command... Quote Link to comment Share on other sites More sharing options...
Josh Posted May 17, 2011 Share Posted May 17, 2011 How does this help you make games? 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 May 17, 2011 Share Posted May 17, 2011 How does this help you make games? I think the idea is that it doesn't rule out making certain types of games like it does today. I know the talk will go to what's realistic for indies to make but it still does rule out certain types of games no matter if people thinks it realistic or not for an indie shop. I also apologize as I was the one in another thread who said we were getting this. From some of the talks that happened around this area it seemed like you were making this feature. Again, I apologize for reading into that incorrectly. Quote Link to comment Share on other sites More sharing options...
Josh Posted May 17, 2011 Share Posted May 17, 2011 If the primary reason for this is to make very, very large streaming worlds, that's okay, but I need to know that because there's a lot more that goes into that than just loading models on a separate thread. For example, I am using 64-bit floats on anything to do with matrices and positions, because the physics need 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...
Guy Rabiller Posted May 17, 2011 Author Share Posted May 17, 2011 How does this help you make games? Hi Josh, Albeit I'm not targeting game applications, even in the context of game applications this seems pretty obvious to me : - How can you load a 'level' and displaying some kind of graphic animation to the user at the same time without background loading ? Does the application has to 'freeze' while loading the model/level/etc.. ? - How can you implement infinite universes without a way to stream/load models on the fly in the background ? Or whenever a new model is loaded then the game would freeze while the player is waiting ? Or are there some other mechanisms already available to do this I'm not aware of ? Guy. Quote guy rabiller | radfac founder / ceo Windows 7 / 64bits | Intel i7x980@3.33GHz | 12 GB RAM | NVidia GTX 480 Link to comment Share on other sites More sharing options...
Pixel Perfect Posted May 17, 2011 Share Posted May 17, 2011 I agree. How nice would it be to be able to run a cut scene at the end of a level and have the next level load in the background. i.e. make LoadScene run in a background thread. I've no idea how complicated this would be given the current scene, or at least part of it, would still be resident but if there was a possible mechanism for doing this and simply swapping between the scenes it would represent the ideal from my point of view. 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...
Rick Posted May 17, 2011 Share Posted May 17, 2011 If the primary reason for this is to make very, very large streaming worlds, that's okay, but I need to know that because there's a lot more that goes into that than just loading models on a separate thread. I think you can get away with just that though and leave it up to the programmers to handle the rest. Honestly LE's models are just another piece of data that describes "real" game objects. Nobody is going to make a big game like this without making their own game object objects that just have an LE model as another variable inside these objects. The behavior of the object belongs to the actual game object class and not on the model. The model is just a visual and nothing more. A model is not a game object like how LE seems to try to make it, it's just another piece that describes the game object. So the programmers can manage their own game objects and assign models to them if we have a way for LE to tell us what model has loaded and some properties tied to that model so we know what game object that model belongs to. The models that don't have any functionality, then it doesn't matter either way with those. Honestly if you just allow loading on another thread, and give us a callback to tell us when what model was loaded would give programmers what they need. You can leave it up to them to manage at that point then. Make us do null checks in our code to validate if a model gets released by the engine, that's fine. Maybe this is what phase 1 of this could be before you start worrying about how it all fits into the Lua stuff. Quote Link to comment Share on other sites More sharing options...
Pixel Perfect Posted May 17, 2011 Share Posted May 17, 2011 I agree with that, having a threaded LoadModel function with a callback is the critical component. Anything else in terms of complexity could be built from that. 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...
Canardia Posted May 17, 2011 Share Posted May 17, 2011 How does this help you make games? It helps Indies A LOT to make games, because no Indie can make or affort assets like in Crysis (I think the player model alone costs like $20000), so they have to compensate for the visual quality with technological advancement, like infinite streaming worlds. MineCraft is a good example how Indies can make good games with very low asset budget, but technological superiority. Also Leadwerks Engine's realtime lighting is good to compensate lower asset quality. Quote ■ Ryzen 9 ■ RX 6800M ■ 16GB ■ XF8 ■ Windows 11 ■ ■ Ultra ■ LE 2.5 ■ 3DWS 5.6 ■ Reaper ■ C/C++ ■ C# ■ Fortran 2008 ■ Story ■ ■ Homepage: https://canardia.com ■ Link to comment Share on other sites More sharing options...
Josh Posted May 18, 2011 Share Posted May 18, 2011 I agree with that, having a threaded LoadModel function with a callback is the critical component. Anything else in terms of complexity could be built from that. It has to be built into the system, from the start. That's why I ask for specifics about what people intend to do. 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...
Guy Rabiller Posted May 18, 2011 Author Share Posted May 18, 2011 ../..That's why I ask for specifics about what people intend to do. For games I can think about another use : Imagine a space ( or whatever ) online game where each player has his own area where he can build things ( space station, or facilities on a planet ground, etc.. ). When a player arrive in the 'area' of another player, there must be a way to load the custom assets of the area player ( because perhaps this player has built things with third-parties 'add-ons' and assets that are not ont the other player hard-drive - can't be preloaded ). If the game must freeze while loading all the other player assets, then it would not be a pleasant experience. This is an exemple of situations with *collaborative* games or applications. If you go beyond games you can think of 3d applications where peoples are connected together, either in a P2P way or a Client/Server way. If someone is adding an asset into the 'universe' or the 'scene', it would be a shame to see the application freezing on every networked computer just to load the new asset. Guy. Quote guy rabiller | radfac founder / ceo Windows 7 / 64bits | Intel i7x980@3.33GHz | 12 GB RAM | NVidia GTX 480 Link to comment Share on other sites More sharing options...
caustic Posted May 18, 2011 Share Posted May 18, 2011 Putting it simple: I want to be able to stream everything without having to wait for the engine. When the engine is lame in loading models (because the model is damn detailled) I can come up with something. When the engine has low FPS (because the world is too big or complex) I can come up with something. If the engine stalls because it has to do *something* I can't come up with something. So, simply put: please let's just not stall the engine. Stream everything or make small parts of it or load it in in another thread. Whatever you (the engine) do: Don't stall. 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.