Unity screensaver framework for Windows soon to be released!

Hey folks,

I think many of us are aware that the paid screensaver market is not huge but there is something to it - it has some potential and they are surprisingly still quite popular. I’ve heard of people making a living selling them. At the very least it can be a cool art form for us creative types!

When you look at the screensavers out there they range from the incredibly awful to the very cool. At the low end people just take a bunch of images and throw them into a slideshow and call it a screensaver, riddled with ads and spyware, or worse. Then you have varying degrees of ickyness until you get to the higher end where you start to get decent, polished effects and interesting 3D.

If you look at what people here have been/are capable of producing with Unity you realize that if Unity could build screensavers it could blow most existing screensavers out of the water. Not only does Unity make graphical effects easier to develop it does so with cutting edge support for 3D environments, physics, shaders, fast rendering, easy scripting, a cool editor, a powerful art/asset pipeline and more. Thinking of Unity as the ultimate screensaver-generating tool presents many interesting possibilities. :slight_smile:

Several people have expressed interest across a variety of threads about being able to build a proper Windows screensavers, so I have decided to finish my Unity screensaver framework and release it on the Unity asset store. Most of the work is done - it just needs a few more options added and some cleanup. It will be for Windows only since there are some major hurdles on OSX which need further research.

Since Unity cannot natively build a proper screensaver, which entails dealing with a preview window embedded into the Windows screensaver dialog, detecting start-up commands to trigger configuration modes, switching back and forth between fullscreen and preview etc, it poses some technical hurdles which have to be overcome.

My system acts like a new thrid-party target build platform for Unity. It’s not quite a click build and go solution because there are a few steps involved, but it does work.

It has to work outside of Unity since I obviously cannot modify Unity’s build process, and so features a small external wizard app which helps with bringing together the necessary files and outputs a single standalone Windows executable. It requires 2 builds from within Unity to support the preview window and the fullscreen effect. This is due to limitations in Unity which can’t be changed. It includes a Unity script to handle mouse/keyboard input, detection of starting up in configuration mode, taking screen grabs etc- a basic framework.

The final exe produced doubles as a tiny installer with a payload of heavily compressed data (starting around 4 megabytes for a screensaver without any assets or scripting), making for reasonably short download times depending on your effects. You could potentially throw a huge 3d environment or even a whole game into a screensaver! There’s nothing to say that your screensaver can’t be interactive (the framework supports an interaction mode).

All the user has to do is download/run the final exe from the browser (or wherever) and everything will be decompressed and installed, the saver will become the default and it will auto-launch right away. This creates a seamless instant install system for the end user. I will probably also support being able to use a custom installer with separate files, display a splash screen and displaying an end-user license agreement - all optional of course. Some virus checkers may not like the required modifications to the Windows registry which may be a good thing to guide the user through using a splash screen which shows upon install.

I plan to finish up the wizard and polish up the framework script, write up some documentation and put together a few small example screensavers. Then it’ll be ready to launch on the asset store!

So I’m curious, how many people are interested in this and how much would you be willing to pay for this system?

Oh the screensavers, haven’t seem them in ages.
I’d get this to make a custom screensaver, but since I would never see it anyway, I guess I won’t :smile:

Also like 99% of screensavers on the net have some kind of malware or viruses in them.

Oh for sure, most screensaver sites give them away for free and strew them with ads and popups and malware and all sorts of nastiness, but that’s not all of them and it’s not 99%.

I’d buy that.

I would love something like this.

There should be a free and paid version of this.
free version should be like the Unity games made with Unity free - a logo from the developer somewhere
paid should not have the developers watermark :slight_smile:

:slight_smile:

A paid version is sufficient, there are too many people wanting free things. “Ooh, but it has a watermark” is not going to monetize anything for the developers. For clients of the framework, there is no money to be made in screensavers, but they could probably be good promotional things for fans.

But you can just edit the code and remove the watermark.

I think you could even do that without code editing by finding the text/image it shows and simply replacing it with custom code.

I don’t plan any kind of watermark. The initial version will be the basic version. In future if there are enough enhancements above and beyond standard features, I might consider it a pro version warranting a free version, but not yet.

There is SOME money to be made with screensavers, like I said above. Some people make a living from it. But it’s not a huge amount.

So how much should I charge for this? $20? $39 $50? More? Less?

No suggestions on price? I’m looking for how much you would be willing/like to pay for this functionality - I can be reasonable. If I have to set the price myself without user input it might not meet the expectations of its audience, so I appreciate your input.

Also any feature requests you can think of are always welcome.

I have very little knowledge of the limits of a screensaver let alone how one is made. But the pricing would depend on its limitations. Can the screensaver be interactive? Can it perform random calculations? Can you Drop and Drag in elements of said game with animation to create a quick easy promotional screensaver? But according to your original post it seems all of this and a little more is possible. Personally I would like to pay $30 for the tool. However, if it’s as efficient as regular unity exe builds then I’m sure you could go upward to $50.

But seeing how screensaver would be an afterthought, that price may sway me to avoid it if I am on a tight “indie” budget. Without considering that, Honestly I think the extension would be worth its $50-$80 if it’s extremely flexible and interactive as a general screensaver software. You may also want to try to get your extension known in areas of the net for people looking to make only screensavers. I’m sure anyone would be willing to download Unity Free and purchase your extension if its competitive with general screensaver software.

Hope my opinion helps a bit.

it’s hard to come up with a price suggestion for you but I guess I can just tell you how I feel.

$100+ is out of the question for me.

$50+ I might do it if I have an actual need which I don’t at the moment.

$25 I’d buy it just for the heck of it.

Agree with this

Anything is possible with a screensaver just as anything is possible with Unity.

In exactly the same way that the webplayer is a target platform, iOS is a target platform, Android is a target platform, so too the screensaver is a target platform. Absolutely anything you want to do in Unity can be made into a screensaver. Be it that you made a massive multiplayer networked game with millions of users and huge amounts of resources, or some fancy graphical special effects, or a physics simulation, or you’re showcasing your 3D models/environments, or you have a casual game, or you used unity to make a 3D modeling application, or some kind of visual synthesizer, or an architectural walkthrough, whatever. It can all be made to run on a screensaver as if it were just another build target.

The main handling of making your app into a real screensaver, managing the files, managing secure installation, launching the preview window in the windows dialog, launching in config or play mode, etc, is done with some custom programming outside of Unity. At its barest bones it will simply make your preview app launch embedded in the screensaver dialog, make your fullscreen app launch when it’s time to preview it or trigger it, and either make your fullscreen app launch in configuration mode when requested by the user or launch a third app/gui to configure it in a window on the desktop. None of this imposes anything on the contents of what your Unity app does internally.

There are however a couple of things which make the screensaver system work more seamlessly. The first is that the preview app has to have a default resolution of 152x112 so that it will fit into the window dialog properly. Also the preview app has to be set up to open in windowed mode from within Unity, while the fullscreen effect has to be compiled to launch in fullscreen mode. It has to launch this way and since Unity isn’t designed to let you forcibly configure resolution/windowed/fullscreen by hacking into the Windows registry (believe me I tried) this forces us to have to have a separate app for the fullscreen mode. For the fullscreen app you can set what resolution you like but ideally setting it to a high number like 10000x10000 will force Unity to open the highest res possible, which likely matches the user’s desktop resolution. This is sort of normal in the Windows screensaver world, but since you’ll have to set this manually in the Unity editor (unless I add a script to do it) you have control over it.

I also tend to disable the screen-mode/user-input-selection dialog box which usually launches as Unity starts, since screensavers typically need to start on their own without user input, but you could opt to show it if you want to go interactive.

The final potential imposition on your Unity freedom is that Unity needs a little script to run near the start in order to receive communication from the custom launcher to know whether to start up in play mode or config mode. This won’t be needed if you have a separate configuration app, but if the fullscreen app serves as the full screensaver effect and also as the place where the user does configuration (ie realtime interactive adjustments), then it needs this little script to make that switch happen. If you don’t want that script in there then it will always start up in play mode, or you can have a separate app for configuration.

So the only requirement is that the preview app MUST have a 152x112 resolution. Everything else is optional.

Basically then if you have a project right now, no matter what it is, how big it is, or what it does, so long as it results in an exe file it will work. Then if you want it to integrate a bit better with the idea of a screensaver you can quickly add the script for handling config detection (at any time really, not just at the start), and then you have the option to also use my basic screensaver toolset. It basically either gives you a blank slate to start with or adds common screensaver functionality like detecting mouse movement, detecting the keyboard, taking screengrabs, and entering or exiting interactive mode. Now really whatever your app does can be interactive right off the bat, but this mode was just something I thought I’d add given that most screensavers run passively most of the time and then you’d press a key or something to enter an interactivity mode. You don’t have to use that if you just want to be interactive right off the bat.

Right now this system just turns your Unity app into a screensaver, it doesn’t give you tools to create particular effects or templates for standard slideshows or basic cookie-cutter presentations or even more sophisticated animations… both those are interesting possibilities for further down the road. What it does do is gives you a clean slate to do whatever you want, Unity permitting.

I do plan to use this in future as the basis of a much more advanced and involved graphics/gaming platform which will be a cross between general graphics generation and game creation, so that would probably lend itself well to making actual screensaver effects with greater ease.

I agree on the attitude about pricing, I personally am thinking somewhere in the region of $20-30 perhaps. Like you say $50 would be nice but I think I’d need a few more helpful features to warrant that. I appreciate your feedback.

Thanks also for the idea about attracting non-Unity people who might be interested in using Unity Free to make screensavers. :slight_smile:

I figured out how to require only one Unity app instead of 2, for both fullscreen and preview modes :slight_smile:

I’m also looking into being able to build the screensaver as a post-processing step after a normal Windows build, so that effectively you just build the windows app and it auto-converts to a screensaver :slight_smile: This way the whole system will be operated from within the Unity editor instead of having an external configuration app.

hmm is there a way to use java for this? Cause java is on macs too

…A unity3d screensaver framework? Really cool!!!

I am really interested to see some demo and if is good of course to buy it.

Sounds nice.
I am interested too.

I’m not sure what you’re thinking regarding the use of Java. Your screensaver has to be written in Unity and the extra software which turns it into a screensaver runs on both Windows and OSX. There are some problems with OSX - with Apple’s introduction of Snow Leopard they made screensavers have to be compiled for 64-bit. They have to also use Apple’s screensaver framework which largely means they have to be written in Objective C. There is that OSX screensaver system based on a webkit embedded Unity webplayer, but I’m not sure it works on 64-bit (could maybe be recompiled in XCode?) but one issue with it is the framerate limiter in the Unity webplayer, and it would require a mouse click in order to jump to unlimited fullscreen. So it’s not ideal. I was thinking to use Objective C to launch my own app but there might be conflict with the screen that OSX opens for the screensaver and its detection of user input. So there’s more research to be done there. I’m definitely interested in screensavers on OSX so we’ll see.

I will consider a demo, or at least a video.

I forgot to mention there will be the ability to grab an image of the user’s desktop to a temporary PNG file which Unity can then read in at runtime and use as a background texture so you can make screensavers which appear to be on top of the desktop or which manipulate its image in some way, map it to a cube or landscape or whatever. There of course has to be a slight period of a black screen or screen with the Unity logo at the start, due to the way Unity starts up.

There is also functionality to set a screen-grab as a new desktop background after the screensaver ends.