As I'm now working for Unity Technologies attending one of our annual Unite conferences was a good opportunity for me to meet some of our users (i.e. game developers) as well as watching some sessions on how Unity is being used for developing games in the community.

Keynote and Unity highlights for 2013

Although I only had time to participate in the second day of the conference, I would like to mention that the Keynote from Day 1 of the conference is available at http://www.youtube.com/watch?v=QY-e2vdPdqE. If you're a Unity user, you have probably already heard that building iOS, Android, Blackberry and Windows Store games is now free, which I'm sure will "democratize game development" even further, and increase our user base to more than the current 1.8 million developers mentioned in the keynote. Approx. 15:30 into the video the highlights for Unity in 2013 is being described, which are:

  • Increased quality
  • Faster releases
  • More platforms

Working in our QA team, it's of course interesting to see quality being mentioned explicitly, but the other two bullets on faster releases and support for additional platforms (e.g. new consoles) also has a strong dependency on a working automation infrastructure. Automation is the key to being able to release faster as well as scaling out to new platforms, without risking to break the existing. The good news here is that I feel confident that we have the necessary automation in place at Unity, and I'm looking forward to see how this will evolve even further. A later blog post will contain some more in-depth technical information on our automation approaches.

Procedurally generating content in your Unity games

In this session two guys from the UK game studio Big Robot presented their game "Sir, you are being hunted" which in short is a first-person-shooter where you have time travelled to UK in a time where only robots exists, and your goal is to collect the necessary pieces to assemble the time-machine so you can get back, without being killed by one of the many robots that will do whatever they can to kill you. Both liked the graphics and gameplay.

IMG_0440

Based on their game, the point of this talk was to show their approach to procedurally generating the game, i.e. not using the built-in scene designer of Unity, but rather generate the scenes (for this game being islands) at run-time. From a software development point of view, it was interesting to see how  they used graph theory for building up the landscapes, e.g. first placing the villages on the island, then connecting them with roads after which the houses was then placed along the roads.

IMG_0441 IMG_0443

Next I also found it interesting to see how they perceived the game as a state machine (unfortunately didn’t get a good picture of that slide), which to me confirms that game development is like any other software development project, with same techniques and practices being applicable. Although I must admit the appearance is much nicer compared to the business application software I've previously worked with Smile

Some of the benefits by generating your game content procedurally, was:

  • Unique game experience, since every game is different from the others
  • By allowing user/player to modify parameters like e.g. number of villages, they can themselves customize the game. Fewer villages would in this case make the game harder, as there is fewer places to get e.g. weapons and food
  • Gets a more dynamic game flow
  • Easier to exclude elements, e.g. specific types of buildings or characters, if testing or user feedback indicates they doesn’t provide the expected game experience

 

And last but not least, it was of course good to hear them say “we wouldn't never have been able to develop a prototype for this game in such a short time without using Unity”

"Don't let the kids know they are learning"

Another session I attended was a presentation of an educational game Machineers. The game itself seems at first glance to be an advanced puzzle game, letting the player solve various logical challenges by assembling mechanical items, like motors, belts etc. to assemble machines. I'm not sure I will just accept the premise that this is "kids programming", but nevertheless the game looked fun and served an educational purpose in teaching the kids how to solve logical problems.

As always, this presentation included some more general concepts, like "game flow theory" (see e.g. http://en.wikipedia.org/wiki/Flow_(psychology)) which, on a probably very basic level, describes the gameplay progression as the player becomes more experienced/skilled in the game. The player should stay within the "flow channel", otherwise he or she will either give up or simply get bored, which in both cases most likely means quit playing the game.

IMG_0467

Another off-topic subject touched in this talk was how to make kids learn while having fun. I apologize the bad quality of this picture, but the point here is that your educational game should look like a real game. If in doubt, the educational game is on the left…

IMG_0464

A note here was to design the graphics of your educational game to target kids a few years older than your expected audience, as kids prefers to "aim higher" and certainly don't want to play a game which looks like it’s designed for a younger age group. And the kids should not be aware they are learning, while playing the game, which as a side-note is an interesting point in the currently ongoing Debate in Denmark on extending the school day in the elementary school, where I think it's important that we're not simply extending the current practices, but use the additional hours to explore new ways of teaching and learning (if the Danish parliament actually reaches an agreement on this).

My general impression of this Unite conference, is that it's like most other conferences I've been to, with a mix of domain specific (gaming, in this case) and technical talks. As said earlier, my impression is still that developing a game engine and games is like any other software development, and this conference didn't change my view on this. If you're a Unity user, this is, along with all our other communication channels, a good opportunity to meet other Unity users as well as talk directly with Unity employees.