Blog Archives

Inside The Game – Game Engine, Graphics Engine, and The Game

Hey Guys!!! First of all, I would like to thank you for providing me such wonderful views and interest in my blog, and I am really happy for you and my blog readers. Ooooops… Enough talking… Let’s get back to our wonderful and very interesting series Inside The Game. For those, who are not familiar with Inside The Game series, this series will provide the articles and tutorials related to mechanisms and architectures of the game. Also, in this series, you will learn to think like a game developer. Now, if you have not read the last part of this series, please click here to read it. I am summarizing the last part here for those who have not read. In the last part, we discussed the general structure of any game. Any game involves a lot of disciplines, which are not included in software development normally. Some of those disciplines are Artificial Intelligence, Computer Graphics, and so on.

This part, called as Inside The Game – Game Engine, Graphics Engine, and The Game, is sort of extension of the last part. In this part, we will compare most important components from developer perspective. So, let’s start the article now without delaying any more.

I don’t know, what I am going to read now?

As heading suggests, I really don’t know what I am going to read now. So let’s answer the question. We are going to know first about some basic concepts in a bit details used in any type of game development.

Graphics Engine

Graphics of the game is the first impression of any game. When any user gets any game, the most first thing he/she observes in the game is graphics. So, if the graphics are not much satisfactory then users stop playing the game. And after that it doesn’t matter to the user how good story is or how good musics are. So, in short, a game developer just loses everything he/she has made or thought just because of the graphics. Now, I am not saying here that you should only implement High Definition (HD) or 3-Dimensional (3D) graphics with advanced lighting effects, rather that I am trying to say here is that you should implement the graphics, which match your game theme, gameplay, and should be liked by the user mostly time. Hey hey hey!!!! I guess I have said a keyword here, Ummm…… Yeah! I remember!!! Gameplay… isn’t the word, we already know? No!!!! okaaay…. no problem. By the way, if you are wondering what is the image showing, well the image is showing the Open Graphics Library shortly OpenGL, which is a graphics engine.

Gameplay

If you don’t know what the gameplay is, then I will tell you little about it. Gameplay is the mode, when the game is running. So, at time of game running, what a game player sees, what he does, how he survives, how he completes levels and so on. These all things include in the gameplay. Many game developers make mistake of gameplay in terms of computer graphics. I didn’t understand, right? I know…. Game developers shift their focus on the graphics and effects, and they just forget about the gameplay. And in the result, what they get is ‘A very high definition 3D graphical game with low speed and low performance with very difficult gameplay’. If user can’t play the game, he is not going to see the graphics like a movie.

Have you got the point from both concepts? Let me summarize it a bit. If computer graphics are not good, then user is not going to buy or install the game, and if the gameplay is not good then user is not going to  play the game. So, developers not only focus on any one of them, rather developers should focus on both equally to make a balanced game.

Game Engine

Well! developer have to keep graphics and gameplay equal while coding, how is he going to achieve this? Answer is sort of simple as well sort of complex. Answer is the game engine. Game Engine, you can say, is a new concept we are learning here. Game engine is a system designed for the creation and development of video games. The leading game engines provide a software framework that developers use to create games for video game consoles and personal computers. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), soundscriptinganimationartificial intelligencenetworking, streaming, memory management, threading,localization support, and a scene graph. The process of game development is often economized, in large part, by reusing/adapting the same game engine to create different games, or to make it easier to “port” games to multiple platforms. I know I said very complex language of game engine above. So, let’s come to the point here. Game engine is the core functionality behind any game, whose responsibility is to manage and control every aspect of the game. So, game engine will manage the equality of the gameplay and graphics engine. If you are confused, then I will clear to you that game engine is a very big part behind any game and graphics engine is just a single part called as renderer.

Why are we talking about graphics engine, game engine, and gameplay here? Where is the game?

The Game

Well, what I say about the game. Game is the root, for which you are doing everything. For now you are reading this blog for that single word, The Game. Game is not game engine, rather game is result created  by game engine plus the some specific things like game story, gameplay design, interaction, and so on. Remember, game engine doesn’t provide you the gameplay. Gameplay is dependent on the game itself, and game engine is the general component to be reused for different games.

Thanks for reading this post, I really hope that you like the article. I am open to any suggestion, feedback, comments, or any response. Don’t go anywhere please, because the more interesting posts on the game development are on the way to be posted soon.

Inside The Game – General Game Structure

This article is third part of the series called as Inside The Game. For those, who are not familiar with Inside The Game series, this series will provide the articles and tutorials related to mechanisms and architectures of the game. Also, in this series, you will learn to think like a game developer. Now, if you have not read the last part of this series, please click here to read it. I am summarizing the last part here for those who have not read. In the last part, it was discussed about animations, simulations, and games. In simple words, game is a controlled animation, which takes the input from user unlike animation and simulate the world like interaction. This part is more technical than last two parts but it is also sort of general as compared to the implementation or programming in any computer language. But, this article will be very important to know when it comes to game development.

Okay!!! Let’s start our article today. Today, we will discuss about the general structure of any game. You might know that there are many different types of the games such as platform games, First Person Shooter (FPS) or Third Person Shooter (TPS) games, strategy games, board games, and so on. So, it is very important to know about the structure of these games. The structure keyword means how the game is designed and what components together make a game. I am not explaining here about any specific type like how platform games are developed, Today, I am explaining about how any type of game is structured. Software include lot of coding, and sort of graphics as well for User Interface. But, normally, all software contain same Operating System’s User Interface Components like Buttons, Combo Boxes, Radio Buttons etc. So, it doesn’t become a problem to focus on User Interface more than the functionality of the software. However, in games, story takes turn to other side. Games includes many disciplines and field other than just coding. Following figure shows some of the disciplines involved in any game. It is not necessary that all the disciplines can be used in the game, but it is also possible that some of the disciplines are used in the game.

As in the figure, it is clearly shown that game contains very different disciplines to work on at the same time. For example, let’s take graphics here. Graphics is a very important part in any game, because it is the first impression of the game. The most first thing user observes in any game is the graphics. So, the more good are graphics, the more users are likely to play the game. But, let’s say that your game has got amazing graphics, but the game is slow and not good in interaction and gameplay, then users will not play the game. Because, they already observed the graphics, and they liked it so they gave a chance to your game, but when they played it, they didn’t find it enjoyable and interactive, so they just left your game. Interestingly, you can see Game Effects & Gameplay in above figure as part of the game. These all parts play almost equal role in making of any game. Let’s take Artificial Intelligence shortly AI here. You can say AI like it is the brain of the game. How computer will react and respond to the user input is the AI of the game. The enemies in the game, called as game bots or game agents, use AI to make decision. We will come to AI in details soon. Another important part of the game is Game Logic & Game Flow. Now, this is completely coding work, and in this part, all other disciplines like graphics, resources like images, sounds from Game Music part, databases, networking, etc. are assembled. You can say it the most important part of any game, but this part becomes zero, if no other part is available to you. So, all the components are tightly dependent on each other.

Well! I hope that you have known about different disciplines of the game, so let’s talk about the structure now. Behind each game, there is an engine running called as Game Engine. In the business world of games, game engine is like gold mine. You can make many games with game engine. Game engine’s objective is to manage all the data involved in any game. Following figure shows the role of the game engine.

As you are seeing the figure, game engine is managing and controlling other sub-engines like Graphics engine, AI engine, Physics engine, Sound engine, and so on. Game Engine manages all the game data and makes any game come to life. The way of game engine is to keep connected all the engines through one medium, and that medium is game engine itself. It basically takes game data, sends it to the AI for decision making, then sends it to Sound for playing, then sends it to Physics for real-life interaction, and finally sends it to the Graphics for rendering and displaying on the screen. This process keep to be repeated as long as the game is running. This is how a game engine gives birth to a game. On completing this article, I would like to ask you a simple question here:

Thanks for reading this article and series. I hope you liked it. Any suggestions, comments, or feedback is open. Thanks…. In the next part, I will discuss about some basic concepts used in game development like Graphics Engine, Game Engine, and so on. To read the next part, Inside The Game – Graphics Engine, Game Engine, and The Game, please click here.

Inside The Game – Animation, Simulation, and Game

This article is second part of the series called as Inside The Game. For those, who are not familiar with Inside The Game series, this series will provide the articles and tutorials related to mechanisms and architectures of the game. Also, in this series, you will learn to think like a game developer. Now, if you have not read the first part of this series, please click here to read it. I am summarizing the first part here for those who have not read first part of the series. In the first part, the differences between a game and software were presented. The main difference between game and software is that software works on event-based systems, however game works on loop-based system. That loop is called game loop, and performs some tasks like processing inputs, simulating world, rendering etc directly or indirectly. For explanation of this mechanism, you can read part 1 Inside The Game – Game vs. Software.

Enough talking about first part, we already learnt about the differences about the game and software. You might remember that in last part, there was a very little part of information related to animation, simulation, and the game. Yeah!!! you got it right!!! This article is about the comparison between animation, simulation, and the game.

Why compare games and animations/simulations?

Well, game is not all about coding. Coding is just a part of the game, which plays an important role of assembling each component to form a game. But, we are here to discuss about the animations and simulations. The architecture behind any animation or simulation is almost same as the architecture of a game. Let’s see this in details here.

Animation/Simulation vs. Game

Animation is like a movie, which shows only the information which is already hard coded in it. For example, the most famous comic Tom & Jerry only shows what is in the story. We cannot change it according to our wish. You can say that its just readable data. Simulation is very close to the animation. The little difference is that you can also interact with simulation unlike in animation. But, there is very little control to the user to access and write the simulation. So, game is virtual word, where game developer provides access to the user to interact with the world and make decisions. The more access you give to the user, the more complex it becomes.

So, it was all general speaking about animations, simulations, the games. If we say from programming perspective, then I will only tell you one thing: Game is a controlled simulation. So, if you create a game, first create a simulation with some hard coded values, and then provide the control to the user. The advantage in this approach is that you can make the game in an easy way not making it more complex though. Following figure shows the concept graphically.

The figure above shows that animations are static and hard coded. When we provide some values to the animation, it becomes close to the simulation. And we provide the full control to the user to interact with the world, then it becomes the game. From coding point of view, the mechanism is same as explained in the last article about the game loop. Each category will have same game loop. The only difference is of Process Inputs. The animation/simulation will take inputs from their hard coded databases, and game will take it from the user. So, in this sense, it can be said that Game  is a controlled animation.

Thanks for reading this article. In the next part, you will read about the game composition. In which I will explain that how a game is composed and what are the important components to be implemented to develop a game. To read the next part, please click here.

I hope you are enjoying this series. Please provide your valuable feedback, suggestions, or comments, I would love to hear from your side.

%d bloggers like this: