Pages

Sunday, July 24, 2011

Book Review: Starting a Successful Business in Canada KIT

Disclaimer: Laws are constantly changing and this blog post makes no representations or warranties of the outcomes or results of using information in this post. The author of this post and source information will not assume any liability for any claims, losses or damages from the use of this information.

Sorry for that wordy disclaimer, but it would be a real shame if something that was meant to spark people's interest was used as anything else. The reason for this post is that something that I feel a lot of developers do not spend enough time with is learning parts of a business. If you are smart enough to to develop complex games, you should be able to know as much about a business as someone who sets up a hotdog stand (by the way I do like those guys a lot, and only meant as an example of the complexity of creating the final product).

The book Starting a Successful Business in Canada KIT 18th edition by Jack D. James. MBA, LLB is one of the first business type books I have read outside of a few business books for courses I took in university. James recommends developing a business for things you are passionate about as a business can quickly eat up a ton of your time. If you do not have an interest in what you are doing, you are less likely to continue and pursue through the hardtimes.

There are some useful techniques in setting up your business:

Constantly re-evaluate your business process, if you are doing minor tasks to make your business run (like repairs, tools etc.) consider expanding your business (James example was with boats, if you rent boats and motors, and spend a lot of time fixing the motors, you should also consider buying broken motors and fix them to rent or sell as part of your business).

Keep copies of everything, keep all your receipts, print outs, photocopies of cheques received for payment, bills, tax information. There is lots of software to help get organized, if you are finding it difficult to keep track yourself.

Before starting a business do a break-even analysis, which is:
Total Costs = Variable Costs + Fixed Costs
Fixed Costs are things you can not get away from (rent, insurance, salaries, equipment, etc.)
Variable Costs are any additional costs it takes to create a sellable unit (material, labour, etc.)
The goal of the break-even analysis is to see how much you have to sell to break even, everything above that is profit, everything below that is a loss and worth re-evaluating how if the business will make money.

There are multiple setups for creating a business Proprietorship, Partnership and a Limited Company (or Corporation). After reading the pros and cons (and though I am not a lawyer) it seems like almost everyone would recommend a Limited Company. It is a little bit more money to get started, but offers a lot more protection to you as an individual (unless you have signed a personal guarantee). The difference is, with a sole Proprietorship you and your business are considered "one entity" and can not easily be sold or transfered, may not be eligible for government loans and creditors can go after your personal assets (house, car, etc.) if your business is being sued. With a limited company the corporation exists as a separate legal entity and also offers better government tax considerations, and is eligible for government funding, can be sold, and is generally perceived as having more status in the marketplace.

There are a number of requirements that you should be aware of, they may include any or all of the following.

All Businesses:
Registering for GST (to recover money spent on business purchases).
Privacy Acts (acts for collecting personal information of clients)
Sales Tax (tax on all tangible personal property that is purchased or imported)
Patents (trademarks, copyright etc.)
Product Standards (CSA approved)

Manufacturing:
Licenses (loan money, handle food, transport items, manufacture, modify natural resources etc.)
Federal excise tax (for any manufacturing)
Custom duties (if dealing with imports and exports).

Employer:
Federal income tax (if you are an employer, need to handle the income deductions)
Employment insurance (if youa re an employer and not a proprietor)
Canada Pension Plan (if you are an employer)

Of course there is more to it, but it is likely that if you are a game programmer (potentially an indie programmer of one), you may not have to worry about the employer aspects or many of the manufacturing elements, but it is still worth while to have some knowledge of what is involved. All in all, if you need more advice consult a lawyer or accountant, they will likely help set you in the right direction. There are some tax benefits you can look at (even working from home), but you will have to do a bit more research on this part of it.

Fortunately there is lots of support the Business Development Bank of Canada (BDC) offers a wide range of services for all stages of business http://www.bdc.ca/. Canada Business Service Centers offers information about government services and programs: http://canadabusiness.ca/

All I am saying, is that do not be afraid of something that millions of people already do: http://www.ic.gc.ca/eic/site/sbrp-rppe.nsf/eng/h_rd01252.html. I'm not saying go out and create a business now, but if you have that next great idea, do not let the unknown fear of "what is a business" stop you. Sure, if you have never done something like this before it is a little out of your element, but like everything it will become second nature with a bit of knowledge and practice. You can even check out the information involced online: http://www.cra-arc.gc.ca/tx/bsnss/tpcs/bn-ne/bro-ide/menu-eng.html (sorry international friends, I hope you can find a similar link).

Best of luck,
Michael Hubbard
http://michaelhubbard.ca

Monday, July 18, 2011

Book Review: MEL Scripting a Character Rig in Maya

The book MEL Scripting a Character Rig In Maya by Chris Maraffi, is an intersting book on how to automate more of the rig creation (something I am a big fan of). Maraffi has a video describing his tools on youtube at http://www.youtube.com/watch?v=x4s6-ahJWvU. This is a good book for those interested in MEL scripting and rigging, and has some more advanced concepts (such as creating a full UI for the rigs and some tools to create and bind rigs to a mesh.

Overall, the majority of the book covers the creation of a basic FK rig to a more complex IK rig, with a lot of focus on MEL scripting and setting up the GUI. The end result is a very nice collection of controls and GUI elements to drive the character, as well as some neat more advanced controls/scripts for handling the character's breathing, eye jitter and stretchy spine.

While it would be ideal if the code base was in python instead of MEL, it is understandable that this is still the most popular Maya language. The code base works and has a lot of comments which will help the beginner, but is also fairly reliant on its own naming conventions, which also results in a lot of magic strings to keep the code together. I also feel that the code may have benefitted a little by being broken into smaller, simpler functions. There are a number of cases where a function seems to do a lot, and while it is easy enough for those with a developer background to understand, I always feel that fairly long functions are more difficult for the beginner to wrap their head around. The Maya GUI programming is pretty straight forward, it is easy for a Maya GUI script to get quite messy, but Maraffi does a prettty good job in keeping everything organized and logical with the GUI examples.

All in all, a good book and good examples and code base of rigging in Maya. I would recommend it to those interested in rigging and MEL script, although would recommend those following along with experience in python to look at converting the scripts to that instead.

I am really enjoying automated breathing in the rig, it is pretty cool.

Later,
Michael Hubbard
http://michaelhubbard.ca

Thursday, July 7, 2011

ATempo Digital Archive Event

I just got back from an Annexpro event http://www.annexpro.com/news-events/. The event was held at the Annexpro office and was "Managing Digital Content Throughout Your Workflow with Backup and Archive" presented from Atempo http://www.atempo.com/ on their Atempo Digital Archive (ADA): "a long-term data storage system and file archiving solution aimed at mid-market and larger organizations".

The product looks pretty easy to use and sounds fairly easy to setup
with a nice GUI, drag and drop interface, and good support for both backups and archiving. The interesting part was some of the integration directly into Final Cut Pro and Final Cut Server (and more Avid and other products on the way), as well as drag and drop from Finder (on the Mac, although supported on multiple operating systems). It looks like Atempo are partners with lots of the major players in software and hardware as well as dealing with government, and I am always interested whenever NASA is mentioned (although how involved is hard to say).

The focus was on digital content and being able to optimize SAN or NAS storage by archiving data to
low cost disk or tape archive, with easy retrivial. One of the nice features of ADA was its ability to have the files appear as if they were still on disk while they were archived and made it transparent to the user. Another interesting approach was automatic archiving which allowed rules to be setup to automatically archive an entire folder (such as if a file is over a year old and has not been accessed in a month, archive it). There was also quite a bit of metadata that was involved which allowed it to easily store the data.

One of the things that would be a nice to have, was an in place versioning system. The answer to this could be by archiving separate copies for each version, but would be nice to have built in (similar to SVN, Git, Perforce or AlienBrain) but also automatically archived. Really good
(preferably open source) binary versioning with backups, minimal storage and ease of navigation and retrieval of data is something that seems to be lacking in most studios as there is no definite solution. The amount of memory used with something like SVN on binary data quickly becomes unusuable, as networks and harddrives begun to struggle with 100s of gigs or multiple terabytes are in play.

Still and interesting presentation and it is always good to see what kinds of solutions are out there.

Bye for now,
Michael Hubbard
http://michaelhubbard.ca