This thesis is about developing a general purpose, component-based game engine.
It is still true that most people buy computers because of gaming applications.
Usually those who do so will take care of buying an appropriate hardware configuration for themselves.
It is well-known that the resource requirement of today's computer games is one of the highest taking into
account all kinds of software. This is because these programs perform a huge amount of mathematical
calculations for each frame. Although these software systems not only need performance, but also their
codebase are huge. This codebase is usually decomposed into two distinct segments. One of them is
made by the game logic programmers and its purpose is to perform game mechanic functionalities exclusively.
The other segment of the software system is a game logic independent framework,
which is responsible for implementing ofted-used, low-level functionalities; this is called a game engine in the industry.
These software nowadays have so enormous complexity that the whole overview of
these systems is an impossible task. In addition, their creation requires powerful programming and mathematical
apparatuses so their development cost is so great that only the largest developer companies can afford to use their
own engine to create their own applications.
Of course because of the shortage of time and my inexperience in development this paper is not intended to create a software architecture
that can compete in any way with the industry solutions. The purpose of this dissertation, however, is to create a general system that
can be used later for educational purposes.
As part of my thesis I will first introduce the major functionalities of the game engine I prepared during my Bachelor's thesis.
Then I will present those solutions that were already included in my previous work, but modified during my current thesis.
After that, I will discuss those new features
that were not part of my former system. Then I will present the demonstrative
application made for demonstrating the usability of the completed engine.
The thesis concludes with the evaluation and summary of the prepared software.