BUG 5: Component-based programming and Unity
Details
Unity's component system allows a completely different approach to that of traditional object-oriented design.
There are advantages to separating functionality out into individual components that act largely independently of one another. New types of object can be created simply by combining the features they need without the necessity of modifying an existing code base. Code exists in smaller, self-contained, reusable chunks, rather than the inflexible, complex objects of object-oriented programming. This means that it's much easier to make changes to a game.
Arguably, to not embrace this approach works against the Unity Editor, but it can seem alien to those coming from a more traditional, object-oriented background.
In this session we will look at two examples of component-based systems to illustrate the merits of this way of thinking and explore what is 'best practice' when making a game in Unity.
Danny Goodayle: PlayMaker demo
It's no coincidence that PlayMaker (http://hutonggames.com/index.html)'s tagline is "Unlock the power of Unity". This component-based, visual scripting tool frees you from the need to have a coder present and from having to know the techniques commonly used in games. It comes with hundreds of built-in modular actions which can be combined to get the desired behaviour for any type of game. As a consequence, anyone can rapidly prototype their ideas and make a game with ease.
Danny will show us how, by making Flappy Bird using only PlayMaker and no additional code.
Biography:
I'm the co-founder of Just a Pixel (http://www.justapixel.co.uk/). We are currently working on 'Light' which is going to be showing at Rezzed (http://www.egxrezzed.net/) this year with Team 17. I've been working with Unity since 2011 after realising what a powerful tool it could become.
Andy Milsom: A component-driven approach to developing a reusable and versatile code library
Soon to be released on the Unity Asset Store, Core.Lib is about developing reusable, maintainable code. It uses the component-driven approach of the Unity Editor as a platform to break a more complicated task into smaller component tasks that can be quickly configured together and manipulated to suit your needs.
Core.Lib is not designed as an all-in-one package like many other component systems. Rather, it is a large library of Unity components designed to work on their own or in conjunction with other scripts to create complex behaviours effortlessly. It can be expanded upon using minimal coding to add bespoke behaviours to your game.
Biography:
Formerly I was Technical Director at Landslide Studios (http://landslidestudios.com/) until its recent closure. I am now a contractor specialising in Unity3D which I have been using since 2010. I am now designing and developing a new code base from the ground up using the knowledge and insights gained over the past few years, starting with _Core.Lib.
