From: Olivier D. <oli...@ca...> - 2002-07-17 20:24:21
|
Hi gang! I'm really keen on doing the right things and doing things right, which is why I'm willing to put the development of the GUI on hold in order to make our lives easier. These are the flaws I have observed in the "GopherSample" release: -> there's a bunch of scattered files - this is partly due to the way the sample effects libraries were programmed (the "Mystic" library only loads images and it requires jpeg.dll, libpng2.dll, SDL_image.dll and zlib.dll to do this) - this is also due to the way the player was programmed: the script file and the music file have to be loose files -> OpenGL support is weak. - I don't even remember if I tested it or if I documented what is necessary to mix 2D and 3D effects along with SDL. Eric has done some tests for mixing 2D and 3D using only OpenGL, however because of the limits of 3D acceleration, it may not be as flexible as 2D effects with respect to how a demo can deal with a set of general-purpose framebuffers (ie: output of one effect as input of the other). Further research is required and then a convention must be designed so that effects libraries can interact with other effects libraries. -> Library meta-data - right now, the main script file holds information (in the "Libraries" section) that should follow a library, not a demo. Eric has done a few experiments on using OO to have the library describe itself, but that still requires that a programmer write it as such. It would be very good if there was a way for the editor to pick up the meta-data automatically by parsing a .h file or the .DLL exports directly -> Not ready to be used with popular players - I'd like to eventually have Winamp, Media Player and Internet Explorer plugins for this. I'm thinking there should be a way to download the demo on its own and have the player plugin fetch the libraries it wants. Maybe that's just a bit too crazy? Unless there's a way to talk to a DLL even if it isn't a file on the disk? (ie: if it's inside a ZIP file?) Or should we go the less elegant route and simply have a "scratch" dir that we uncompress the entire ZIP file to? We might as well start with the basics: defining requirements. 1 - A demo ships in one file (preferably ZIP) with a standard manifest. (if we use libzzip, it would be possible to use a ZIP file and a directory interchangeably) 2 - Effect libraries are reusable and self-describing. 3 - Effects are modular (can pick the inputs and outputs) and reusable (can use them several times in a demo or in many demos - so they have parameters to control their apperance). 4 - Accelerated 2D and 3D graphics don't require overhead. 5 - It is possible to mix 2D and 3D graphics as follows: 5.1 - The output of a 2D effect can be used as a texture in 3D rendering 5.2 - The output of a 3D rendering can be manipulated by a 2D effect 5.3 - The output of a 2D effect can be used as a background or foreground to a 3D scene 6 - Demos can run in any resolution or bit depth, to accomodate slower/faster machines. 7 - The editor provides multiple real-time previews. I'd like to read everybody's thoughts on those matters, no matter how crazy. :) ---------------------------------------------------------------------- Olivier A. Dagenais - Software Architect and Developer |