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: https://github.com/github/gitignore/blob/master/Unity.gitignore 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.

Blogging with SquareSpace

ThreadHunter is now running on SquareSpace after about six months of being built as a static site using Hugo. My decision was based primarily on two factors. The first factor was my positive experience building FuzzPage on SquareSpace. The second factor was that the overhead involved in generating and uploading the static site was discouraging me from posting. SquareSpace provides everything I need in one place, easily accessible via a browser. This includes things like comments, metrics, and site search that require external services when building a static site. With SquareSpace I can spend more time blogging and less time building and maintaining a static site. For me, the benefits of a static site, primarily speed, security, and cost, are outweighed by the ease of use and functionality provided by SquareSpace. 

ThreadHunter is a small blog site so the process of migrating it to SquareSpace was relatively painless. After selecting a template, I started by cutting and pasting each post into a SquareSpace blog post. Links and code snippets were handled fine but images had to be copied over individually. Next, I set the slugs and publish dates of each post to match the originals and added categories and tags. Then I set the blog page to the home page in SquareSpace so that the posts were available from '/blog/...' and '/...' to match the existing URLs. Finally, I went into the SquareSpace settings to connect the site to my existing domain. After a few minutes the site was up and running smoothly with a nice new mobile friendly layout and, for the first time, site search.

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.

SquareSpace vs Weebly vs Wix - Website builder comparison

ThreadHunter is built using Hugo, a static site generator that generates the site from Markdown files. At the opposite end of the spectrum are site builders that allow you to build full featured websites without ever glancing at a command line. In order to compare three popular website builders, SquareSpaceWeebly, and Wix, I decided to build a simple website, FuzzPage, using all three services. Here are my initial impressions:

SquareSpace

SquareSpace was the first site builder I tried. SquareSpace offers a free 14 day trial. Paid plans are 8, 16, or 24 dollars a month billed annually and include a free domain. After signing up for the free trial, you start by choosing a template. The available templates are impressive with a modern professional look. Many of the templates are image heavy and geared towards ecommerce or gallery type sites so it took some time to find one suitable for a blog or news site. The live preview makes it easy to test the templates and the process of experimenting with different templates can be fun. After choosing a template you are asked for the site purpose: Personal, Business, Ecommerce, or Non-Profit. Finally you choose a title for your site and you are taken into the designer.

My initial impressions of the designer are that it is relatively easy to use. There are many options to customize your template and your site is pre-populated with sample pages so it is easy to get started just by editing the samples. One useful option is the ability to select high quality images from Getty Images for use on your site. These images look great in some of the image heavy templates and can be licensed for a $10 fee.

Outside of the designer there are settings for commerce, metrics, and comments. It is also possible to use Google Analytics for metrics and I think you can replace the built in commenting system with Disqus.

Overall I was impressed by SquareSpace. It looks good, is fairly easy to use, and is inexpensive compared to the amount of time you would spend to build a site of comparable quality on your own.

Weebly

Next I tried Weebly. Weebly offers a free plan with branding on their domain. Paid plans are 4, 8, or 25 dollars a month. After signing up you are asked to choose whether you want to build a site, blog, or store. Next, you are presented with a number of templates to choose from. The templates were OK but not as impressive as SquareSpace.

Weebly uses a Drag & drop site builder that was frustrating to use. The template did include pages for About, Blog, and Contact but the pages were empty. There was no pre-populated content to give you an idea of what the site looks like. You can drag and drop components into the pages but I’ve never been a fan of drag and drop anything and if I wanted to build pages from scratch I would do it in HTML/CSS and not a drag and drop editor.

Weebly was not for me, so I quickly moved onto Wix.

Wix

Similar to Weebly, Wix offers a free plan with branding or variety of paid plans. After browsing the available templates and experimenting with the editor, Wix seemed to me to be a middle ground between Weebly and SquareSpace. The templates and site editing capabilities were both better then Weebly but not up to par with SquareSpace. The editor is pre-populated with content making it much easier to get started then Weebly but the Wix dashboard, editor, and templates seemed a bit old school after using SquareSpace.

Conclusion

Despite their new features and web 2.0 names, Wix and Weebly reminded me of the bloated ugly site builders of the past. If you want to build a site for free Wix is certainly usable but for me SquareSpace looks better, is easier to use, and has all the features I need.

Disclaimer

This post is based on my initial impressions of Weebly, Wix, and SquareSpace. If you are building an ecommerce site or a site with more complex requirements then you may come to a totally different conclusion. I plan to continue working on FuzzPage and I will write a follow up post after I spend more time with SquareSpace.

Android Development Part 1 - Building a skeleton app

This is the first post, in what I intend to be a series of posts, documenting my attempt at developing a simple mobile game for Android. This post describes the steps required to create and run a skeleton app from scratch using Android Studio.

First, download and install Android Studio which includes an Andriod IDE, SDK, and various tools from http://developer.android.com/sdk/index.html

When Android Studio starts, follow these steps:

  1. Select ‘Start a new Android Studio project’ from the Quick Start dialog.
  2. Fill in your domain and application name.
  3. Leave the default target platform of phones and tablets with a minimum Android 4.0.3 (IceCreamSandwich). According to the dialog this will allow your app to run on over 87% of the active devices on the Google Play store.
  4. Select an Activity to add to your project. In this case I’m attempting to build a fullscreen game so I selected ‘Fullscreen Activity’.
  5. Leave the default options on the next screen and click finish to create your project.

To verify you have a working project click the run icon, choose a device or the emulator, and click OK. With some luck and a bit of patience your new app should be up and running. Here is an image of the skeleton app for my game,Striver, running on the Android emulator with a Nexus 5 image:

The new project wizard, bundled emulator system image, and faster emulator make it quick and easy to build a skeleton app using Android Studio. If you’ve only ever tried Android development on Eclipse with a painfully slow emulator it may be time to give it another try with the latest version of Android Studio.