Archive for the ‘Tips & Tricks’ Category

New Character Animation / 3rd Person Shooter Demo

At Unite ‘09 Paulius Liekis and I did a presentation on Character Animation Tips & Tricks. We discussed a range of animation techniques such as realistic foot placement, procedural aiming and head turning, and how to smoothly turn procedural adjustments on and off while reloading. We had prepared a tech demo demonstrating these techniques, and we promised to make the project folder available online shortly after the conference.

Well, the videos from Unite ‘09 ended up not coming out quite as soon as we had originally planned, but the good thing is that we’ve been able to improve the demo in the meantime. I’ve been spending some Fridays improving it from a pure tech demo to a small game with actual gameplay. Shoot the hovering orb repeatedly to make it break and go into a frenzy before finally exploding! Give it a go (click the image to go to the live demo):

Can you take down the Orb at the insane difficulty level?

Can you take down the Orb at the insane difficulty level?

Read the rest of this entry »

Getting Started With Unity

There’s a lot to learn about Unity, much of which can be accessed through our support page, but it can be a little daunting to know where to start.

I personally think that the two PDFs that come with Unity are a great place to start. They are: 1 – GUI Essentials.pdf and 2 – Scripting Tutorial.pdf and they can be found in the Tutorial folder in your Unity installation folder on your hard drive.

Community member tonyd’s Newbie guide to Unity Javascript is a great introduction to programming for novice programmers.

Experience programmers new to Unity will definitely want to check out our MonoBehaviour scripting reference which is a one stop cheat sheet for the base class every script derives from.

We also provide some introductory video documentation but there have been some really high quality videos popping up on the internet that I wanted to showcase.

3D_Buzz_logo

Jason Busby and Zach Parrish of 3D Buzz just released a series of 29 videos detailing many aspects of Unity game creation. This series is a C# remake of the UnityScript based Unity Jump Start series created by Casey Jones.

infinite_ammo_logo

Infinite Ammo’s Alec Holowka of Paper Moon and Aquaria fame has recently been creating a series of Infinite Ammo Unity tutorials as well. I really like Alec’s way of explaining not only how to use Unity but best practices in game programming. The picture in picture effect is also nice and adds a lot more personality to the whole viewing experience.

learn_unity_3d

Will Goldstone’s video tutorials have also been a mainstay in the community and were the foundation for his book. They do a great job of covering the ins and outs of the terrain tool and give a good overview of the particle editor and some simple gameplay examples.

Character Customization & AssetBundles

A while ago, I was talking to a customer who was trying to figure out how to best make a customizable character in their game. After explaining how I’d do it, I figured it would make good material for a more extensive demo project. Bas Smit (who wrote it) and myself just gave a presentation on the project during the Unite conference.

Let’s start with a demo: (click it to start)

Read the rest of this entry »

Unity iPhone App Store Submissions – Problem Solved

Recently some Unity customers who have been very anxious to get their game approved by Apple for listing in the app store have received a disappointing rejection notice by Apple because they use something that was not approved by the Apple rules.
As it turns out, the Unity iPhone application was accessing those non-public functions through the Mono runtime which is a third party piece of code we use. Therefore, some of our customers had the bad experience of seeing their application be rejected.
We have been working on hard on this issue as it stalls and affects our iPhone developer customers. We were able to correct the issue just 2 days after we first heard about it and delivered that fix to those that had reported the problem. Many of them have already resubmitted their application to Apple.
We will be releasing this new version, Unity iPhone 1.5.1, sometime next week. In the meantime, you have a need or concern, please contact support@unity3d.com and request an iPhone build with this issue fixed.
Note that Unity games already on the app store are not affected by this.

Recently, some Unity customers who have been very anxious to get their iPhone game approved by Apple, have received a rejection notice because they use something that was no longer approved by the Apple rules.

We have been working hard on this issue as it stalls and affects our iPhone developer customers. We were able to correct the issue 2 days after we first heard about it and delivered that fix to those who had reported the problem. Many of them have been already resubmitted their application to Apple. The first Unity game to completely pass the App Store Submission Process is “Star Wars: Trench Run”.

We will be releasing this new version, Unity iPhone 1.5.1, publicly on our website sometime next week. In the meantime, if you have an urgent need or concern, please contact oleg@unity3d.com and request an iPhone build with this issue fixed.

Note that Unity games already on the app store are not affected by this.

For those who are interested here are the technical details:

The reason why Unity authored games (amongst other applications) have been rejected is that Apple recently has begun using special tools to check against usage of private APIs. The main reason for restricting private API usage is to avoid problems with applications breaking when Apple releases new versions of the iPhone OS. Unity iPhone 1.5.0 is accessing 2 private functions _NSGetEnviron and exc_server from the .NET runtime Mono.
There has been a lot of confusion about this topic recently. So to be 100% clear, there is zero relation between those 2 private functions and harvesting user information. Harvesting of user information can be done with a public API. The 2 private functions used in Unity, can not be used for this purpose. Neither do we know of any Unity games that performed any kind of harvesting of user information like phone numbers.
So why did we access those 2 private functions? First of all, Mono runtime was ported from OS X where those functions are very commonly used. Actually they have been used for years now. And as those functions didn’t give us any problems during Unity port to the iPhone, we simply continued to use them.

What do those functions actually do?

_NSGetEnviron is used by the Mono runtime to provide an implementation of the .NET core API method: Environment.GetEnvironmentVariable(). On UNIX environment variables are often used to pass arguments to applications. Due to how the function is exposed, it does not let developers do any data collection.

exc_server is used by the Mono runtime to provide graceful NULL reference exception handling. This is useful for developers, when they dereference a null pointer, we can avoid a crash and instead throw an exception and continue the game.

While those functions are useful for debugging purposes, Apple now rejects Apps that use them.

In order for us to solve this problem we simply removed any calls to _NSGetEnviron and exc_server. Update Unity iPhone 1.5.1 was sent out to developers days ago. Most of them have already resubmitted their Apps to the AppStore with the functions removed. Unity iPhone 1.5.1 will go live this week. The first Unity game to completely pass the App Store Submission Process is “Star Wars: Trench Run”.

Unity Game Development Essentials

IMG_0091

By now many folks are aware of the fact that Will Goldstone has written a book about Unity, it’s called Unity Game Development Essentials and it’s being published by Packt Publishing. Early on Will and his publisher graciously shared PDF copies with folks, including everyone on the Unity Community Forums. While it was extremely exciting to know that a book was in the works, then available in electronic form, I have to admit that the best moment of all came today when a brown box was delivered to my desk for me to open. I’m the guy that handles incoming mail and packages sent to the San Francisco office so it wasn’t unusual for me to have a “present” to open today. When I cracked open the box I found a nice surprise inside, the three copies of Will’s book I’d long ago ordered had finally arrived!

So for those that don’t know about it, consider this your heads up to check it out! It’s a book geared towards the beginner end of the spectrum and from what I’ve read so far (a fair chunk of the PDF already) he did an excellent job of laying things out for those of you just getting into Unity. If you’re interested give it a look on either the Packt Publishing site or over on Amazon.com:

Unity Game Development Essentials (Packt Publishing)
Unity Game Development Essentials (Amazon.com)

Kudos, and a huge thanks, to Will Goldstone for the effort, I know he put a lot of blood, sweat and tears into this book and it shows. Well done Will!

Building Buzz for Your Game

We see new games being made with Unity at an ever increasing rate. A lot of them get picked up by the gaming media thanks to the sprawling creativity of our users – others don’t get noticed as much as they deserve.

Unity makes game development accessible to a broad audience, but creating awesome games is not always enough in itself. Luckily, there’s lots of articles and blog posts about how to get games noticed. We have linked to some of the best in this blog post.

One important point raised in several of the articles is that building buzz and making sure your game gets noticed is something you should start doing long before your game is released. So if you’re thinking “Well before I think of spreading awareness I first need to actually make my game LOL”, well, then you’re probably mistaken.

Go on, read on!

Read the rest of this entry »

“Touch Phases” Example iPhone Project

I decided to clean up the Touch Phases project I had from a while back and post it to our iPhone example projects. You can now record and play back touch input in either the editor or on the device. Even before adding recording/playback, I used this project as a debugging tool when building the Penelope demo/tutorial. I hope that it will help as you develop your own iPhone apps. Here’s a short video of the recording/playback support:

Snow Leopard’s 64-bit Safari and Unity

Update: We have released Unity 2.6.1 on December 2nd this year, which includes an update to the Mac Unity Web Plugin, which is fully compatible with 64-bit Safari on OS X 10.6 Snow Leopard.

So, most of you have probably heard the news: Apple is going to release Mac OS X 10.6 “Snow Leopard” this Friday. This release will give Mac users plenty of new feature goodness and new technologies to play with, and brings a lot of changes under the hood. Unfortunately, I must inform you that one of these changes may cause some grief for Unity users, at least for the time being:

Read the rest of this entry »

Just Looking Around

Just making characters in your game look around can bring them much more to life as well as express important information to the user. Here we’ll discuss a few use cases and present a script that makes it simple to implement in your game.

First a tech demo video to set the context:

Read the rest of this entry »

Focus: The Locomotion System

The Locomotion System for Unity has previously been briefly mentioned on this blog, but this post will go more in depth with what exactly it can do to bring more life to your animated characters.

The Locomotion System is all about making walking and running in games look better and more believable without requiring dozens of animations. The system automatically blends your keyframed or motion-captured walk and run cycles and then adjusts the movements of the bones in the legs to ensure that the feet step correctly on the ground. The Locomotion System is available for free when used in a Unity game.

Video Introduction

The best way to understand what the Locomotion System is all about is by watching a short introduction to it:
Read the rest of this entry »