User Tools

Site Tools


dragengine:glem

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
dragengine:glem [2012/12/03 21:21] – created dragonlorddragengine:glem [2020/05/18 21:04] (current) – [Game Scripts Layer] thanos
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
 +{{tag>dragengine features}}
 <WRAP youarehere> <WRAP youarehere>
 [[:start|Start Page]] >> **GLEM System (Game Launcher Engine Modules)** [[:start|Start Page]] >> **GLEM System (Game Launcher Engine Modules)**
Line 13: Line 14:
  
 ===== The Modules Layer ===== ===== The Modules Layer =====
-Modules provide the functionality of the engine and are classified into various different types. A module type describes the part of the engine a module is providing support for. For example a Graphic type module is responsible for rendering to the screen while an Image type module is responsible for loading an image from disk. Module types are either Single Type or Multiple TypeSingle Type Module there can be only one module loaded at every time. This is rather logic taking the Graphic Module as an example. Running OpenGL and DirectX at the same time would result in a hell of troubles. Therefore such modules are restricted to one running module. Multiple Type modules on the other hand can be run alongside each other without a problem. The Image Module from the previous example is such a Multiple Type module. It is rather logic that you can have one module for loading PNG images and another for loading JPG images. The rule of thumb is that a module is Multiple Type if it is a loader module able to load a resource from disk ( or save it to dosk )On the other hand a module is usually Single Type if it provides a services on a devices like the monitor where only one client can access at the same time. The Modules and their types are listed on this website providing informations about their usage.+ 
 +Modules provide the functionality of the engine and are classified into various categories 
 + 
 +category describes the part of the engine a module is providing support for. For example a Graphic module is responsible for rendering to the screen while an Image module is responsible for loading an image from disk.  
 + 
 +Modules are either Single or Multiple Instance modulesThe Graphic Module is a good Single Instance example. Running OpenGL and DirectX at the same time would be disastrous. Multiple Instance modules on the other hand can be run alongside each other without a problem. The Image Module from the previous example is such a module. You can have one module for loading PNG images and another for loading JPG images. The rule of thumb here is that a module is Multiple Instance if it loads (or saves) a resource from disk.  
 + 
 +Similarly a module is usually Single Type if it provides access to devices like the monitor where only one client can have access at the same time. The Modules are listed [[https://developer.dragondreams.ch/wiki/doku.php/dragengine:modules:main|on this website]] with more information on their usage.
  
 ===== The Launchers Layer ===== ===== The Launchers Layer =====
Line 23: Line 31:
 <WRAP box 630px right :en>{{  dragengine:dragengine_glem.png  |The Drag[en]gine GLEM System}}</WRAP> <WRAP box 630px right :en>{{  dragengine:dragengine_glem.png  |The Drag[en]gine GLEM System}}</WRAP>
 ===== Modules Layer ===== ===== Modules Layer =====
-Modules are the meat of the Drag[en]gine. Various module system exist covering the various aspects of a game engine. The modules can be operating system specific hiding the highly variable hardware from the game engine. Due to locality algorithms and especially new hardware can be attached to the game engine without any changes to other modules neither the layers aboveThe user chooses from the selection of available modules to obtain his optimal module set for his machine. Each module can be maintained by a different development team which is independent of all othersGame developers never have to touch modules development at all.+ 
 +Modules are what the Drag[en]gine uses to deliver its high level functionality 
 + 
 +Various modules exist for various aspects of a game engine, each handling a specific game aspect or specialised hardware. This separation of concerns means that each module can be maintained by a development team that is independent of the game development team 
 + 
 +Usually game developers never have to deal with module development at all.
  
 ===== Engine Layer ===== ===== Engine Layer =====
-This is the core of the game engine. This layer is responsible for all the book keeping of managing resources and modules. On top of this this a flexible virtual file system is maintained. The engine layer takes care of loading and verifying modules while the launcher layer is responsible to check if the required modules are present. The launcher layer is also responsible to populate the virtual file system. This layer is maintained solely by the Drag[en]gine Development Team. No other team is required to deal with this layer due to the loose coupling and the high level of abstraction.+ 
 +This is the core of the game engine. This layer is responsible for all the low level managing of resources and modules.  
 + 
 +This is complemented by a flexible virtual file system. The engine layer takes care of loading and verifying modules while the launcher layer is responsible for checking if the required modules are present. The launcher layer is also responsible for populating the virtual file system. This layer is maintained solely by the Drag[en]gine Development Team. No other team is required to deal with this layer due to the loose coupling and the high level of abstraction.
  
 ===== Launcher Layer ===== ===== Launcher Layer =====
-Launchers are a very nifty principle putting this game engine apart from the rest. The game does not link or use directly the game engine. Instead a launcher is squeezed in between. By definition a launcher is a piece of software responsible for managing an instance of the game engine to run a game with it. A launcher is responsible to initialize the engine which also includes checking for required modules as well as populating the virtual file system. Launchers are not required to allow downloading and installing of new modules but user friendly ones do so. The main advantage is that the launcher is operating system specific. The game build on the Drag[en]gine is completely cross platform since the last operating specific code resides in the launcher but not above. Although launchers are destined to run games it does not stop there. Launchers can also play movies ( Machinima for example ) or implement editing ability ( like the World Editor or one of the many other editors ). Running a game is therefore only one of the possible uses of a launcher. The development of the launcher is usually done by a development team different from all others. Some launchers are also maintained by the Drag[en]gine Development Team.+ 
 +Launchers are a unique characteristic of this game engine, setting it apart from the rest. game does not link or use the game engine directly but through a launcher. By definition a launcher is a piece of software responsible for managing an instance of the game engine executing the game.  
 + 
 +A launcher is responsible for initializing the engine which also includes checking for required modules and for populating the virtual file system.  
 + 
 +Launchers are not required for downloading and installing new modules but user friendly ones do so. The main advantage is that the launcher is system specific. The game build on the Drag[en]gine is completely cross platform since the last operating specific code resides in the launcher but not above. Although launchers are destined to run games it does not stop there. Launchers can also play movies ( Machinimas for example ) or implement editing ability ( like the World Editor or one of the many other editors ). Running a game is therefore only one of the possible uses of a launcher. The development of the launcher is usually done by a development team different from all others. Some launchers are also maintained by the Drag[en]gine Development Team.
  
 ===== Game Scripts Layer ===== ===== Game Scripts Layer =====
-This is where the meat of the game is handled. This is the realm of game developers. They are not required to deal with anything below their layer. Their choice of Scripting Module determine what language they use to program the game as well as how much the game engine is abstracted from them ranging from exposing nearly all functionality to click and play style game design. This layer is fully independent of the underlaying operating system and hardware. This way you can develop your game without worrying about the actual hardware your users are using. This layer is fully in the hands of the individual game developers. No other layer has to know anything about the actual game code on top of them.+ 
 +This is where game is implemented and the realm of game developers. They are not required to deal with anything below this layer. Their choice of Scripting Module determines what language they use to program the game as well as how much the game engine is abstracted from them ranging from exposing nearly all functionality to click and play style game design. This layer is fully independent of the underlying operating system and hardware. This way you can develop your game without worrying about the actual hardware your users are using. This layer is fully in the hands of the individual game developers. No other layer has to know anything about the actual game code on top of them.
 <WRAP clear></WRAP> <WRAP clear></WRAP>
dragengine/glem.1354569678.txt.gz · Last modified: 2012/12/03 21:21 by dragonlord