I attended Unity’s Conference, Unite, in Austin this year. There are a lot of interesting improvements coming down the pipeline but nothing ground shaking. I think the biggest announcement was for artists: direct integration with Autodesk’s Maya and Max. Other things I’m looking forward to are:
the integration of TextMesh Pro
the new Asset Bundle system
the new Entity framework
the 2D Tile system
The main focus of the show seemed to be film, but I think most Unity users are not that excited about those features. It’s a completely different audience, and one Unity is still trying to capture. The interview with Neill Blomkamp, the writer and director of Distrik 9, during the keynote was exciting and important feeling but at the end I felt underwhelmed by the interview. It didn’t come across as a strong endorsement of Unity specifically. It felt more like rough vision centered on how real time movie making might be important to up and coming indie film makers. The short film also was kind of confusing to me because the story didn’t fit with what I remember from the original Adam movie. The original short implied that their crimes didn’t matter, hence the screens on the chest going blank, but Blomkamp’s follow up seemed to emphasize their crimes but didn’t give you a strong sense of how the characters felts about the crimes, good or bad.
While the Unity party was high caliber and fun as always, I didn’t really meet a lot of new people. I’m not sure if that was because of the large size or because I just know so many people now that they absorbed most of my time and energy. But, it was great to see some folks I hadn’t seen in a while and catch up.
Here’s a small tech demo I’ve been working on. It’s the application of the Voronoi Algorithm to a map’s political boundaries as two players place bases or cities. It was written in Unity3D and essentially the system continuously loops over each cube and determines which of the existing bases (or mouse) is closest. One quirk, is there is a limit to how far away a cube can be or it will simply remain neutral. I have several different ideas about how to apply this to a game but I’m still searching for a theme that fits the mechanic very well.
Here are my brainstorming notes (on right) and pitch (on left):
Essentially I wanted to make a QWOP style game about moving blood through the heart to the brain. I was thinking that if you didn’t do it well enough the brain would loose oxygen and then the letters you need to press would change. Sadly, no one wanted to join my team.
Futile is a framework that allows you to control rendering within Unity programmatically. This is a boon to anyone interested in 2D games and finds, like myself, that Unity impedes 2D game development.
Import the Futile.unitypackage into you Unity project, Assets->Import Package->Custom Package…
Create an Empty GameObject and call it Futile Camera, GameObject->Create Empty
Find the Futile script in the Project Pane and drag it to the Futile Camera object you just created.
Make or find a fun and silly image, I like this one: OMG IT SPINS
Now put it in you Unity project under the Asset folder and call it OMG.
Click on the image and set the Texture Type to Advance and then the Non Power of 2 to None.
Create a new Script file and name it FunWithFutile.cs and drag it to the Futile Camera object.
Now copy the code below into you script file.
public class FunWithFutile : MonoBehaviour
// Use this for initialization
FutileParams futileParams =
new FutileParams(true, true, true, true);
1024, 1, 1, "");
futileParams.origin = new Vector2(
FSprite fSprite = new FSprite("OMG");
// Update is called once per frame
I was working with some code in a book today and could not figure out why a variable was giving me problems.
Unknown idenifier: ‘mesh’. (BCE0005)
I was using it, and the book wasn’t. They didn’t declare the variable in the example unlike ALL the other ones! That’s why it is unknown, it IS unknown. The sample code that came with the book compiled because it doesn’t have the #pragma strict.
I didn’t finish. I just didn’t have my weekend clear. You really need a clear weekend to finish Ludum Dare. The tech change in the middle didn’t help.
My main take away: Unity slowed me down. I’m too much of a programmer. When a game engine gets in the way, I can see all the different ways I would code myself out of the problem, but I can’t see any solutions in the engine’s context. Code is a powerful too, and I’m good at using it. Game engine’s are alien worlds with bizarre rules and un-explainable behavior.
So, I’m going to stop using game engines (or frameworks etc.) I’ll use non-game libraries and leave all the game programming to myself. Specifically, something like SDL, SFML or even XNA are good for me, but not stuff like Torque 2D or Unity. I think XNA is “library” enough not to be considered a game engine. It’s more like a toolbox. Oh, I think the caveat here is I want to make 2D games, not 3D.
I think there is a bigger principal at work here: KISS = Keep It Simple Stupid Game Engine’s are complicated systems built by lots of programmers. They have multitudes of audiences with different needs. This all makes them hard to understand with lots of bells and whistles. In order to accommodate all these different requirements, some feature are overly complex with lots of assumptions. Those assumptions require rigidness to keep you out of the weeds that aren’t handle so well because of those assumptions. So at the end of a Ludum Dare weekend, you look back and see all the time lost figuring the game engine’s nuances and gotrchas. Then you pine for a chance to go back in time and just pounded out the code you needed.
My Pac Man mechanic isn’t exactly fun, but it too late in the contest now to change 🙁 I’m using momentum or forces to move the player, which at least one interesting difference over the classic game. This make moving around a little less straight forward, and might have some emergent strategies, we’ll see.