Jump to content

Guy Rabiller

Members
  • Posts

    23
  • Joined

  • Last visited

Posts posted by Guy Rabiller

  1. I know Josh wont drop Lua anytime soon, but for those who are interrested in some alternatives, I encourage you to take a look at the Squirrel scripting.

     

    It's based on the Lua stack code but has a jscript/c/c++ syntax ( personaly I'm more at home with it ) and support native classes and has reference counting ( you can choose to not use a GC ).

     

    Binding to C++ seems easier albeit I've only used it with C.

     

    People using Squirrel ( including its author of course ) claim it's better suited than Lua for large and heavy code bases ( more efficient in this case ).

     

    Squirrel Language

     

    Albeit this language is not very well known it is stable and supported and is also used in commercial applications and games.

     

    I invite you to take a look at it.

     

    Guy.

  2. ../..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.

  3. Well, you don't need to 'sell' me C++ :D

     

    I know C++ and I've used it a lot for some developments by the past, but at the end I guess it just goes down to a question of personal tastes.

     

    Also perhaps at some point I prefere to concentrate on the project itself rather than the intricacies of the used language(s). In C++ if you want to be efficient, you must use templates, either directly or indirectly. You have the standard library but also heavy libraries too ( boost, etc.. ). Then the standard is evolving, new features, etc.

     

    The thing is that the time you spend to learn, understand, test, make decisions about the right approach(es), libraries, etc.. is not spent on the actual development. I am at a point where by using C and the simple OOC idea, I can concentrate on the actual development rather than on the language itself.

     

    I don't know why but when it comes to high level object oriented approaches I tend to shift to scripting languages, especialy Squirrel ( or even some RAD dev tools, I've used RealBasic, PureBasic in some production environments where dev time was a big issue ) ( BlitzMax only for prototyping with LE ) and when it comes down to more low level stuff I prefer C. Perhaps I'm too old to change my habits ;)

     

    But again, don't get me wrong, I'm not telling one is better than the other one. :wacko:

  4. Hello,

     

    ../.. I can't find a way to search the forum ../..

     

     

    Lol, I just realised the enormous textfiled well visible in the site header "Search.. Forums".. ;)

     

    Sometimes when it's too obvious, you can't see.. :wacko::D

     

    Guy.

  5. 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.

  6. Hello TheoLogic,

     

    Hello Guy, just out of interest, why C../..

     

    Well, it's mostly for historical and personal reasons actualy, not because C is better than.. or whatever. I've developped along the years lot of things, libraries etc.. and I don't want to waste time porting everything to C++ now.

     

    That said, the C I use is an Object Oriented C (OOC), - based on an old paper from Axel-Tobias Schreiner ( I don't use a pre-processor though ) - wich use Flexible Array Members (FAM) a lot ( and FAM are not supported by C++ ), plus some custom modifications/additions, so I have classes, inheritance, interfaces, objects encapsulation, etc.. and even, to some degree, templates. I don't have overloading though.

     

    This OOC has a few interresting features, for instance object construction from the stack is done manualy ( _ctor( obj ); ) wich means if I don't need an object due to some conditions, the object is not constructed at all. Using this OOC is a little more work than using plain C++ for sure, but I'm ok with it.

     

    The thing is that to use C++ efficiently, IMHO, you must use templates. And using templates is not an easy task, especialy when debugging. So for now I'm pretty happy and confortable with this OOC and I don't see the benefit, at least for now, for me to sitch to C++. In fact I rely on scripting too ( Squirrel ) so once the low level / hardcore functionalities are implemented in OOC I can switch to a higher level of abstraction using this OO scripting language ( with native classes, etc. ).

     

    This works pretty well so far and I'm pretty happy with this combination.

     

    ../..and why (only) 64bit?

    I don't think many people have 128-bit or 256-bit computers yet, so 64-bit is enough for now :D

     

    Hehe, good answer Lumooja :D

     

    Well, our projects and applications mostly target recent graphic cards, so there is no point for us to support old cards and old OS. Current OS are 64bit, I see no point to support 32bit anymore.

     

    Plus we are mostly targetting professionnals ( we are not in the game industry ) and in this context and in the context of our applications, memory usage can be important. Scenes using 8Gb or more are not uncommon. Plus, clearly, we are not targetting mobile platforms and so on, so I see no reason at all to support 32bit application anymore, at least for us :)

     

    Guy.

  7. Hi,

     

    I can see there is a sub-forum related to the sources of the Leadwerks engine, and some users are marked as 'Leadwerks source developpers' so I guess there is a way to have access to the engine sources ?

     

    I don't see any mention of this in the product page.

     

    What does it take to have access to the sources ?

     

    Guy.

  8. Hello,

     

    Sorry if this is an already answered question but I can't find a way to search the forum and I'm new to Leadwerks engine ( I don't see a 'search' button, is there a way ? ).

     

    Does a 64bit version of the Leadwerks engine exist or is planned ?

     

    From the downloaded SDK it appears there is only a 32 bit version.

     

    Guy.

  9. Hello,

     

    For rapid prototyping I'm currently using BlitzMax ( and the great BLIde ) with the Leadwerks engine modules.

     

    It seems I can't compile with the Multithreaded option turned on.

     

    I understand the Leadwerks engine is not thread safe but I would like to be able to use threads for tasks unrelated to the engine.

     

    Is this a known issue ? Is there a workaround to this, an update or something I'm not aware of ?

     

    Thanks in advance for your help.

     

    Guy.

  10. 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.

     

    Ah! That's it! :blink:

     

    Wonderfull news, thanks Rick, you made my day :)

     

    Guy.

  11. Ah, I'm getting the errors on the two files Grabiller... To be honest though, You don't need those files unless you just want to look at those levels. :)

     

    Yes that's what I've realized :-]

     

    Nonetheless, the download ended up by showing the message "Installation Failed" wich is pretty scary :blink:

     

    But everything seems to be working so far.

     

    Guy.

  12. Try downloading to somewhere other than the C or D drive. I just download to the desktop with admin mode and never have any problems.

     

    Did you checked the logs ? I did'nt realized there was an issue at first, before looking at the log.

     

    I did it on P drive :-] with admin priviledges. I did it twice, same result.

     

    Guy.

  13. ../.. Whether this can be done without altering the existing source code I'm not sure.

     

    Yes, that's my concern.

     

    I've red somewhere on this site that the Leadwerks engine does not use acceleration ( space partitioning ) structure and rely on hardware occlusion culling, to avoid pre-processing datas.

     

    If the engine does not need preprocessed datas and if those can already be loaded on the fly ( in a blocking way for now though ) it sounds logical to me that the next step would be to be able to load those same datas in a non-blocking way while the engine is runing.

     

    I'm not sure yet if the SDK expose the concept of scene graph but this could be done quite easily if the engine could allow us to create scene graph nodes independently of the current running scene graph, then at some point could allow us to 'attach' this node to the current scene graph. The first part could be intensive and long but that would be no problem because the engine wouldn't care about this node yet. Attaching the node could be then done very quickly. With this approach, it could work even if the engine is non-thread safe because the loading of the datas and the creation of the node could be done in another thread without any impact on the current scene graph, then attaching the node would be done in the main engine thread very quickly without significant impact on the FPS.

     

    This does not sounds as a technical challenge to me, more a 'game centric vision' issue.

     

    Well, hopefully perhaps this is planed somehow for a future release.

     

    Guy.

  14. Hi,

     

    I got a similar problem.

     

    Two attempts to download the SDK, twice I got these :

     

    File "Maps/terrain_arctic_alpha.dds" does not match server file size.

    Server says it should be 16777376 bytes, but the downloaded file is 0 bytes.

     

    File "Maps/deserthighway_alpha.dds" does not match server file size.

    Server says it should be 16777376 bytes, but the downloaded file is 0 bytes.

     

    Then at the end I got the "Install failed" message. Well aside from those two files ( wich are data related, not stricktly SDK related ) I think everything else it's ok.

     

    Guy.

  15. To put this kind of stuff in another process without having the hazzle to restruct ((un-)serializing) your objects you could use some kind of shared objects.

     

    If you know you need a new model to be loaded in the next cycles you just instance the super-class of all models with the name of the model you need and the other process would fill in the data part while the engine could carry on with drawing until the model data has been filled.

     

    I read that you can use this kind of shared objects (in shared memory or something) also with non-thread-save modules because the shared object library would handle all the needed processing properly.

     

    Hi Caustic,

     

    This sounds interresting, do you have more details regarding this approach and how this could be done in the context of the engine ?

     

    Guy.

  16. Any professional studio needs several minutes to startup.

    Each music workstation takes around a minute to startup, the PC takes 5 minutes to startup and load Cubase6, an musician takes around 30-60 minutes to startup with coffee, cigarettes and beers.

     

    When the studio is loaded, everything is realtime.

    LE2 can be networked in a studio, so each change is synced in realtime to all other LE2 clients and other apps.

     

    I'm not talking about 'starting up'. I'm talking about managing content after a startup.

     

    I see in your profile you use Cubase and you are talking here about music workstation so I bet you know well this kind of stuff.

     

    Well, very good, because I know very well this too, I also do sound design.

     

    So we are on the same line here and perhaps I'll better succeed in explaining to you what I'm talking about :

     

    I'm using Live from Ableton, I guess you know this application. Once Live is started, once you have loaded a song, then you can add any sample file at any time while the song is playing without disrupting the realtime audio playing.

     

    And you don't have to pre-load hundreds of gibabytes of waveforms you may have on your hard drive for this.

     

    You just load the audio on the fly.

     

    Well, lets considere a model as an audio file, and a 3d scene as the song. Once the song is playing - the scene is rendering - , I would like to load any audio file at anytime - any model at anytime - and make it played by the audio engine mixed with the song - make it rendered with the current scene - without the need to stop the playing of the song - stopping the renderer loop.

     

    Do you better see what I mean now ?

     

    Guy.

  17. Hi,

     

    Thanks all for your inputs and ideas.

     

    I understand the pre-loading models Lumooja's idea, but it's still 'pre-loading', and Laurens is rightly assuming that it means the developper of the final application makes some assumptions about the content of what will be rendered by the engine.

     

    This is a fundamental difference between a game application and a machinima application.

     

    I can talk about this issue with a different perspective : Imagine a machinima application in a professional environment where several peoples are working together at the same time. While a camera operator is doing some rehearsal work with his camera - preparing dolly movement, etc.. according to the current set and some actions - the DP who is working on another computer ( but 'connected' to the same scene and rendering the same scene ) wants to add some lights, perhaps point light but may be object lights too or shadow casters, the set designer wants to add some props, etc..If the rendering must stop whenever something is loaded it's obvious that this will become annoying. Basicaly this means the all team will 'freeze' whenever someone wants to add something in the scene.

     

    This is the kind of applications and situations I'm talking about.

     

    Unfortunately, nowadays very little attention is given to this kind of situations by engines developpers who have a 'game centric' vision about their development. Crytek will release their 'Cinema' sand box version this summer, and according to what I've heard, I'm not sure they will even address this king of issues.

     

    Perhaps Josh could be the first engine developper to take this kind of issues into consideration, that would be wonderfull because I think the Leadwerks engine has a lot of potentials and is taking the right path.

     

    To add further to the discussion and the differences between game applications and machinima applications, lets considere the use of tools like pureLight wich I'm considering.

     

    In a game environment, pureLight - a lightmapper - is considered as a pre-processing tool. In a machinima environment the same tool is considered as a post-processing tool ( to render the final images ).

     

    In the second case, the user of the application is doing the lighting, not the game developper/designer. For this to work, the application developper then must have some way to expose the functionalities of the lightmapper to the user ( preview, etc.. ) wich seems to not be the case at the moment because the lighmapper developpers have a 'game centric vision' too.

     

    The thing is that all the needed technologies nowadays exist to create wonderfull ( and professional ) machinima applications but in fact it is actualy very difficult to do so, not because it would be difficult to adapt the technologies, but just because of this 'game centric vision' adopted by middle-ware developpers.

     

    Lets hope 'someone' is listening :-]

     

    Guy.

  18. Hi Rick,

     

    Thanks for your input.

     

    For a machinima application, the user may be presented with some kind of repository with hundreds if not thousends of assets. In this case it would be point less to preload all the repository ( if even possible due to memory constraints ) then only show the needed assets.

     

    I'm wondering though : what would happen if, while the engine is running and rendering some scene, I use another thread to load a model ?

     

    Will the engine simply crash or something ? Are you aware of any test(s) of that kind ?

     

    Guy.

  19. Hi,

     

    Thanks for your answer.

     

    Starting from here is it possible to load a model while the engine is runing the loop, I mean loading the model in a background task ( another thread perhaps ) wihtout affecting the current realtime rendering, then get notified somehow that the model has been loaded successfuly, then start including it in the current realtime rendering loop ?

     

    In short, can we load a model at any point in time without blocking the current rendering ?

     

    Guy.

  20. Hello,

     

    A quick question before I decide to dig deeper with Leadwerks Engine and possibly buy a licence ( with pureLight ).

     

    I'm currently looking at several 'engines' or 'realtime 3d renderers' for the purpose of creating a 'machinima' applicaiton.

     

    So far the big problem I encouter is that a lot of 'game engines' or '3d engines' out there do not allow to manage assets at runtime, because everything must be pre-processed somehow and loaded as 'level' or 'universe' in the engine at runtime. Wich means one can't add/remove/modify or create or load assets ( characters, props, sets, etc.. ) at runtime.

     

    This is obviously a showstopper for machinima applications wich are not games but uses game technologies.

     

    So my big question here is:

     

    Does Leadwerks Engine allows dynamic loading of assets at runtime ?

     

    Is it possible to 'launch' the engine then programaticaly add 3d models, lights, cameras, etc.. define their 'materials', behaviors, etc.. once the engine is running so one can 'construct' iteratively, progressively his own 'level' not as a pre-processed file or 'level' but as a dynamic world ( and possibly save it on file eventualy ) ?

     

    Thanks a lot in advance for a precise answer to this question.

     

    Guy.

×
×
  • Create New...