Answer the question
In order to leave comments, you need to log in
Answer the question
In order to leave comments, you need to log in
You are clearly confusing buzzing flies with warm meatballs. Game engines are created by developers, just like any other application. If this is a game engine in the classical sense (native, in D3D or OpenGL), then this is a native application, to create which, in general, the usual well-known tools are used: a programming language and its toolchain (compiler + linker) is a minimum, and there already someone like - IDE (one of which you mentioned in the tags), just an editor like sublime, etc.
exe file, like any other module on any platform (PE(exe, dll) on Windows, ELF (binary/so) on Linux, etc.) is the result of the linker's work. The linker collects the object files and other libraries generated by the compiler into such a module, the object files are generated by the compiler from the source code, the developers write the source code.
For Microsoft Word, Half-Life and KDE, the process is basically the same. The difference is only in the tools, platforms and details.
The meaning of the question from the title is "how do ENGINES compile code?" I still don’t understand if you mean scripts that can be executed by means of the engine - that’s another story, many serious engines use interpreters of existing scripting languages (Lua, for example, is very popular) or write your own to implement game logic, interfaces in this scripting language plugins (in WoW they do this), and so on.
PS If you already mentioned the studio in the tags, install it, create the simplest console project (Win32 Console Application), compile and run - and you will complete the entire chain that native application developers perform (only it can be more complicated for them, customized to suit their needs , and in their projects there are not 2 cpp-files, but 10 thousand).
the engine is simply a regular program, they do not compile
the engine, if we draw an analogy to enterprise developers, it is an information system where business logic is mechanics, game rules and internal information processes, and the interface, display and output are visualization that is displayed on screen + various settings and save files (if we are talking about offline games).
in general, so when the game starts, the engine starts. everything has been programmed in it for a long time and it only works with the game files and at the same time it considers something inside itself - it loads textures, calls the necessary actions of the OS, sends the necessary settings for rendering to the video player, and so on.
in short and simple - the engine is a program that implements and coordinates all the actions that are necessary for the game (both graphics, and internal logic, and physics, and caches for optimization, menus, everything, interfaces, some auxiliary things (achievements for example) - in general, everything related to the game)
how does the engine differ from the game itself? the fact that it is initially developed so that on its basis it is possible to make different games and / or make various mods. that is, it initially includes a wide variety - and a specific game based on it is an engine + its desired configuration, and plus, you can probably include a set of textures, models and other auxiliary files in the configuration
if you are interested, it’s better to start with the general moments of game development and then you can download the sources of the doom 3 game and dig into them (while finding some article about these sources / game / engine, most likely in English)
Engines that use Static languages (require compilation, C++, C#, Java) almost always use ready-made solutions (they are not self-sufficient):
Unreal Engine - C++ - On Windows, it uses C# to generate the project and the MSVC (Visual Studio) compiler; On Linux - cmake, clang
Unity - C# - Uses mono
CryEngine - C++ - MSVC (Visual Studio)
Torque 3D - C++ - MSVC (Visual Studio)
WaveEngine - C#, F#, VB - csc (Visual Studio), mono
In such cases "Prerequisites" are always specified
For convenience, tools for automating compilation processes are already embedded in many development environments. For example, UE4 can dynamically update dlls (Hot Reload).
Engines with dynamic languages (not compiled or compiled on the fly, Python, JS, AS3, Lua) don't actually build any exe/dlls:
Unity - JS (only packs resources)
Phaser.io - JS
CryEngine - Lua ( only packs resources)
pyGame - Python
Ren'Py - Python
There are engines whose SDK is available in many languages - Live2D Cubism (C++, C#, AS3, JS, Java), Box2D (C++, Python, Java, AS3). Accordingly, the approach in each case will be different.
I'm sorry, maybe I didn't put it that way. The bottom line is that the engine is not for one game. The question was how to move the game separately from the engine (for example, by clicking the save button, the game is saved to a certain folder separate from the engine)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question