Search Unity

Unity screensaver framework for Windows soon to be released!

Discussion in 'General Discussion' started by imaginaryhuman, Mar 10, 2011.

  1. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Mr Bawss ;) ... no there's more to it than that.

    a) there's a screensaver dialog window in Windows where users choose screensavers, bring up configuration screens, modify the delay until the screen is saved, and where they see a realtime preview of the screensaver in a little embedded window. Plus you can launch the full screensaver from there as a test. Getting Unity to run inside this dialog window is impossible using Unity alone.

    b) the o/s launches the screensaver in 3 possible modes - preview, fullscreen, and configuration, which needs detection of command line parameters - something that's tricky to do inside unity.

    c) yes a screensaver eventually is just a .scr file and it's exactly the same as a regular .exe file so you can rename any .exe to .scr and copy it to C:\Windows\System32 and it'll be useable as a screensaver. But it won't have detection of the launch mode given by Windows, and it won't preview within the Windows screensaver dialog, and there'll be no way to go into a proper configuration mode when the user clicks the config button in the dialog.

    Those are the basic obstacles which my framework has overcome, plus extra functionality that helps to set up a basic screensaver with things like:

    a) importing a screengrab of the desktop into a texture - normally impossible to do in Unity
    b) grabbing new wallpaper images from your screensaver and setting the desktop wallpaper automatically - normally impossible in Unity
    c) modification of the Unity Free startup window/splash screen to make it borderless - normally impossible in Unity

    Plus things like slow motion, pause/resume, various user inputs, passive/interactive/config modes, taking screenshots/movie sequences, and also a single-file deployment which can be run immediately from a download link in a browser with minimal user interaction needed to install it (taking into account User Account Control restrictions on Vista/7), showing a splash screen/EULA window, etc.. all added value features.
     
  2. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    @ImaginaryHuman

    I see, in that case a framework would be very useful.
    Also is this going to be able to compile to MAC OSX screensaver as well?

    EDIT: Another suggestion : would it be possible to play the screensaver on desktop? Basically turning screensaver into the animated wallpaper.
     
    Last edited: Jun 11, 2011
  3. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Screensavers on OSX are a whole different ball of wax. It's not as easy as just creating an exe file. You have to actually use Apple's screensaver framework API (ie in Objective C code), and that includes the o/s creating a `screen` on which the screensaver will display, and it also (i think) manages user-input for you so you probably can't do interactive savers. So the saver has to start out as an Objective C program, not a Unity program. Also now on Snow Leopard the screensaver has to be compiled to be a 64-bit app. The only OSX screensaver effort so far is to open up a webkit window within the screen provided by the o/s and then load into a web page which in turn loads the Unity plugin and plays a webplayer file. That causes the saver effect to have its framerate clamped to around 25fps so not only does it not run at full speed, the user also has to have installed the unity webplayer plugin ahead of time in their browser. Last I heard it had not been compiled for 64-bit, but maybe someone's done that.

    I have an idea for a way around all this but it's going to take some experimentation in unfamiliar territory to see if it'll work.

    Playing a screensaver on the desktop wallpaper is possible on OSX using a third party app. There is probably something similar on Windows. But it's not something I am really interested in or have a clue how to do.

    My screensaver framework is currently Windows only but I will look into OSX in future.
     
  4. hima

    hima

    Joined:
    Oct 1, 2010
    Posts:
    183
    I'd love this very much. I don't mind paying $25 for it. :)
     
  5. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    Update?
     
  6. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Hey.

    At the moment I'm re-evaluating priorities and juggling projects but I have made more progress with the saver framework and pretty much just have a few bugs to get rid of. I don't get much time to work on it as much as I'd like, sorry about that.
     
  7. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    I'm debating whether to finish this and whether to release the module at all. Can I see a show of hands for who is still interested in it?
     
  8. adminsmithee

    adminsmithee

    Joined:
    Sep 20, 2010
    Posts:
    30
    Im defently still intrested :)
     
  9. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    One here :)
     
  10. EOrbiter

    EOrbiter

    Joined:
    Aug 16, 2011
    Posts:
    3
    ImaginaryHuman, Several hands up from us here - if you are getting close, we need you. I'm sure you are wrestling with the harsh realities of making possible a screen saver. It should be easy but it's actually very hard to conform Unity into what needs to happen. This is why many of us are rooting for you to finish this. If you have invested time and research and pushed the ball forward to make possible building a Windows compliant screensaver out of a Unity build, we would definitely benefit from your efforts. It doesn't matter how quirky it is for the developer to follow your procedure, it just has to work nicely for the end user. If you finish it, and it's priced over $100, I'd buy a few. If you price it under $100, I'd buy a few more to make it worth your time.

    Unless it takes a long time (months) to finish, in which case, we will unfortunately end up having to do what you are doing on our own, from scratch, and will at some point make it work. If you choose to abandon the project, perhaps you could share what you have, however incomplete. High hopes you will continue pushing forward and take us there soon. Thanks!
     
  11. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,294
    Still interested :)
    Mainly for the Mac version but also for an extended win version.
     
  12. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    My thanks to you few people who are still interested.

    Considering how close it is to being done I think it would make sense to finish it :)

    The problem of getting Unity to act like a proper screensaver has already been solved. All of that stuff is nailed already. And actually some while ago I did post an early demo of the worlds first windows screensaver made with unity, albeit the result of a workflow outside of unity and somewhat not user friendly. The new system is much better and can all be done from within unity. That's been a bit of a learning curve.

    The only parts left for me to do is fix a few errors and do some testing. So I'll get that done as soon as I can.
     
  13. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,294
    So there will be a mac and a win version?
    Do we have to buy them seperatly?
    What will they cost, i read about a pro version and a basic or so?
     
  14. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    There is no Mac version. The way Mac screensavers work is waaaay different to Windows and there are some problems to overcome which are unique to OSX. My aim is to get Windows done first then look at getting it running on the Mac side after. I know screensavers are pretty popular on the Mac and it would be my preference to target that first but the Windows audience is much bigger and technically easier to do.

    Last I mentioned on pricing it sounded like somewhere around 30 to 50 might be about right. I guess I'll decide when it comes to putting it on the asset store.
     
  15. EOrbiter

    EOrbiter

    Joined:
    Aug 16, 2011
    Posts:
    3
    Most excellent.
     
  16. Silence

    Silence

    Joined:
    Jul 9, 2011
    Posts:
    98
    Is there any vague release date? Great project, please keep working in it!
     
  17. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Hard to say a release date when I don't get a regular amount of time to predict. I want to say there's maybe a couple of days work left on it but I won't get that solid block of time, it'll be spread out over evenings and weekends. I would say a week or two? It'd be great to work on this stuff full time, maybe in future ;-)
     
  18. onllm

    onllm

    Joined:
    Mar 4, 2011
    Posts:
    111
    i am interested
     
  19. Shardz

    Shardz

    Joined:
    Dec 30, 2010
    Posts:
    42
    I found this post just in time and I'd say I'm definitely interested as this is what Unity has needed for some time now. After catching a post dating back to 2006 regarding a user asking if Unity had any capabilities of this, the admin/mod mentioned this would probably be added functionality within future updates. Well, that was five years ago and still nothing...until now. Regardless of the massive amount of work involved, Unity needs this framework project of yours urgently and you are so close to the goal of releasing it; it would be a shame to shut the door on all that work and leave the path sealed for others seeking to create savers with Unity.

    For me, the decision is whether to either go with Unity and stick to something I'm familiar with or to venture off and pay $100 for DX Studio and hope I don't end up in the weeds two weeks later with their relative problems. The choice is yours, but you have an opportunity to give Unity that much more flexibility and value; I think the decision is fairly clear in which direction to traverse if you ask me.
     
    Last edited: Aug 23, 2011
  20. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    :) Thanks Shardz, your vote of confidence is encouraging. I do plan to finish it and have been working on doing so.
     
  21. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Last night I made a post saying I was going to put the framework on the backburner, but I think maybe that let off enough time-pressure that I actually got quite productive and made good progress with the framework. So it's still on for a release pretty soon, I just can't give any more predictions of a date. I am going to try to get this finished as soon as possible.
     
  22. Shardz

    Shardz

    Joined:
    Dec 30, 2010
    Posts:
    42
    Keep taking swings at the hearty but ever-so staggering CodeGiant in the ring. Sooner or later that big guy is going to fall over from exhaustion and the local villagers will all rejoice. ; )
     
  23. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
  24. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Just finished a simple little example effect which will be part of the package, nothing too amazing, just a fly-through of an endless colored starfield, made from circles. When the user enters `interactive screensaver` mode, you can modify the `flying` offset by moving the mouse. It will simply show how easy it is to turn a Unity project into a screensaver and interact with it. $Demo.png
     
    Last edited: Sep 1, 2011
  25. Shardz

    Shardz

    Joined:
    Dec 30, 2010
    Posts:
    42
    I like the simple bokeh effect of this and it's quite inspiring given the relative creative aspects Unity affords us along with your product. Within my current scope of a new Winter project, I'm more inclined to create more of a simulation of sorts which will lean more toward an unattended control scheme. However, with the type of reactionary input you discuss here, it's just too tempting to use that power to address ergonomic options in real time to amuse the end user and provide a "wander off the beaten path" approach versus the standard popup options windows we see every day and everywhere else. I'm diggin' this quite a bit while waiting even more intently than before because this is exactly what I will be requiring for my next project.

    I'm assuming there is (or will be) full compatibility with the Windblows screensaver options dialog, including a preview window of sorts. One of my favorite screensaver setup programs is for Fantastic Flame as it looks so sweet with all the eye candy; it really does appear as though someone gave a damn when they created it - and that is always my goal. : )

    Looking great so far and I eagerly await any news on your project!
     
  26. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Hey Shardz. Yeah this is just going to be a quick demo effect just so I can show how to tie a Unity project into the `user modes` of the framework. Basically the user can be in passive mode, interactive mode or configuration mode, and each can be individually disabled. Or you can just ignore the modes altogether and do whatever you want. These modes can also be combined if you just want pure passive, pure interactive, interactive with separate config mode, passive with interactive/config mode etc. A traditional screensaver wouldn't be interactive but interactivity is an interesting area which I'm sure will present a lot of possibilities. A few games have been released that act like screensavers until you interact with them and some were quite successful.

    In the framework there's basically just a simple global variable which tells you which mode you're in, then you can do what you like based on that. ie if (ScreensaverFramework.UserMode==2) {DoInteractivity()}; or whatever. The rest is all set up in a custom inspector gui.

    I put the little demo effect above together in about half an hour and the quickness of making it is why I chose that effect over some other candidates (and so I have more time to get the framework finished ;-). It's not too hard with Unity to create some impressive, interesting visuals in a short space of time, which is why I think it will be a very very amazing tool for making screensavers with (not to mention the community surrounding/supporting it).

    However, I don't consider the above a very amazing screensaver effect and wouldn't be something I'd release as a standalone product. In future I will probably replace it with something better but it serves a simple purpose, isn't much code/resources to download and runs fast in a high resolution even with high levels of antialiasing switched on - and it's only 1 draw call :-D

    The framework supports the standard Windows screensaver dialog completely, so your Unity `effect` will be displayed embedded into the dialog window as a preview. When the user goes to choose a screensaver or configure it, it will be running right there. The Unity side of things will be notified that it's running in `preview mode` so if you wanted you could show a different presentation there from what you see full-screen, and indeed can show something entirely different for the configuration if you want. Scaling is handled automatically to fit in the window. You can have different quality settings in the preview window versus fullscreen/config mode as well (you may want high antialiasing in the preview window for example).

    At the moment it doesn't have any kind of gui editor to create stuff for configuration mode (Unity is adding one soon), but you can launch the configuration in a desktop window (which can be made borderless) or in fullscreen. You have to build your own configuration screens/windows or whatever you want using normal Unity tools.

    I do agree there is a vast potential of what you could turn into a screensaver and Unity is going to be hands-down the best tool for the job. There's screensaver creation software out there but it's pretty basic. Anyone who can develop something in Unity, even something really simple or ugly or that took 1 minute to create, can make a screensaver. I'm looking forward to using the framework myself to make lots of cool visuals really soon.
     
    Last edited: Sep 1, 2011
  27. Shardz

    Shardz

    Joined:
    Dec 30, 2010
    Posts:
    42
    Thanks for taking the time to elaborate more on the process in detail; it really sounds interesting and exactly what I'm looking for currently. Once I have a process in place with the tools I need [your framework project], I'll be off in my own world creating with Unity. Examples are great, and definitely needed, but the sky is the limit once the groundwork is all laid out. I'm also assuming that a user working with either JS or C# (like normal Unity protocol) will be able to take command of your framework to adapt to their comfort level, as well...but it's easy to convert either way.

    This is all really exciting and something I'm looking forward to seeing come into fruition. I think with the advent of the HTPC setup, spiffy screensavers are making a comeback - especially useful, functional ones that impress guests when they come over to watch movies or a night of fun. Certainly the guys over at 3PlaneSoft aren't laughing at the idea...especially not now. :D
     
  28. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Sure thing. What is htpc? But yeah, 3planesoft and some others are clearly breaking ground and putting a lot if time and resources into making 3d screensavers, and doing very well with it. The potential is there and when you research the kind of screensavers that are pug there the 3G ones definitely haven't been made with an engine like Unity DBS most are home brew simple 3d productions. Or fake 3G, or no 3G at all. There's some pretty cool stuff out there buy also a tonne of junk so I think (hope) that with my framework combined with the power and flexibility of Unity the potential for a 'revolution' in screensavers, a next-generation if you will, is definitely there. I how to be part of that resurgence and hopefully many others will join me in this exciting new avenue. When you look around at people's unity showcases and submitted screenshots there are numerous sophisticated, advanced developers in the Unity community who could easily leverage Unity and their skills to make really awesome screensavers, not just special effects and simulations but really new cutting edge stuff that many if us couldn't even dream of. I'm looking toward seeing what people can do.
     
    Last edited: Sep 2, 2011
  29. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    You asked about using c# or js... The framework is just a Start() function that runs to figure out what mode to launch in and to get the desktop image and set screen mode etc. Then the user input handling runs in an Update() function. At the moment the only thing to programmatically interact with from your own script is the user-mode global variable. I dont see any problem there so long as c# can access globals from a js file which I presume it can. The framework is written in unity script/javascript.

    Once you set all the options using the gui controls in the editor then the only thing left to do is create an effect and maybe add interactive/configuration modes that tie into the framework's mode variable. It's not like the framework has an API you have to get your head around, at least not yet ;-)
     
    Last edited: Sep 2, 2011
  30. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Oh, home theater pc's. Interesting.
     
  31. Shardz

    Shardz

    Joined:
    Dec 30, 2010
    Posts:
    42
    Thanks again for the details...now I'm really getting excited about the whole thing. I have quite a few of the 3PlaneSoft savers running in the living room on the HTPC (mostly the clocks) and they always draw a lot of attention when people come over - and they keep me on schedule in the process during normal private time. I'm personally not going into the realm of savers for literal intents and purposes, but because it's an automated program which can inherit its own life utilizing code, system resources, and art content...and do all this by actually not touching anything for a change. Since it is 2011 and we still don't have those slick hologram girls like in Total Recall, I'll just have to program something interesting for my place until you code that project. : D
     
  32. reissgrant

    reissgrant

    Joined:
    Aug 20, 2009
    Posts:
    726
    Very interesting! Have to keep an eye on this thread.
     
  33. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Today, after months of on-and-off development, I finally got the full workflow to function all the way from building a screensaver effect in the Unity editor, through the screensaver framework/builder process, creating a proper installer, installing the screensaver and launching it. It doesn't quiet yet work with all combinations of settings but I just have to tweak a few things to make it happen.

    Below is a quick shot of a real Unity3D app (showing a simple rotating cube, for now), running in the Windows screensaver dialog. The `Preview` button works and so does the `Settings` button. The screensaver has been automatically set as the default. After a few more tweaks I will be releasing a demo screensaver for you to try.

    $ScreensaverPreview.png
     
  34. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Looking good! What's the price you going to sell it?

    Can I use it for free until I make enough money commercially before paying you? :D
    (You know you got this one coming ;))
     
  35. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Somewhere in the $30 to $50 range probably. Probably will start it out at $50 and see how it goes?

    And yer right, it would be nice to let it be free with a `pay me when you make money` deal but like you said elsewhere, it's hard to police it and I can't see an easy way to do that right now... beside the Unity app store has a global license so I can't really do it there.
     
  36. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Here is a better preview... an actual screensaver effect up and running :-D
    $ScreensaverPreview.png

    Within a week I will post a demo of a runnable screensaver.
     
    Last edited: Sep 5, 2011
  37. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Ok, here is the first ever public demo of a screensaver built with the Show Time Screensaver Framework. This is Windows only. You can run the installer from anywhere and it will install properly. You can even load it from a link on a webpage and at it should download and install and run immediately. It will work with User Account Control so if you have that switched on in Vista/7 etc then please `allow` the application (it needs to access C:/Windows/System32 which is seen as a restricted folder). The demo will place Cool Screensaver.scr into that folder and when you run it will generate a folder `Great Company/Cool Screensaver/` in your MyDocuments folder.

    The demo should work in the Windows screensaver dialog with an embedded preview. Clicking the Preview button there will go fullscreen. Clicking the Settings button there is supposed to go into configuration mode (which in the demo is `interactive mode` and will be in a desktop window - but is currently going to fullscreen mode for some reason). In the demo, press the `i` key to enter ineractive mode. In interactive mode you can simply move the mouse to influence the camera. Press the Esc key to exit interactive mode and return to passive mode. In passive mode Esc or any other key/mouse movement exits. There are numerous other keyboard functionalities such as pausing, slow motion controls, screengrabbing, setting wallpaper etc but I have to do more testing/bug fixing on those. If you do perform any screen grabs (PNG, JPEG, BMP, RAW) they will be placed in your MyPictures folder under Grabs/. I think my custom BMP saver isn't working quite right yet hence setting wallpaper won't work either.

    Press + or - to operate slow-motion. P is pause. G grabs a PNG. J grabs a jpeg. B grabs a bitmap. R grabs RAW. W grabs and sets wallpaper (doesn't work yet).

    The demo will show an EULA screen (accept it to continue), a splash image and a closing image for the first install only. After that they will not show (this is configurable). You will also see the Unity startup logo because that is a legal requirement of using Unity Free. The system does support Unity Pro in which it will not show a startup window at all.

    The only reason I'm attaching this as a zip file is because Unity forums requires exe's to be archived. The installer itself is a single exe file and contains fully LZMA compressed embedded media to minimize download size while retaining immediate exetability - for example when you click the file to download in Internet Explorer it would ask if you want to run it and if you say Yes then it will download, install, and launch the screensaver without further user interaction. So once you've extracted the archive you can just go ahead and run the exe. Do not rename the exe, it MUST include the word `install` to cooperate with User Account Control.

    Please test on your varied hardware/operating systems and if you could let me know your system specs and any problems you encountered that'd be great. I'd like to know if it works ok on Windows Vista/7/8 32-bit/64-bit etc Thanks!

    Here it is...
    View attachment $CoolScreensaver_Install.zip
     

    Attached Files:

    Last edited: Sep 5, 2011
  38. runner

    runner

    Joined:
    Jul 10, 2010
    Posts:
    865
    Accept and Install pops up everytime in the control panel, when you click preview which is rather annoying

    The screensaver does preview in the thumbnail panel

    Win7 64bit Nvidia 8800 GTX

    anyway i would like to purchase this givin my comment above is not a problem and the price is reasonable like $50 or less
     
  39. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Ok thanks. Good to know it works on Windows 7 64-bit. It is not supposed to prompt for acceptance every time you preview, only on the first install. I will look into that and fix it. What do you think about the fact that the Unity splash window displays first?
     
  40. runner

    runner

    Joined:
    Jul 10, 2010
    Posts:
    865
    In Pro you can hide that by not showing the splash, not showing display resolution dialog and set default full screen, and perhaps you could set resolution elsewhere like in some config file. Prefs might be an option for standalone.

    So the answer is No i dont want the splash window displaying at all exception being my banner advertisements.
     
  41. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Setting default to fullscreen is not an option because the system uses one Unity app build for preview mode, config mode and fullscreen mode, so it always has to start up as a small desktop window and then switch res later. I hide the window from view using my own technique so the user doesn't see it. Also modifying player prefs does not cause the app to open in the mode you set, Unity is not written to work that way. I've wrangled with all these problems for a while now and came up with a technique to work around it.

    If you own Unity Pro you'll be able to make the splash screen go away completely. I can even make it go away for Unity Free users but that doesn't comply with Unity's license.
     
  42. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Actually a while ago in my earlier prototypes I had two separate Unity app's, one launching in windowed mode and being used for the preview, and one launching in fullscreen. The trouble was it required two separate builds which can be a lot of extra megabytes to download, even after sharing resources between them. I still have the capability in the code but not quite fully developed. That might be an option at some point. But when I realized how much extra work that adds to building something (and each mode needs different settings also) I decided on a single Unity app per screensaver. That means it can't launch fullscreen right away because it doesn't support the preview window properly and who wants to go fullscreen only to see the screen revert to a small window. So for now is really the only way to do it.
     
  43. Shardz

    Shardz

    Joined:
    Dec 30, 2010
    Posts:
    42
    And I step out for two days and miss all the action. I like the unattended integration you have going on there with this demo and gives me an idea or two on how to approach it when everything gets ironed out. Am I understanding correctly that the post-install WUSS (Windows Universal Screensaver Setup - sorry I couldn't resist screen must be displayed in fullscreen, or I will have the option to have settings in an applet prior to launch? I guess it doesn't matter much really, but some might feel more comfortable setting the thing up without launching the entire production in the process.

    I'm assuming Unity [with the aid of your framework] spit out this executable verbatim and there was simply no icon supplied? It would be easy enough to do all this and package it up with Setup Factory or something and create an auto-launch for the saver setup - that would give me an uninstall package to clear it all out, as well. I'm just trying to get a feel as to how my setup process would go.

    My saver would be a sizable program that I would love to give the end user the ability to install the majority of the resource files to say D:\Utils\KickAssSaver\ rather than the obligatory Program Files drop zone (not a big fan of cluttering up C: if ya' get my drift) and simply fling the .SCR into System32 and have it point to the resource goodies over on the other partition. I'm not sure if Windows/Unity works that way or if everything just plain gets installed to C: - end of debate. Again, not really an issue if you want the good stuff, but my curiosity knows no bounds and I was designed to ask stupid questions.

    I am also on Windows 7 x64 and it actually worked as described by all above - something not many programs can boast these days! Once it all gets a few passes on the ironing board it should be quite a tight package - and a historical one to boot! Congratulations!

    Also, another sizable issue for me personally; I'm on Unity 3.2 and plan on staying there until my game is completed. I did try to load 3.4 and it was hellbent on trying to convert my game project, so I backed off and I'm on hold. I'd like my own project problems to be my own problems and not introduce new Unity bugs or whatnot until I'm ready for that hurdle. So that leads me to a problem like everyone else; the Asset Store.

    1.) Unity version 3.4 is required to use the A.S. and I'm not budging from 3.2 immediately. Oh noes.
    2.) I'm of the particular minority who prefers commerce privately off-site through PayPal. Oh noes.
    3.) Not a big fan of the Asset Store. At all. Nopes. Not even a little. Needs big work! Oh noes.

    If you build it, they will come [but might require a little extra effort on our part to get it].
     
    Last edited: Sep 6, 2011
  44. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    At the moment the `configuration mode` which is triggered by clicking `settings` or `config` in the Windows dialog, launches the saver in a separate mode. It can be set to startup in fullscreen and then go into configuration, or can launch in a borderless desktop window and go into configuration. Either way any configuration options you'd have to implement using normal Unity graphics like GUI elements or sprites or 3D models or whatever. It has no current support for native-looking gui widgets like a typical desktop app but that may come in future. You could possibly fake a `Windows-looking` GUI skin, nobody would know the difference. In the demo the config mode did not launch on the desktop like it should - I have to figure out why because it was working earlier today before some bug fixes. I do have on my list of features to add, the ability to launch a separate desktop gui app to act as a configuration window.

    I am not sure about an icon.. I hadn't thought about icons yet. The system does spit out a new executable and so probably you'd want to give it your own icon before you distribute it? But I will look into a default one.

    As far as installation goes, the main screensaver ending with a .scr extension is created and stored in C:/Windows/System32/ (if allowed by the o/s). When it extracts files it needs at runtime it will currently put them in either C:/, the user's Documents folder, or the Shared Documents folder. These are locations allowed by User Account Control. I don't put things in Program Files because there are permission-access issues. Right now you can't put those files in any other locations but I could add a feature to allow you to specify a custom target location. That would solve what you asked above about putting files on a different drive. The installer, complete with all compressed media and files, has to live in the C:/Windows/System32/ folder ([edit] - not entirely true, I think I have a switch for that)], so you won't save space there except for the fact the files are compressed. The .scr doubles as an installer and as the actual screensaver and has the whole payload embedded into it, allowing for verifiable extractions and self-healing, and also allowing for deletion of extracted files after the saver exits to help keep them from prying eyes.

    You also have the option to create a main `company folder` which would house several screensavers from the same company, and also optional individual screensaver folders inside of that. It's my way of fairly simply organizing things across multiple screensavers because I'm not just thinking about this framework as something you use for a single product but as something you can create a whole business around.

    You do have the option to install all the files at initial installation time, or to only extract files at runtime. It also has self-healing ability for missing or corrupt files and can skip extracting files that exist - makes for a faster extraction. You'll also be able to specify thresholds for when to compress or not compress files to optimize for runtime speed versus extraction time. It uses LZMA for maximum lossless compression and fast decompression.

    Thanks for the info that it worked for you on Windows 7-64. Did you get any kind of warnings from antivirus software? The saver does modify the registry for a few reasons so there is some potential for some virus checkers to throw warnings.

    The framework is written in fairly simple Unity script. The part of it that handles building the executable and creating an installer and the installer itself are external applications written an entirely different programming language. Those parts will work no matter what version of Unity you're using. The framework part that runs in Unity, plus the custom inspector that's needed, are working for me since around Unity 2.6 onwards and now I'm on 3.4 and it's fine. I would imagine it probably would even work on v2 or earlier but that's untested.

    Although I'm heading to the asset store with this soon, I also am going to be putting up a website where I will be selling screensavers and also selling the framework. You'll be able to buy it from me there or we can just arrange a paypal transaction between us if necessary. Like or dislike the asset store it is the central hub for selling Unity add-ons so I can't really avoid it.
     
  45. Shardz

    Shardz

    Joined:
    Dec 30, 2010
    Posts:
    42
    Thank you once again for your amazing response and general healthy dose of interesting information; all of which answered my questions and well beyond. The option for a custom install directory for the non-System Unity resource files (what I call the Content Cluster or Art Bomb) would be outstanding; actually, any and all options as you have been actively researching are completely welcomed. I would find a way to stuff my icon in the executable one way or another, but that functionality would be a timer saver, as well.

    It sounds like the framework has already shot past my expectations and started taking on a life of its own at this point. The stage is just about set for some serious performances and we have a front row seat all picked out already (although, I can't afford a date). 8)

    Regarding all the little details; you have thought of everything it seems and this makes things exceptionally easy to dive into my new project with ease. I guess I sent a rather contradictory message with my Asset Store comment in the same breath I mentioned it was a personal decision of mine. The Asset Store is perfectly acceptable and most will choose that route more than likely. I'm just old fashioned and prefer the standard way of doing things and I also don't like having to update Unity just to see what's going on in the world. If they had standard web access in parallel, then it would be much easier for me to patronize the A.S. - but now with the PayPal fiasco in effect, I appreciate the added flexibility you provide. Options are great and it sounds like you have lots of them to ponder over. 8)

    I'm more than excited about this project and so far I'm equally impressed...
     
  46. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    I will have to look into the possibility of having a `lightweight installation` option, which would only put the bare essentials into the system folder and extract other media to another location without keeping it on the C drive. It would remove some options like self-healing and auto-deleting and install-on-launch etc but you might prefer it for keeping the C drive less full. Question is though, even if I give you the option to add your own path for installation, how does that work for a customer/end-user who doesn't have that path on their machine? I guess then that suggests the installer should give the option to install to a different location they specify?
     
  47. Shardz

    Shardz

    Joined:
    Dec 30, 2010
    Posts:
    42
    I'm not at all sure how one would link the .SCR file to another drive/partition with the resources in this instance. Frankly, I wasn't sure that any of this was possible with Unity to begin with, so I'm in the weeds altogether on the issue. I do have a hybrid saver/program which installs to wherever you wish, but keeps the basics in System32...non-Unity of course, but I have seen it done with the standard VS C++ approach. All of this might just be the problem of the end-user (me) and perhaps third-party solutions such as Setup Factory might actually link the files across drives/partitions via registry entries - that's why that sucker is so expensive I guess. 8)

    The average user of this framework would probably just adhere to the standard installation protocol and simply keep the Art Bomb to a minimum - especially in the case of creating a library of savers such as the aforementioned 3PlaneSoft or similar. My case would be non-typical (like everything else I end up veering sharply into), but I already foresee the particular need to tread lightly on people's system drive given the scope of the project I have in mind. Just some random thoughts I had, but perhaps someone might chime in with some brilliant information here to enlighten us all (and that sort of thing does happen frequently here I have noticed).
     
  48. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    It's not hard, really. The .scr ideally has to be in the system folder but it can reference files from other locations so the `installer` can just put the other files on a different location.

    It's my aim also, personally, to make screensavers that are relatively fast to download because I will be delivering via a website so I don't really want like 100 megabyte downloads before you even see anything. But other people might, I guess.
     
  49. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,294
    I read in on eother thread that you will focus now more on ios but i hope that you will bring this to the end soon :)
     
  50. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Yeah, interests wax and wane so I'm sure I'll still finish this.