These tutorials focus mainly on OpenGL, Win32 programming and the ODE physics engine. OpenGL has moved on to great heights and I don't cover the newest features but cover all of the basic concepts you will need with working example programs.
Working with the Win32 API is a great way to get to the heart of Windows and is just as relevant today as ever before. Whereas ODE has been marginalized as hardware accelerated physics becomes more common.
Games and graphics utilities can be made quickly and easily using game engines like Unity so this and Linux development in general will be the focus of my next tutorials.
I have now been selling my wares on the Unity Asset Store for over a year now and currently have twelve products for sale. During this time I feel I have learnt a lot about selling on the Asset Store, how it works and what is required to make a go of it.
The first thing to realize is that it is not as easy as hitting a submit button and waiting for the money to roll in. Here is a list of the minimum requirements for any product you choose to sell on the Asset Store.
That is the bare minimum required for any product you want to list on the Asset Store.
In order to fulfill these requirements you will need:
As you can see, the basics required for selling on the Asset Store is quite a list. You can do more of course and I certainly recommend you do things like:
Now, assuming you have done a great job of meeting these requirements there are a few other things to note. Your product may be unique, fantastic and a bargain, but you may not get noticed straight away. As far as potential customers are concerned all they will see is a small 75x75 pixel icon and a name. This will be buried many levels deep, in amongst tens of thousands of other icons, somewhere on the Asset Store. The more that product name and icon describes your product the better. Also choose a category that you would look in for a similar product. Unity occasionally puts out emails and other notifications for new and upcoming assets so you might be lucky enough to be featured on one of these. You can also get creative and put out a tutorial or an article to help bring attention to your asset.
Customer support is a big part of the process. Having a well written program with no errors, great tutorials and a lot of videos will reduce the need for support, but you will still get enquiries, requests for new features and the occasional disgruntled customer. Most of the time they are a customer with a legitimate problem. Just because you know how to do something with your software and feel it is intuitive doesn't mean that the customer will. Always try to provide a quick and courteous response to your customers no matter what the problem. Be ready to improve and adapt your software as these problems arise so that future customers can benefit and you will have less stress in the long run.
Speaking of stress, be ready to deal with this early. Try not to take these bug reports or any criticism of your product too personally. All software has bugs. You will not be able to foresee all of the possible situations and environments where your product will be used. Sometimes there are conflicts between assets or the customer expected more from your product than was promised in your description or videos. They don't know the amount of work you put in to create the asset and get it listed it on the asset store, they just want a product that works. If most of you customers are happy then you should be too.
Sometimes you may get a customer that is just fishing for a refund. After all, they already have a copy of your software, so why not try to get their money back too? They can often be the most difficult to deal with, but if you explain that the product was well described and that the videos were more than clear about what your product can or can't do then they have no case. If they found that your software can't fix their car or clean out their gutters then it is a case of buyer beware. Continue to be polite and expand on the virtues of your product until they see reason.
Customers will rely heavily on the review system on the asset store to find out what others think of your product before they decide to make a purchase. This can be a great benefit if they are positive or a point of contention since you may feel that a review was unfair or hurtful. Even with a negative review you can turn it into a positive by replying quickly and professionally, no matter what tone the customer used in the review, so that other potential customers can see that you are paying attention and trying to help. It would be nice to be able to write to them personally when an issue is fixed. However, since we don't have access to their email addresses this is not possible.
Unity updates can break your asset at any time. They are continually improving their software and responding to changes on the various platforms that they support. Always download the latest version, test your application thoroughly and be ready to make the necessary changes or fixes before going through the submission cycle again.
The best way to bring attention to your asset is to be in a Unity sale. In the publisher section of your Asset Store publisher account is a link to submit your asset for inclusion in a future sale. I strongly recommend you do this as this will make your asset stand out. You may have to reduce your sales price by quite a bit but the number of sales will more than make up for this.
Being a self employed, full time developer has other challenges. You may feel inclined to spend too much time working on your assets. Remember to take some regular time off and schedule your own holidays. An understanding partner is a blessing here since you may be working from home, in close proximity, and suffering from the mood swings that all publishers go through.
Be patient. Getting to the point where you can consider the income gained from your asset sales is equivalent to a regular wage is going to take time. If you put in the effort and continue to improve your products then that day will come. Especially if you follow the next tip.
Make more assets. The more products you have out there the better. Try to diversify and place assets in different categories to get a better coverage in the asset store. But bear in mind that you will have to fulfill all of the basic requirements for each new asset.
Some important factors to keep in mind are:
Customers don't like errors, warnings or excessive logging to the console window.
They expect a reliable undo/redo system. This can be difficult for editor extensions to integrate into the Unity editor, but you can always add a similar feature to your interface.
Developers like it if you don't use the Resources folder. This is especially important if they are developing and doing test builds for a mobile platform. Place your assets in a custom folder and use AssetDatabase.LoadAssetAtPath() for your resources.
Customers often like or need to move your asset into subfolders within the Project folder. It may be to just keep the project folder clean, but make sure they can do this without your application breaking.
They like a clean, modern and intuitive user interface. Take any feedback on how to improve this seriously.
They expect fast customer support and timely updates to fix any newly found bugs. You may be the only developer and have to handle this while simultaneously working on the update, but reply back quickly, even if to say you are working on it and will get back to them.
Enjoy the ride. Being self employed and getting paid to do what you love doing is its own reward.
Unity Publisher Overview http://unity3d.com/asset-store/sell-assets
Unity Forum http://forum.unity3d.com
Unity Asset Store Tools https://www.assetstore.unity3d.com/en/#!content/115
Submitting Tutorial http://www.youtube.com/embed/yCKSxEgz2XI
Fraps Video Recorder http://www.fraps.com
Weebly Website Builder http://www.weebly.com
YouTube https://www.youtube.com
Vimeo https://vimeo.com
7-PDF Maker http://www.7-pdf.de/en/products/7-pdf-maker
Gimp http://www.gimp.org
MonoDevelop 4.0.1 with 110 Themes Included
------------------------------------------------------------------
With later versions of Unity you no longer get a separate install of MonoDevelop and I still wanted to use my 4.0.1 version because I had customized it with new themes etc. This package contains the files for MonoDevelop 4.0.1 with 110 new themes. Simply extract the folder and follow the instructions below to use this version with Unity.
1. install the gtk2 runtime from http://gtk-win.sourceforge.net/home/index.php/Main/Downloads
(I installed gtk2-runtime-2.24.10-2012-10-10-ash.exe and I'm not absolutely sure if this is necessary but it's there if you need it)
2. Once you have extracted the contents of this archive, copy the MonoDevelop folder to "C:\Program Files (x86)\"
(Or equivalent folder depending on the version of windows you are using)
3. If Unity3D doesn't find this version of MonoDevelop automatically when it starts then set it from within Unity by going to Edit>Preferences>External Tools and setting the external script editor to the MonoDevelop.exe file in the \MonoDevelop\bin folder.
4. I have copied the gtk2_prefs.exe program from the gtk2 runtime and added it to the bin folder which allows you to preview the themes but this won't change the theme in MonoDevelop as it only changes the file located at C:\Users\Username\.gtkrc-2.0
What you need to do is go to the theme you want in \MonoDevelop\share\themes and make a copy of the file called gtkrc in that theme, rename it to gtkrc.win32 and overwrite the file in the \MonoDevelop\bin folder.
(probably best to make a backup of the original file first)
5. Once you restart MonoDevelop you should see the new theme.
Alan Baylis