I recently thought of making a larger game, than the ones I used to make before. To speed up development I wanted to use an Game Engine, but had to discover, that I have no idea of Engines and this kind of stuff at all. I don't even know, what an Engine exactly is.
"A game engine is a software framework designed for the creation and development of video games" -from Wikipedia-
How does this look like in real life? Is it a code library? Or a development environment like NetBeans, just for a special kind of game? I don't have the slightest idea, can anybody help me out with these basic questions?
Furthermore I would be interested either in tutorials how to write a game engine (in Java) or a good Freeware/OpenSource engine, which is suited for beginners. Google showed me libGDX, is this something I could take into consideration for making a Sidescroller?
Will Ashton wrote:Is it a code library? Or a development environment like NetBeans, just for a special kind of game?
A Game Engine is both of those things and a lot more. Warning - generalizations a head:
A typical IDE will allow you to program in multiple languages. For example, Eclipse can handle Java, C++, PHP, HTML, CSS, XML and others. An IDE will allow you to create many different types of programs. Again, using Eclipse, we can create simple Java programs, GUI interfaces in Swing, Servlets, JSP/JSF pages, etc...
A Game Engine, however, is going to support only a few languages. All of it's development effort is going to be game centric. You won't be able to create a Servlet in a Game Engine, but the Game Engine will have a much more extensive library of methods and Classes specifically designed to speed up game development. A Game Engine will often have the ability to compile code for multiple platforms (PS4, Xbox, Mac, PC, HTML, etc..) - all from the same source code. If you have ever thought about converting a Swing Java program into Android Java, you know how hard that can be in a traditional IDE. With a Game Engine, it's single click.
In Game Engines, most of the setup is done through drag and dropping of predefined Classes. Often, this means there is very little actual coding (and one of the reasons it can generate output for multiple platforms). I did this last week from Unity's first tutorial: http://chris-barrett.ca/unity/space_shooter/space_shooter.html I think the actual raw code I wrote was about 50 lines. Took about 8 hours, with most of that time being spent understanding how things like Light objects throw shadows, the interface, and the different syntax between Java and C#.
Publicly available Game Engines, such as Unity or the ones Mich outlined, won't be tied to a particular game type. However, in big game companies, more specialized Game Engines will be developed n-house. Writing a Game Engine is a massive undertaking, as behind the scenes Game Engines are also converting code into the OpenGL or DirectX languages.