Well, I was looking for help in creating games and found that the engine is the foundation of the whole game, as creating a player is simplified, as well as custom graphics and physics or similar items. You also need to think about the next games you plan to make and use the engine to create very little in your game, which is already built for you.
If you want to know what a game engine is, how if functions or want to build them here, how it should happen.
GLFW - opening the OpenGL window. This is a great C library that opens windows in almost everything. This is great because there’s even less to worry about.
GLEW - Manage OpenGL Extensions. If you are going to do OpenGL, this is not really around.
Lua - Scripting. Although I have not used it in my game yet, it is largely suited for scripting in the industry due to its fast implementation of the virtual machine.
Protobuf - external state management. You can find the documentation here. The shortcut is that you can use protobuf wherever you usually use XML.
Qt - for standard containers and string manipulations. you do not need to use the whole set of Qt libraries, only QtCore. This gives you access to QList (std :: vector), QHash (optimized std :: map), QString (std :: string with support for multiple encodings) and many other goodies. Part of the reason you should go is that the documentation is excellent.
GLM - Mathematical Library. If you just want the math in your game, this is the library for you.
freetype-gl - text rendering. This is a very well written library for rendering text in OpenGL, you can do a lot worse.
libRocket is an HTML and CSS based graphics library. This is great when you just need a user interface on the screen, but it becomes problematic if you want to add animations.
Find the list here.
These are great ideas for the engine, which simply combine the libraries and build the game with the engine that you create from the theses, although you will need time to finish if you do not have a great team. I also read this list and many others, and this is the best 2d list. Also, you do not need to create a user interface for the engine, because you only need the basics of the engine and the collection of a separate project for each game. Here's how to do it.
- Engine.h
- enginepart1.h
- enginepart2.h
- enginepart3.h (ect.)
(use .h not .cpp for the engine, because you cannot reference engine.cpp, but you can reference engine.h) after creating that
- Game.cpp
- gameresources.h (resources include an Engine.h link)
- gamepart1.h
- gamepart2.h (etc.)
And build the engine in a way like this, but not 100%, as it would be optimal
- Frame: math, random, utility, assets, network, window, graphics, audio, ...
- Player: AbstractPlayer, Score, Input, Collision, Reaction, Skill, Inventory, ...
- Map: AbstractMap, Area, Town, NPC, ...
- Enemy: AbstractEnemy, Creep, Boss, BaseAI, FuzzyAI, ...
- Status: IntroScreen, MainMenu, LoginScreen, Game, PauseMenu, ...
- Interface: button, text, InputBox, ...
Found here here
Create it like this type
- Frame: math, random, utility, assets, network, window, graphics, audio, ...
- Entities / characters: player, enemy NPCs, friendly NPCs, BaseAI ...
- Map: Map / Level Editor (if you want), map objects (can be placed here), special map functions, ...
- State Control: Intro Screen, Main Menu, Logic Screen, Game State, Pause Menu (s), ...
- Interface: button, text, input field, ...
source share