Using Unity with GIT

This article will go over the basics of setting up Unity to use source-control and setting up your first project

Telling Unity you want to use source-control

Within Unity, press Edit > Project Settings > Editor. In your inspector window you will see the Editor Settings for your project, under “Version Control” set the mode to Meta Files.

This will tell Unity to generate a small file for each object in your project (everything; Scripts, Prefabs, Textures, you name it, it metas it). Now, when an asset is modified in the editor, only the asset and it’s associated meta file will report changes, instead of the entire Library folder.

And then Asset Serialization, set it’s mode to “Force Text”. This will output Unity levels as an YAML document instead of a binary file (Pro Only).

Setting up the .gitignore

Unity generates some files that GIT wouldn’t need, for instance the Library folder. This contains GUID’s for each asset within the project, it’s normally packed with hundreds of files that can confuse GIT and lead to merge issues later on. To solve this we simple ignore it!

In the root of your project that you want to source control create a new file named “.gitignore” (Depending on your OS, this file may be hidden so you will need to show hidden files).

Within this file type:

.DS_Store
Library
Temp
*.csproj
*.pidb
*.unityproj
*.sln
*.userprefs

Updated, thanks @tjheuvel



Obviously replacing “[Your_Project_Name_Here]” with your project folder name..

Your first commit

Now you are ready to commit your project to your GIT server (I recommend BitBucket.org for this..). Open up your console and type:


cd <project path>
git init
git add .
git commit -m "[Initial project setup]"
git clone --bare . <repository location>
git remote add public <repository location>

Change the repository location to the URL of your GIT repository and you should now be done. Well done you’ve got your Unity GIT repo setup.

From Unity to XCode to TestFlight to the client

This article only provides a very brief overview on the entire process, however if people would like I will write a more detailed article.

TL;DR?

If you would like to use a shortcut you could just buy this plugin for Unity for $50.00. I’m not associated with the plugin however it does seem to save a LOT of time.

What is TestFlight?

It’s your saviour in a short description. In a slightly longer one however it is an over-the-air app distribution service that is provided for free by TestFlight App, Inc. It allows you invite your testers (or in some cases your clients) onto the service and register their iOS devices (Sorry, no Android as yet!).

Once they are registered you can take their UDID of their device by simply going to the site and clicking their username in the “People” section of the site, this will then pop-up a nice little box with all their details plus an export button that outputs an Apple-ready device ID list.

Putting it all together

When it comes to building the application, do as you would a normal build however after compiling hit Build > Archive. Once it’s finished archiving the organiser window of XCode will open up with the new archive, from here you have to click the button “Distribute” and then select “Save for Enterprise or Ad-Hoc Deployment”.

Make sure that your Code Signing Identity is set to the right application provisioning profile (And if your building for enterprise account’s, make sure the provisioning profile is set within the XCode project itself too!)

The window will then have a spinning icon, once this has vanished it will prompt you for the directory to save the “IPA” file in. Now for the nice bit..

Go to the TestFlight site, press the plus button in the top right of the site, and press upload build. Fill out the form, upload the file and then select which users can use the app. These users will have to be the same devices that users that have their devices registered on the app provisioning profile.

Happy coding!

What is XCode?

Well.. if you are ever going to work on an iOS application, you are going to have to use XCode at some point. Sadly Apple decided that it would be best to limit the compilation of iOS applications to only be possible on a Mac machine so that would be the first thing you would need to have.

After spending a significant amount on the relevant hardware you will need to buy yourself an Apple Developer License (Currently $100 a year) and then buy an iOS device to test on (Cost quickly mounting up..). Ok now you need to start programming your applications, so download XCode from the App Store, login using your shiny new developer account and create a project. Oh and you’re going to have to learn Objective-C.
OR

Instead of learning Objective-C and saving yourself months of heart-ache (Though really you should learn it if you want to be making any sort of app, incase you need to make your own plugin’s) you could boot up Unity with your iOS license, create project and hit build-and-run (after setting up the application ID, creating a provisioning profile for the application and registered the devices to that profile..).

If your device is connected, the project will compile from Unity into an XCode project, then compile from XCode into an application which (if your device is connected) launch straight onto the device you’ve registered. Now that the application is on the device, you are free to disconnect it from the machine and the application will still be there! Congratulations you’re now an App developer. Now what if you wanted to put that same application onto 10 other devices, then what if you had to update them with a new build?

Well you could manually attach the device to the Mac, build and then push it to the device for each individual phone.. or you can do something called an Ad-hoc distribution. Welcome to your new best friend TestFlight.

What is Unity?

Unity is a handy multi-platform game* engine that allows for rapid prototyping and creating polished final products. Depending on your language preference you could be writing in C# (Mono), Boo (Python) and Javascript (UnityScript, it’s not exactly the same..), so take your pick!

I haven’t yet tried Boo, purely because I am more experienced with C# and I generally end up converting Javascript code into C# if I’ve ever needed to have a certain script that wasn’t natively C#. (It makes the compiling easier, plus why work in multiple languages, how would inheritance work?).

Currently Unity support’s AndroidiOS, Mac, Linux, PC, PS3XBox and Wii. The options in italics are paid for options that you would have to buy an extension license from Unity in order to have access too, however the price you pay will be trumped with the amount of time / effort you save during development cycles thanks to the truly cross-platform nature of Unity.

At the time of writing Unity Pro costs $1500 and allows access to a whole host of useful features listed here. However if you don’t want to pay to use the Pro version you can currently download Unity for free and without restrictions so long as you don’t need any of the aforementioned features.

The bolt-on licenses for iOS, Android and Flash player are either $400 each for the non-Pro version and $1500 for the Pro version each.

*It’s very easy to NOT use it for games too, for instance check out the Mercedes and Citroën Augmented reality projects I created with this very engine..

TONE – Ludum Dare 24

Over the weekend I competed in Ludum Dare 24 for my third time and managed to whip together a game in 48 hours. Here is what I ended up making.

Developed with C# in the Unity engine, this was mainly a test to see if the underlying framework I developed would stand up to rapid development. The actual framework is a collection of tie-in’s to various services (Scoreoid for example) along with handling common things like score / profile management. Overall I found a couple of flaws in the current system where some elements were very dependant on others and as I want the framework to be a modular as possible it will need a re-think.

Overall though I am very happy with the game that I ended up creating, I had hoped to add a few more enemies into the mix and some more gameplay mechanics like power-ups and upgrades but that’ll have to happen in version 2. I’d like to thank Ludum Dare for hosting a great competition once again and I look forward to the next one!

Downloads / Links to the game

Mac - Windows - Web

Molyjam 2012 – Revenge of the Road

Developed during the MolyJam UK event in 2012, using Unity a team and myself created the game Revenge of the Road in 48 hours based on the tweet ” Have you ever played a racing game and wanted to play as the road rather than the cars? I know I have…” [Original Tweet]

Controls

Unity based multi-player game (One computer), WASD to control the ship, Arrow keys to control the road. Road must shake the player off and the player must stay on the road for 30 seconds.

Team Members

Danny Goodayle, James Simm, Chapman Lee, William Robinson, Maksims Mihejevs, Chris Bean, Robyn Nevison, Roberta Saliani, Thomas Clarke and Paul Sinnett

Cube Gallery Clone in Unity3D – “Evolver”

Cube Gallery Clone in Unity3D – “Evolver”

Inspired by Michael Brough‘s TIGJam UK 6 Entry “Cube Gallery”

“Cube structures are generated by a random string, e.g. ‘fcWxcMncgsGnmjcmxm0ccccgnxM’, interpreted as an algorithm ‘move forward, place a cube, shift colours towards white, rotate around X axis, etc.’
Structures fade in and out, and are replaced by new structures.  Strings for the new structures are generated based on what you spent most time looking at.”

- Michael Brough

Demo:

Demonstration

Source code:

Evolver

FaceAche!

FaceAche was a developed in collaboration with Kristian Fosh, a 2D Artist, using the Corona SDK.
SWIPE IT!
Its addictive party fun with this handheld party game from the people who brought you Shlumpf! React to the on screen commands to Tap, Swipe, Shake before unlocking Zoom and Pinch as the timer ticks down faster! FaceAche is the smash hit available for iPhone, Pod & Pad – just go easy on the SHAKING!

SHAKE IT!
Inspired by one of the most addictive party games ever, use actions that are already second nature to iPhone users! Use simple Multi-Touch controls or shake with the Accelerometer. In every mode, just read the commands but make sure you move before the clock runs out! Easy to play – but hard to put down!

PASS IT!
Invite friends to play FaceAche in Party Mode. Pass and Shake but keep it moving as that timers getting faster and faster! With two ways to play and a highscore to beat the fun doesn’t stop!

TROPHIES!
Think you’re the FaceAche master? FaceAche for iPhone, Pod & Pad touch you can unlock special Trophies that can only be unlocked by breaking scores and mastering the modes.

ROBOTDOG

Y.O.W.E (Your Own Worst Enemy)

Asynchronous multiplayer gameTheme: Revenge.

Objective is to find the leather pouch within the map, collect it, and return safely to the exit. Avoid the guard dogs!

Next time the game is played, the game uses the path of previous playing for the guard dogs.

In a nutshell, you will play against yourself when you restart the game, and therefore you will be own worst enemy.

Controls :

WSAD – move spy around

Contributions:

Danny Goodayle @DGoodayle

Olivier Szymanezyk @OScpp

Darshan Raja Rayan darshanrajarayan@hotmail.com

David Denton ScribblesDenton@gmail.com

Peter Silk @SurplusGamer

Chapman Lee chapman.lee91@gmail.com

Made at the Bit of A Game Jam game jam, 5 February 2012

Download:

Grab it here

“Lets be friends” Source code released.

What is it?

… Let’s Be Friends (named so because the enemies want to hug you apparently) which is actually a very promising little project and one that its developer is keen to finish. It’s a twin-stick arena shooter as you would expect with levelling, upgrades and of course slow-mo. As simple as it is in its prototype stage, Let’s Be Friends, has some addictive gameplay to keep you busy. - Indie Game Magazine

Where to get it?

Currently the entire project is hosted on Google Code, here.

What can I do with it?

Anything you like, I’m releasing it up the Creative Commons 3.0 BY-SA license. I would love to see people adding new features to the game, more explosions perhaps!

Why?

I am going to be developing on this as well, hopefully into something more interesting in the long run, however I am pretty tied up developing Thanatophobia and I really don’t want this code to just go to waste on my hard-drive. So I’m posting it for the web.

I hope you have some use for it, if you need any information on it just give drop me a message and I’ll try to help!