Interview Questions
Total Page:16
File Type:pdf, Size:1020Kb
1 www.bitdegree.org INTRODUCTION The first step to master something is always to become an adept student of that subject. If you want to become a great musician, listen to great music first. If you want to write the next great novel, read all the great novels written before. If you want to develop the next great video game, play the greats that came before. It’s not enough to mindlessly play them, though. You have to play mindfully, trying to understand the different decisions developers made. Play the game and pay attention to the narrative structure of the game, how it’s put together. Become the student of the subject first. Then worry about the rest. This is the first step on how to become a game developer. 2 www.bitdegree.org Common Interview Questions Common Interview Questions 3 www.bitdegree.org 1 Are you part of any Communities? By becoming an active member of the video game community, you will gain a deeper understanding of what gamers, your future target audience, like and don’t like. What they enjoy and can’t stand. You will also meet people who aspire to become a game programmer too. Who knows, maybe you will team up someday and set up the next Ubisoft! Just like movie making, video game development is a team venture. There are numerous examples of outspoken fans who made good points publically being tapped to work on the game they loved directly. You may not get a job in game development directly, but it may get your foot in the door. 2 What Engine are you Working With? Unity Unreal Engine CryEngine Godot Engine HeroEngine Research the software that your potential employer might be using. Most positions require extensive knowledge of a singular engine versus minimal knowledge of all. 3 Are you Goal Oriented? Setting achievable but ambitious short-term goals which lead you towards your overall dream to make a game is the key to remaining motivated. Most industry experts are not looking for people that can make a game on their own. They’re looking for someone who can figure out how to master a small part of a chosen gaming engine and a particular part of the coding language they’ll be working with. 4 www.bitdegree.org 4 How Much Time do you spend on Learning? When people wait for circumstances to be just right, they almost always end up not doing anything or doing the same thing over and over again. Industry leaders are always looking for people who spend at least 2-3 hours each day on learning and improving their skills. 5 Game Development vs Game Design video game design refers to the actual artistic design of a video game. Game designers spend their time conceptualizing new aspects of their games. They work out what a game needs to include, how the game should react under certain conditions, and exactly what needs to be created to make the game as good as it can be. On the other hand, game developers – or game programmers – are the people who are responsible for writing the code to make a video game do what it’s supposed to. 6 What is a Design Document? For most people, a design document is a brief outline of a game, what it should look like, and what you need to do to build it. If you’ll need to work on a design document it’s essential to think about the following things: Skills Needed Languages Used Future Updates Game Mechanics 5 www.bitdegree.org 7 Leave Your Ego At the Door While you may even be the most talented game developer in the history of the world or have the greatest ideas nobody’s ever had, it doesn’t matter. Accept and learn to love and live by the principle that ideas aren’t worth anything; it’s all about how you execute them. Thousands of passionate people like you try to get into the gaming industry every year. The ones who work the hardest are usually the only ones who make it. It’s not unusual to have 70-hour work weeks. If you aren’t willing to sacrifice your nights and weekends to game development, a lot of people will and take your spot as the new hot game programmer. 8 What is Your Favorite Game? Now, this might seem like an easy and odd question to be asked. But keep in mind that your employer is probably looking for more than just the name of the game you play most. This is an opportunity for you to express why you like the game. The technical flaws or what it does great. Otherwise, it tells the interviewer you really aren’t thinking that much about games 9 Can threads be used to modify a Texture on runtime? No. Texture and Meshes are examples of elements stored in GPU memory. Sadly, Unity doesn’t allow other threads, besides the main one, to make modifications on these kinds of data. 6 www.bitdegree.org Advanced Interview Questions 7 www.bitdegree.org 10 ‘Vertex shader Vs. ‘Pixel shader’ The vertex shader is a script, and it runs for each vertex of the mesh. This allows developers to apply transformation matrixes to position different vertexes in the 3D space. On the other hand, a pixel shader is a script that runs for each pixel in a mesh’s triangle. Developers use this to control the final color that users will see on their device screens. 11 When can an ‘onsurfacechange’ occur? Onsurfacechange occurs when the screen size changes.. This can also happen when the device orientation is changed. It’s a very basic questions, but quite a common one. These types of questions are often lead into more complicated exercises where the command in question is used. 12 What is Vertex Buffer Object? The Vertex Buffer Object is a feature of OpenGL. It’s a method of uploading various vertex data to a video device for rendering (usually it has to be non-immediate rendering). 13 Should Vectors be Normalized to Move an Object? Yes. The process of normalization determines the vector unit length. Normalization is used when looking for accurate movement. For example, if you want to move with speed 20, multiplying speed * vector will net you 20 units per step. If the vector weren’t normalized, the action would be random, not 20 units. 8 www.bitdegree.org 14 Which of the following examples will run faster? 1. 1000 GameObjects, each with a MonoBehaviour implementing the Update callback. 2. One GameObject with one MonoBehaviour with an Array of 1000 classes, each implementing a custom Update() callback. The 2nd example is faster It all boils down to C# Reflection (which is quite a bit slower than just calling a function directly. The first example results in 1000 Reflection calls per frame. While the second example doesn’t use C# Reflections and uses direct access - hence being faster. 15 Interview Assignment Explain the issue with the code below and provide an alternative implementation that would correct the problem. The biggest problem with the code given is that you cannot modify the position from a transform using a direct approach. Positions are considered as a property, not a field. The correct solutions would be to replace the whole property. 9 www.bitdegree.org GENERAL TIPS A dizzying rise to the top of the gaming industry is a nice thing to dream about but let it stay there. Even if you are extremely talented and the only thing outstripping your talent is your work ethic, it will still take years for you to make it. You will face numerous rejections on your way but you can’t let them get you down. After all, you can’t win this game if you don’t play with full effort and focus. If you thought some games on the hardest difficulties were hard, wait until you try to earn the privilege of making them. Always remember to analyze, network, learn, and NEVER give up! Simple, right? 10 www.bitdegree.org.