[B.U.G.] Winter meeting recap

Special guest recap by Ben Wiley, also found on his blog.

Boston Unity Group’s (B.U.G.) third meeting was underway this Tuesday, November 14th, as Alex Schwartz of Owlchemy Labs and Elliott Mitchell of Vermont Digital Arts welcomed everyone to the Microsoft NERD Center in Boston, Massachusetts.  The packed room held a pleasing mix of familiar faces from previous meetings as well as an abundance of fresh, new ones joining the community.

Alex and Elliott set the schedule for the meeting and promptly introduced the evening’s featured speaker, Trevor Stricker, Director of Game Development at Quick Hit in Foxborough, MA.  As the Director of Game Development, Trevor has overseen the development of the company’s powerhouse online game, QUICKHIT Football.  The game represented an interesting topic for the group’s third meeting as it highlighted both the benefits and challenges of developing in Unity for the web as well as a few other quirks along the way.

QUICKHIT, as Trevor explained, was originally developed as a Flash-based football coaching simulation but it was not long before the allure of creating a more vibrant and realistic 3D version could not be resisted.  Developing the Unity version of the game allowed their team to skip some of the more tedious tasks the Flash version required such as rendering animation sprites for every team in the NFL.  Trevor’s talk also highlighted some of the challenges that Unity game development for the web faces.  QUICKHIT Football follows a free-to-play model and therefore draws some of its revenue from advertising.  Some Flash-based ads pose a problem, however, as a Flash element cannot be projected over the graphics-accelerated Unity game.  The other major hurdle which is not exclusive to QUICKHIT is that the Unity plugin must be installed to play unless the user has it installed from a previous adventure.  Much like Flash a decade ago, many people are unfamiliar with Unity and getting a new user to install something they’ve never heard of before can be a daunting task.

QUICKHIT Football, Unity client

This topic launched into a great open discussion amongst the group about whether the plugin hurdle was due to the installation being too technical, too time consuming, or simply a matter of being a lesser known plugin.  Some members present spoke about different ways to cut down the amount of time installation might take in order to reduce the number of users that might be lost in the process. The discussion had to be cut short, however, in the interest of allowing time for the members to showcase their projects.

The first member up in the showcase was Mark Sullivan, a graduate student from the Singapore-MIT GAMBIT Game Lab.  Mark had presented his work back in August at the last BUG meeting, showing the group how he was integrating a softbody physics library into Unity.  The group was impressed with the new ways that he was able to mix soft and rigidbodied physics in Unity, even though this particular demonstration did not include deflating an enormous mushroom as his previous one had.

Following Mark was Fredrik Kaupang of Kaupang Studios who shared his current Unity project Subvivor, a submarine simulation game featuring numerous levels, submarine upgrades, and lots of big fish.  Fredrik had been demonstrating Subvivor at the Powered Up event in Boston last month and it was great to see how much progress he had made since then.

A platformer level designed using the Defective Studios level-building tool.

After Fredrik came Jono Forbes and Matt Schoen of Defective Studios.  Members who had attended the August meeting would have recalled the level-building tool and platforming game they had shared with the group.  Although that project has come a long way since August, they were excited instead to talk to the group about their Asset Cloud tool they have been building for Unity.  Since Unity only offers their Asset Server at an additional charge with Unity Pro, Defective developed their own resource server to use.  Already an impressive project, they encouraged members wrestling with asset and resource management for a Unity team to talk to them.

Vermont Digital Arts’ Spin Spell

The organizers of the Boston Unity Group were the last to share their projects in the meeting’s showcase.  Elliott, of Vermont Digital Arts, demonstrated their latest Unity project, a game called Spin Spell.  Spin Spell is a physics-based learning game designed to help children learn while using a labyrinth-style game to keep them engaged and improve hand/eye coordination at the same time.  Alex shared the most recent version of Owlchemy Lab‘s Smuggle Truck which had originated at Boston Game Jams’ Immigation Jam some months back.  The newest version boasts many new levels, high-flying cargo, and a slick level-building tool.  He mentioned that Owlchemy may be hosting some level building challenges in the future, so keep your eyes out for that!

Owlchemy Labs’ Smuggle Truck

Although the official meeting wrapped up shortly after nine in the evening, many of the members adjourned to the Cambridge Brewing Company for food, drink, and continued conversation.  The latter part of the evening saw some great discussions, further sharing of projects, and the triumphant return of our friend Yilmaz Kiymaz to Boston to a thunderous round of applause (even from the other patrons)!

A big thanks goes out to Alex and Elliott for coordinating another great meetup and for all of the community’s members, both old and new, for making it such a successful event.  Stay tuned here, at Boston Post Mortem, or at subscribe to the BUG mailing list at Boston Unity Group‘s website for information on the next meeting!

— Thanks Ben for the great recap!

Update: Friend of the community Richard Brown has put up a post about the B.U.G. meeting and has included video footage! Check it out on Richard’s blog. We thank you for taping another event :)


Self-hosted Unity Asset Server? Access it from outside your network!

So you want to host your own Unity Asset Server locally but are wondering how to reach your server machine from outside of your network? When you’re in your own home, using the internal IP address of the server machine works fine, but when you’re sitting at Starbucks, or your artist is in Jamaica, how is everyone able to commit their hard work? Read below.

External IP vs Internal IP
When you’re on your computer, behind a router, you have two IP addresses. One is local and one is external. Visiting a website such as http://whatismyip.com will let you know your external IP. This is not actually the IP of your physical machine. It’s the IP of your router, which routes traffic over the internet. Your internal IP is the individual machine’s IP address within your local / ‘home’ network, as opposed to the Internet. That usually looks something like, or vaguely close to that, if you haven’t customized your DHCP settings on your router.

Dynamic IP vs Static IP
Most home connections use a dynamic IP, meaning your external IP address will change from time to time. Most ISPs will allow you to pay extra for a static IP, which in my opinion is a waste of money. Thanks to services such as No-Ip.com and Dyndns.com , you can get a permanent free hostname! These services upload your current external IP on a set interval to their website and provide you with a hostname that always points properly to your IP!


  1. Install Unity Asset Server on Mac/PC/Linux. See Unity’s Manual and the Asset Server Installation page for instructions.
  2. Sign up for No-Ip.com and add a new ‘host’. Choose your own free hostname and set it up as a “DNS Host”. Now, in order to set up auto-updating of IP addresses, set up dynamic DNS through your router, if your router supports it. If your router does not support dynamic DNS updating or you’d like to avoid that method, you can install the free No-Ip daemon on your machine. For information on how to do these this, visit the No-Ip support page.
  3. Forward the proper ports on your router. You should forward TCP port 10733 to your asset server machine so it is accessible from outside of the internal LAN. For info on how to do this, you can google for “<router model> dynamic dns instructions” , or if you happen to be using a Linksys router made in the past 10 years (a good percentage of users I would guess), you can follow these sample instructions on how to forward a port on your router:

Open up a web browser and login to your router’s web-based configuration. By default the IP address for configuration is set to Enter the username and password, click on the Advanced Tab. In the advanced section, click on the Forwarding tab. Enter the port you want to foward (10733) in both boxes on the Service Port Range fields and the internal IP address of your asset server machine. Next click apply. Voila!! Port forwarding is setup.


Learning resources for Unity

More and more I’m asked the question: What’s the best way to learn Unity? For those who would like to get up to speed as fast as possible, I’ve aggregated some learning resources to help.

Unity3D Student

Will Goldstone’s collection of videos that cover all the basics of working in the editor starting with the Essentials Module and going up to intermediate difficulty.  I would label this as recommended reading (or watching).

3dBuzz Unity Series

I’m a big fan of 3dBuzz and their tutorial series. Check out their new Unity section :)

TornadoTwins / UnityPrefabs learning resources

TornadoTwins do a good job of showing Unity from a beginner perspective. Check out their Youtube link for some more content.

Unity3d Tutorial section

Tutorials straight from the source – Unity provides some great tutorials right on their website.

Unity3d Example Projects section

More content from Unity’s main website – this time a collection of example projects to pick through and do some self-learning.

Unifycommunity Tutorials

A community gathering of new (and old) tutorials found on the web

Unifycommunity Script Samples

If you’re like me, you’d love to see the code right off the bat and learn by reading code others have written. This is the ultimate resource for sample code.

design3 Unity Tutorials

If you’ve got a couple of bucks, check out design3’s Unity resources, the new official tutorial provider for Unity. Very high quality stuff.

InfiniteAmmo’s Tutorial Series

Alec from InfiniteAmmo has put up some video tutorials going through the basics of Unity. Recently he’s been re-doing them using Unity 3.

Unity Tutorials collection on Reddit

Another great aggregator of Unity tutorial links, this time in Reddit form

Comments Off on Learning resources for Unity Comments

Run two instances of Unity with one easy button

@TornadoTwins had asked publicly how to run two instances of Unity on a single machine. With Unity 3, it’s very simple. All you need to do is run Unity via Terminal. Some users, however, shy away from Terminal and would like a way to launch two (or more) instances without touching a command line. Follow these steps and you will create your own app launcher capable of opening as many instances as you’d like.

  1. Open Automator, located in your Applications folder.
  2. Create a new Workflow and drag the “Run Shell Script” action into your workspace.
  3. Type the following into the text box: /Applications/Unity/Unity.app/Contents/MacOS/Unity
    Note that if you installed Unity to a different location, you will need to edit the text to match. After this step, your view should look like this:
  4. Go to File -> Save As and choose type Application. Choose a name and save to a location on your computer. This step should look like:
  5. Drag this newly created .app into your dock and click away! You should be able to open multiple Unity instances. Note that on my machine, the LaunchUnity application was not quitting itself properly so you may have to quit the LaunchUnity app before clicking on it to launch your second instance.

See updated comments for two alternative ways (using Terminal) to achieve this result.


Apple blesses the use of Flash / Unity on iOS

Today Apple announced a change to the App Store developer terms of service (TOS) to officially approve the use of third party development environments when publishing to the App Store. This notably sensitive subject began stirring up serious worry back in June.

As noted by John of Daring Fireball on June 8th, Apple modified their terms of service to include a very worrying section. It stated:

“Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).”

After a massive uproar from the iPhone development community and game development community, Steve Jobs publicly responded to an email by stating:

“We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.”

At that time, knowing Apple’s stance on the subject, thousands of small (and large) businesses were in major jeopardy, having put trust in Apple’s development platform before the proverbial rug was pulled out from under them. Users of Unity3D, a cross-platform game development engine, expressed outrage, compiling a list of top App Store games and apps that violate section 3.3.1 of Apple’s TOS, attempting to show what a huge mistake it would be to ban such a lauded tool. The futures of developers using tools such as Unity3D (MONO), MonoTouch (MONO), Corona SDK (LUA), Flash (ActionScript), MIT’s Scratch (Scratch), and GameSalad (?) were ‘uncertain’ at best.

On September 9th (today) Apple backpedaled and released a press release basically amounting to ‘Whoops! We’re sorry!’ and dropping the whole argument regarding compatibility layers. Apple might not realize the impact of this decision, thinking this is a minor concession to make some users happy, but it is my feeling that this choice has extended the viability of the iOS platform by a massive amount.  Users aren’t quite leaving Apple in droves to move to Android as some have been predicting. I bet Adobe is glad they didn’t cut their iOS packager from CS5!


[B.U.G.] Unity Day – Great Success

Unity Day just came to a close and it was a great success! We had, by my count, about 115 game developers, interactive media gurus, and Unity aficionados visit and network with the community.

Tom Higgins did a wonderful job educating, informing, and entertaining the crowd during his presentation. Thanks to Tom for flying out!

I’ll be adding more to this post over the next few days, with a writeup, more videos, and more content to come! Stay tuned for updates.

Pictures (credit to Elliott Mitchell, Alex Schwartz) Tom and Mani’s to come!

Community Showoff Videos – Sorry to all that presented or spoke but were not captured on video (credit to Mani of InfiniteUnity3d)

Event Videos – Huge thanks to Richard Brown for taping the event! (Credit to a_random_bloke)

Community discussion:

Thanks to everyone for coming out :) Also a huge thanks to our sponsors Demiurge Studios, Vermont Digital Artists, Great Eastern Technology and Northeastern University for making this event possible.


iPhone game to iPad – User interface considerations

I recently began porting my iPhone game SpringFling to iPad. The most time consuming part so far has been working with the art assets to make them work on the new screen size. I had stupidly designed most of the UI for the game at native resolution (480 x 320 px) which forces me to now re-do much of the art at 1024×768. Instead of just re-creating the exact menus at a higher resolution, I’m taking this chance to re-design certain areas of the menus.

I’ve noticed an issue with some iPad games that have been ported from the iPhone version. It seems the developer, in an attempt to reuse the same art assets, keeps HUD and UI elements the same size but ends up with huge areas of empty space and useless padding. Contexts with very little info end up taking the whole screen, making the overall composition feel lonely and awkward, like sparsely placed townspeople in a model train set.

By forcing myself to re-design certain areas, it will (hopefully) help ensure a smooth and appropriate user experience on the iPad.

Here is my progress so far:

And no, I haven’t gotten around to fixing the in-game HUD imagery yet. I’ll get to it soon, nagging Nancy.


[B.U.G.] Boston Unity Group – Unity Day!

I’m excited to announce the start of a new bi-monthly game developer meetup in the Boston-area. Elliott Mitchell and I are kicking off a group catered specifically for Unity developers called B.U.G. (Boston Unity Group).

Boston has an amazingly vibrant developer community, many of which have recently gotten involved with this relatively new game engine technology. We aim to bring these developers together to share experience, tips, and war stories as well as provide a venue to learn about the tool and how it can be used to create better interactive experiences.

You may be thinking:

What is Unity?
Unity is a multiplatform 3d game engine where the developer experience and ease of use are paramount. Similar in some ways to Flash, Unity is flexible and can be used in many different ways, from gaming applications to different types of 2d or 3d interactive media. Unity’s deployment pipeline allows users to code once and deploy to multiple targets such as desktop (web, PC, Mac) , mobile (iPhone, iPad), and console (Wii). With support for Android, Xbox360, and PS3 slated for release in the near future, Unity is leading the way in advanced engine technology for anyone from the hobbyist level to the AAA developer. It’s also very affordable and licensed on a per-seat basis when developing for desktop and mobile platforms.

When is the first meeting?
The first meeting of the Unity User Group will be held on June 12th and will be an extra special kick off event. Tom Higgins, community manager at Unity Technologies, will be speaking and holding an all-day workshop dubbed ‘Unity Day’. You can sign up for this *free* event using the signup link below.

Do I need to be a Unity expert to attend the meetings?
No way! Our first meeting will include an introductory workshop intended to teach the ins and outs of Unity to those with medium to low domain knowledge. Bring your laptop!

Check out the event poster below for more info or jump straight to the signup page!

Register for Boston Unity Group presents: Unity Day in Boston, MA  on Eventbrite

Sign me up!

Register for Boston Unity Group presents: Unity Day in Boston, MA  on Eventbrite


iPad game LineBloom created at DinoJAM

This past Saturday and Sunday I had the fortune of attending the second ever DinoJAM. This event was co-hosted by Emily Daniels and Darren Torpey at the DINO/Sprout space in Davis Square. Right after wrapping up at 3d Stimulus Day, made my way up to Somerville to make some games.

This is what I came up with (made in Unity):

It definitely translates well to the iPad touch screen. Just draw lines and they appear. It feels pretty fluid, but the low framerate video capture doesn’t convey that very well.

Thanks to Lawrence Lee for the epic music – Berkeley musicians make some good stuff quick! Props to the game jam musicians out there.

Congrats to the other attendees for making some seriously cool stuff. Great games/projects all around , and thanks for live-tweeting (@demiurgestudios @acosmos @jdemond @emdaniels @darrentorpey @davidludwig @boodooperson)


3d Stimulus Day

I recently presented a talk at the second annual 3D Stimulus Day entitled “Problem Solving: A day in the life of a Technical Artist”. The session went very well and I received some great Q&A at the end. Thanks to Heidi and Brad for setting up the event, Eric Chadwick for editing and suggestions, and to the other presenters for making it a great day. Also thanks to Eric for working with me to rig the First Act guitar give-away. Kidding!