Game Development - Part 2 - Unity and Git

After experimenting with Unity for a while I've finally built a simple game that I want to continue working on. Before I spent too much time on the game I wanted to make sure that I had a backup of the project. The options seemed to be to upgrade to Unity Pro and use the integrated version control, use GIT as an external version control system, or just backup to Dropbox as many small developers seem to do. I don't need Unity Pro at this point and I wanted to use a version control system instead of just a Dropbox backup so I choose Git and Bitbucket. 

Here are the steps I followed to add my existing Unity project to version control using Git and then push it to Bitbucket.

  1.  In Unity under Edit/Project Settings/Editor, I selected a Version Control mode of Visible Meta Files and an Asset Serialization mode of Force Text. I then saved and closed my project.
  2. I created a Bitbucket project and downloaded and installed SourceTree to use as a Git client. During install I skipped the 'Clone project' and 'Install SSH Key' steps.
  3.  In SourceTree, I selected Clone/New, Create new repository, and then set the destination path to the path of my existing Unity project.
  4. I setup my .gitignore under Repository/Repository Settings/Advanced using: and setup my name and email address under Tools/Options.
  5.  I used Repository/Add Remote to add my remote Bitbucket repository. I copied the URL from Bitbucket into the path field and added the name of the project.
  6. I then used Commit to commit my work and Push to push it to Bitbucket.
  7.  Finally, I checked Bitbucket to confirm my files were there and cloned the project on a different computer to make sure everything was working properly.

I have been working with Unity, Git, and Bitbucket for a few weeks without any problems. I'm not much of a fan of SourceTree and would probably just use the command line if I was developing on Linux. I'm using Windows and I find myself typing unix commands into the Windows command prompt whenever I try it so I will stick to SourceTree for now.

Game Development - Part 1 - Unity

In a previous post, I built a skeleton Android app that I intended to use as a starting point to develop a simple hacker trivia game as an Android coding exercise. After some research into the various game development engines and libraries my ambitions have grown and I’m now planning on developing a cross platform 3d game using Unity.

I looked quickly into AndEngineCitruslibgdx, and others but in the end I decided to choose between Unity and Unreal Engine. Both Unity and Unreal met my main requirements including cross platform support, excellent documentation, stores or marketplaces for purchasing assets, and a very strong likelihood that they will be actively developed and supported for years.

I started working with Unity first. Unity was easy to install and there are a lot of video tutorials on the Unity site and on YouTube. I went through the Space Shooter video tutorials and had a game up and running quickly. The biggest challenge seems to be learning to use the Unity development environment and learning the Unity game development concepts. The small amount of coding that was required was in written C# using MonoDevelop and easy to understand.

I liked Unity but I figured I should give the Unreal Engine a try. After signing up for an account, I installed the Epic Launcher. From the Epic Launcher I installed the Unreal Engine and then quit for the day. The next day when I tried to start the Epic Launcher I had to wait for it to update. After it updated there was another 4 gig update for a new version of the Unreal Engine. At this point I gave up and decided to browse the documentation for a while before spending any additional time in an endless update loop.

In the end, I chose Unity because it was easier to get started with and I prefer to code in C# in Unity over using Blueprints or coding in C++ in Unreal. I’m currently brainstorming ideas for my game and working through the Unity video tutorials. I will post a demo using the Unity Web Player as soon as I have something that is playable.