Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gamedev, where to start with Unity3D

Gamedev, where to start with Unity3D

In this talk, Tiago Martins talks about how to start with Unity3D

Sharednode

May 27, 2016
Tweet

More Decks by Sharednode

Other Decks in Programming

Transcript

  1. About me - Software developer at Scott Logic - Video

    games enthusiast - Web developer Github: https://github.com/TiagoJSM Linkedin: https://www.linkedin.com/in/tiago-martins-19712568
  2. What to expect - Some ideas about the current state

    of the game development industry - Pros and cons of being a game developer - What makes a team of game developers - The technologies around game development industry - Unity3D introduction and basics about the engine
  3. Unfortunatelly a small business in our country Why? Isn’t it

    profitable? Lack of knowledge by developers? Lack of interest by the people? Lack of project ideas?
  4. More a combination of: - Lack of investment - Being

    a topic that’s still a “taboo” between older crowds
  5. The Witcher 3 cost aproximatelly 81 million USD to develop

    For a period of 3.5 years By a team of 240 in-house staff and 1500 people all around the world Sold 6 million copies in 6 weeks The company made a net profit of aproximatelly 62.5 million USD in the financial period
  6. Indie games cost much less, and don’t require so many

    people to develop them, and usually don’t need to be technical juggernauts Sometimes a simple and fun idea can go a long way… like Minecraft!
  7. So it seems to be a market for all types

    and sizes, are there any reasons not give it a go?
  8. Sometimes games don’t produce enough revenue and companies close Just

    this year Lionhed Studios and Evolution Studios closed, two major studios from Microsoft and Sony
  9. Criticism is difficult to accept and may spread negativity among

    developers Battlefield 1 is the most liked trailer on Youtube and Call of Duty: Infinite Warfare is the most disliked one, due to a lot of conflict between the fanbases
  10. What types of jobs can be found in the game

    industry? - Programmers - Animators - Artists - Sound producers - Management - Level designers - Testers - UX designers - Writers - And many more, depending on the company, there’s room for all taste!
  11. Where to start as a programmer? There are a variety

    of ways to start learning about game development as a software developer The first question you should ask yourself is “Do I want to create an engine or a game?”
  12. When the answer is “create an engine” An engine is

    a software framework that handles the core mechanisms and joins all the core libraries allowing for the game logic to “slip” in easily in a predictable and well defined flow Usually engine programmers deal more with low level software architectures whose code handles graphics, physics, networking, sound and input as the main pillars of the engine.
  13. When the answer is “create a game” Developers that prefer

    to spend more time creating a game, instead of having to deal with low level problems, use an already established engine created by third parties The most well known engines that can be acquired from third parties are: - Unreal Engine - Unity3D - Cryengine
  14. Then what else can we do with them? With introduction

    of Virtual Reality the creation of interactive applications that use 3D graphics has grown significantly Like IKEA’s virtual reality kitchen experience and production of movies
  15. Tell me some cool things about it - Unity3D is

    possibly the most portable game engine in the market, runs from a huge array of devices, from the smallest mobile devices to the most powerful consoles and computers - Allows to use C#, UnityScript (very similar to JavaScript) and C++ for native plugins - Has different business models, one of them is the free version - Supports the newest technologies, like VR and always tries to keep itself up to date - Huge friendly community
  16. And now the not so cool things - Can be

    difficult to optimize - Some undocument libraries that have to be dug out by the community - Lack of some more fundamental tools used in AAA production
  17. Unity’s inversion of control In Unity the entry point is

    not your code, the way of interacting with Unity is by building components, Components inherit MonoBehaviour and define methods with reserved signatures that are called by the engine The common practice in Unity is to use Component composition in Game Objects, having simple components with less functionality allowing to divide the different logical concerns making components reusable in different Game Objects without the need to inherit functionality from other Components that are not needed
  18. Most used methods Update - this method is called every

    frame and as the name suggests it’s used to update the component FixedUpdate - commonly confused with Update this method is called every fixed framerate frame, it’s a callback to deal with physics data Start - called when a script is enabled before any update Awake - called when the component instance is loaded, always before Start
  19. Place objects on the screen In Unity’s editor we can

    simply drag and drop assets from the project folders to the scene view Not all assets allow this, since they don’t have a proper representation as a scene object While others need to be dragged on top of other objects, like shaders for example
  20. Great! Now I want to make a character, a bit

    like Mario For this we can use Unity’s physics, we will attach a rigid body to our character, so we can make him move when we press some buttons and let him fall when not touching any surface
  21. He just fell of the platform, why? Back there I

    talked about Unity’s physics system, is this a game about a guy that crosses walls and scares people? No It’s true that we added a rigid body to our character, but that is not enough, we need to tell what our scene which objects the character should collide and how For that we need colliders!
  22. Yey! Now he doesn’t fall into the void! But it’s

    still pretty boring, because our character can’t do anything else Then let’s make him move when we press some buttons For this we will need to use Unity’s input system and apply forces to our character
  23. But now there’s the problem that we can’t see him

    well This happens because when we move the character the camera doesn’t follow him So let’s just do like all those big internet companies and follow his life everywhere For this we will need to move the camera when the character moves
  24. How about some interaction? Is it possible? Yes There’s multiple

    ways to interact with other objects, it all depends of what you want to do Let’s try to create a proximity sensor, when the character gets close to a place something else happens Colliders can help us on that
  25. I’m one of those guys that really likes music There’s

    also support for audio in Unity Let’s change our scene a bit so when the character get’s close to the sensor we get some music