Java development is a key skill that the gaming industry needs today. Although some people argue that the popularity of C++ in game development is very well entrenched and Java cannot displace it in the near future, there is no way Java development will face a downswing. It is a parallel programming skill that is set to grow with the expected explosion of the gaming industry all over the world, with its 2017 market reaching well over $100 billion.
Simpliv is the ultimate source for anyone looking to make a career in game development. Simpliv has just all the information that you need to get trained in game development and be job-ready. We have designed to also help you accelerate your career prospects by expanding your network, which makes it easier for you to land a job in game development.
It goes without saying that if there is one field that has been growing exponentially over the past few years, it is mobile gaming. This huge spike in demand for rmbile gaming has pushed the demand for mobile game developers. Want to become one? Let us familiarize you with what it takes:
You need to learn the technique for creating games on mobile and video that can be fun, exciting and, if we may say so, addictive! You need to have knowledge of how the Android/IOS platforms work because a game app is built on these.
Let us now take you to the questions and answers session that makes it easier for you to overcome the hurdle of a job interview for the position of a age developer:
1st Round: Game Development Basic interview questions and answers:
Q1) Explain the basic structure for developing a game
Ans: The basic structure for developing a mobile game is the following:
a) The interface of the game
b) Its implementation
c) The game’s source code
Q2) Describe some of the common problems encountered while developing a game with Java
Ans: Some of the common problems with developing a game with Java include:
a) Garbage Collector: The problem arises with the non-deterministic memory management
b) Absence of a set of third party libraries: Although Java has a huge built-in class library; they are not related to games, which makes them unusable for games
c) An unsupported game Console: Most popular game consoles do not support Java
d) The developer community is a small one: The one issue with Java is that the community is very small compared to C++ , which is what most programmers use for developing games. The help you can expect from the community of programmers is small, to say the least.
Q3) Which models are used to make money in gaming business?
Ans: These models are used to make money in gaming business:
a) Charge Per Copy
b) Monthly Subscription
f) Provider billing
h) Code Licensing
Q4) Why is C++ the more preferred language for game development?
Ans: a) Developers find that C++ offers them greater control than C and Java
b) The SDKs for various platforms are C++ centric
c) Because of being an early starter, C++ language has gained greater popularity among game developers
Q5) How do you describe “Pixel Art”?
Ans: It is a digital art created by drawing individual pixels in an image instead of rendering a 3D model.
Q6) What is “Lag”?
Ans: The lag is the gap between the action of players and the response time of the server.
Q7) Are there ways by which to reduce the game lag?
Ans: You have to either lower the performance setting for the game or upgrade certain parts on your computer.
Q8) Explain Cloud gaming?
Ans: Cloud gaming is a system in which the game gets hosted on a game server in a data center instead of being done locally. This allows the user to only run a client locally which forwards game controller actions upstream to the remote game server.
Q9) which are some of the HTML5 framework game engines?
Ans: a) Construct 2
d) Phaser etc.
Q10) How suited are Bitbucket/Github for game development?
Ans: Being a code hosting service and not a file sharing service, Bitbucket is compatible for small size game development. If you are required to handle very large files or frequently change binary files, Github is not appropriate, as it can’t display differences on binaries.
Q11) Explain PunkBuster and the way in which it works
Ans: ‘PunkBuster’ is a computer program designed to prevent and detect the software for cheating in online games. It works in the following manner: it scans the memory contents of the local machine and prevents other software’s from carrying out malfunctions. Most present-day games use PunkBuster to prevent online hackers or cheaters.
Q12) What does the animation thread class hold In Java game development?
Ans: The animation thread class is used for updating the DrawablePanel for game logic and to force a redraw of the panel. It holds a reference to the Drawable Panel.
Q13) Which Android tools are used for developing games?
Ans: These are some of the tools used for developing games:
a) Eclispse: Integrated Development Environment (IDE)
b) ADT- Android’s Eclipse Plugin
c) Android SDK-includes ADB
d) Hudson- Automatic build tool
Q14) How do you use load texture method to load the image in Android?
Ans: The load texture method takes in an image pointer and then loads the image into a stream, which is then loaded as a texture into OpenGL.
Q15) Explain Vertex Buffer Object
Ans: Vertex Buffer Object is an OpenGL feature. It is a method by which vertex data is uploaded to the video device for non-immediate mode rendering.
Q16) Name the steps used to create a Vertex Buffer Object
Ans: A Vertex Buffer Object can be created in three simple steps:
a) Generate a new buffer object with glGenBuffers()
b) Bind the buffer object with glBindBuffer ()
c) Copy the vertex data to the buffer object
Q17) Describe the advantage and disadvantage of using packed buffers?
Packed buffers can be used to make the GPU more efficient in rendering, as it holds all the information needed to render within the same block of memory.
With a packed buffer updating is more difficult and slower if dynamic data is being used.
Q18) Which are the methods used for storage in android?
Ans: These are the storage methods used in android:
a) Shared Preferences: Stores private primitive data in key value pairs
b) Internal Storage: Stores private data on device memory
c) External Storage: Stores public data on shared external storage
d) Network Connection: With Network Connection you store data on the web in your own network server
e) SQLite Databases: In private database, SQLite Database stores structured data
Q19) What do you understand by a game loop?
Ans: The game loop is the central component for any game development. Loop is used for making the required updates and for checking the changes in the game. Graphics, movement, controls are some of the components that rely on the game loop.
Q20) Describe the FPS?
Ans: FPS stands for frames per second. It tells how much information is used to store and display motion video. With each frame being a still image, the illusion of motion is created by displaying these frames in quick succession.
Q21) Describe “onsurfacecreated” in android game development
Ans: Every time the drawing surface is created, “OnsurfaceCreated” is called. The application starting or becoming active after being sent to the background or a change in the orientation are some of the situations in which “OnsurfaceCreated” is called. A context loss triggers all these events, as result of which every asset will be lost and have to be recreated. It is necessary to recreate all assets and application objects at this place.
Q22) When can an “onsurfacechange” occur?
Ans: The the “onsurfacechange” can occur when the screen size changes, which in turn can happen when the device orientation changes.
Q23) List some of the common errors done by programmer while programming
Ans: Some of the common errors carried out by programmer while programming include:
a) h) Misusing the && and l l Operators
b) Overstepping array boundaries
c) Extra Semicolons
d) Undeclared Variables
e) Uninitialized Variables
f) Setting a variable to an uninitialized value
g) Checking equality using single equal sign
h) Undeclared functions
Q24) Which gaming engines can be used for developing games?
Ans: These are some of the different gaming engines that can be used for developing games:
4) 6) Cocos2D-Android
5) jMonkey Engine
Q25) Describe the main features of AndEngine
Ans: These are some of the main features of AndEngine:
a) Android 1.6 Compatability
e) Network Multiplayer
Q26) What are Objects in Blender?
Ans: Blender is an open source 3D computer graphics software program with which visual effects, 3D games, animated movies, and software are developed.
To manipulate objects in Blender, when you push “space” tab it will open a menu bar. From here, select the object of whatever size you want as a sphere, cube, etc. After selecting an object, some of the activities you can carry out include add, delete, move, scale and rotating the objects.
Merging two objects into one in Blender, requires the following steps
- Select both objects in object mode
- Press Ctrl+J to join the object into one
- Enter edit mode and change it to face manipulation mode
- Press X to remove the surface or faces that will be joined with each other
- Switch back to the Vertex Manipulation mode
- You can join the objects by selecting the corresponding vertices from each object and using F to create a new face
- Press F to merge the two objects into a single one.
With Blender, you can also transform object using properties panel. This can be done for meeting very specific needs. This is how you edit the properties of your object:
- Go to properties panel
- Click the object icon
- You can also transform the object by changing its properties in the rotation, location and scale tables. This is the way to do it:
- To copy an object, being in Object mode, you will have to:
- Right click on the object that you want to copy
- Press shift+D to duplicate it first
- Right click on object to get out of grab mode without changing its location
- After that press M to bring up the layer move popup menu
- Click the button for the layer that you want to move.
2nd Round: Game Development Technical Interview Questions and answers:
Q1. Why is C++ still the preferred language for Game Development?
Ans: There are various reasons for which C++ is the most preferred language for game development, although C still continues to be used. These are some of them:
Having been around for years, it has gained penetration among programmers. Many programmers have a high level of comfort with it.
The SDKs for various platforms are very C++ centric. Having to do it another language inevitably is tedious to say the least, involving as it does having to write wrappers and cross-compiling down to VMs and the like.
Control is one of the most important reasons for the popularity of this language for web development. Game developers like to know everything that is going on in their code, something that C++ gives abundantly. Related languages like C# and Java reduce control. This may not be bad in itself, but many game coders don't want it that way.
Q2. What is the average job length in the game industry?
Ans: There is no one standard answer for this question. It depends on product cycles. The game developing industry hires everyone from temporary staff to senior executives. So, it depends on which rung of the ladder you are in
Q3. Are there any good web frameworks for asynchronous multiplayer games?
Ans: My pick would be Service Stack for services, XML, JSON etc.
- For how many years have you been coding in Java as a game developer?
- Explain some of the products you developed using Java. How were they received by your company, your clients if you did it for them, and by the market?
- What are the challenges you faced while developing these games and how did you overcome them?
- How well do you get along with teams? Have you faced problems with team members when working on Java programs? What was the problem and how did you face it?
- For how many more years do you intend working as a Java programmer for game development?
The career of a Java programmer for game development is a promising one. It has abundant opportunities for growth since the industry is global, growing and hiring. It makes sense to be prepared for the technical and other rounds of an interview for Java programmer. This write-up is based on real life experiences in facing Java interviews. We hope you find it useful!