Unity: Day 2 & 3 - What Bothers Me

I've been spending more time with Unity. I understand the basics. I can prototype a game in a few hours. It is a powerful tool that lets you build 3d games before you understand the nuts and bolts of 3d.

After my first day with Unity, something bothered me about it. I thought I disliked it because it was too high up the stack of abstractions. I thought I disliked it because it was too much point and click and not enough code. Since then I've decided that Unity is a good introduction to the topic. You can start with Unity and then work your way down the stack. You can build things by dragging and dropping components, but you can move on from that.

After reading this post by Jeff Atwood, I realized what really bothers me about Unity: no source. Documentation is good, but nothing beats the source code. I referenced the cocos2d source countless times while building Four Hats and Omegapixel. I've even hacked the source when I felt like I needed to for the project. Neither of those are options when using Unity.

I have developed software using the Microsoft stack: C#, .NET, MS SQL Server, IIS, Windows Server, etc; and I've developed software using an Open Source stack: Python, Django, MySQL/Postgres, MongoDB, Apache, Linux, etc. I like the ideals behind Open Source, but I am not a zealot. I prefer an Open Source stack not for any idealogical reasons, but because having the source code available is a tangible benefit. Unity suffers the same drawback as a Microsoft stack.

Unity is a powerful tool. It is a tool that we will use if it fits the projects, but it will always have that one thing holding it back. No source code.

Unity: Day 1.5

It's been a week since my last session with Unity. Work on a Four Hats update and the yet unnamed TBDOP project has been stealing all of my time.

I logged on to Twitter this morning and learned that Unity has a sale on the basic iPhone & Android add-ons for the amazing price of ZERO dollars. I could not resist so I upgraded my license for free, downloaded a sample project, and loaded my first Unity project onto the iPad. In total I only spent an hour with Unity before getting back to TBDOP but having the mobile publishing kits will draw me back soon.

The sale runs through April 8th, so make sure you grab it while you can.

Unity: Day 1

(This is Day 1 but part two in a series of posts that started here.)

Today was my first day with Unity. I downloaded the 1GB installer here. I choose to activate the free version of the software rather than the 30 day trial of the Pro version because I want to save that opportunity for when I have a clue.

When the software launched for the first time it had a demo project loaded. I played around with the interface for awhile, tested out the demo, and tried to get a feel for the IDE. The IDE is very visual. I didn't know what I was getting into so this was a bit of a shock. I kept looking for a way to switch over to a code view. It may be there, but I haven't stumbled across it yet.

Knowing that randomly clicking around wasn't going to get me very far, I decided to start looking for a good tutorial to follow. I decided to go with the 2d Gameplay Tutorial available on the Unity3d site: http://unity3d.com/support/resources/tutorials/2d-gameplay-tutorial.

2D Gameplay Tutorial

The first thing I did was run the sample code provided by the tutorial. The physics felt very buggy. Knocking a box over would occasionally cause it to fly around on the screen wildly until it found it's original resting position again. It is just a sample project, but this did not give me the warm and fuzzies.

The tutorial mostly covers how to wire things together using the interface. The process of loading new assets into Unity is not covered in this tutorial. I was slightly disappointed that this wasn't a ground up tutorial. Wiring a bunch of existing components together is fine for gaining comfort in the interface, but it didn't leave me comfortable with building something from scratch.

When I wrapped up the tutorial I had a better feel for the UI and a basic understanding of how to attach scripts. It was a decent tutorial, but it wasn't what I was looking for. I want a HELLO WORLD!

Tomorrow

In the next session I will be looking into building something from an empty project. If I can't find any materials that cover this in detail, then I will write up a tutorial.

Let's All Just Get Along - A Cocos2d Dev Explores Unity

I have been building things using cocos2d for awhile now and I have grown comfortable with it. I can prototype games fairly quickly and I am familiar with what it can and can't do out of the box. I am going to continue to develop games using cocos2d, but it is time to explore something new.

Starting next Monday I am going to dive head first into Unity and see what I can build in a week. I am not sure if I will be building one game or many small prototypes, but I will post an update of the experience once per day.

If you know of any good Unity resources, please share them with me in the comments!