3. Game Architecture
This section is currently a draft, and is subject to change. |
DGA implements a multitier client-server software architecture that is a distributed application structure, which partitions tasks/workloads transmitted over networks between resource/service providers, called servers, and service requesters, called clients.
This chapter provides an overview of DGA’s software architecture and related game modes.
3.1. Game Architecture
The DGA Game is designed and implemented as a multitier client-server software application based on the Java Platform.
DGA is intended to be played with an unlimited number of players accessing through their game clients an unlimited number of game servers connected into a game network. The Java Platform provides an integrated infrastructure that facilitates developing and running software applications written in the Java programming language. The Java Platform has been implemented for a wide variety of hardware architectures and operating systems with a view to enable Java programs to run identically on all of them. This intention made Java a truly high-performance, vendor-independent, device-agnostic software ecosystem.
In networking, DGA also seeks to apply high-performance, vendor-independent, device-agnostic solutions. Hence, the XMPP Network Protocol is implemented as the first application protocol supported by the Game. DGA uses XMPP to communicate game clients with game servers and game servers among themselves.
The figure below depicts DGA’s principle software architecture.
DGA’s game client is a Java application running on the jMonkeyEngine Game Engine. While the player starts the game client, he/she can choose either the single-player mode or a multiplayer one. The single-player mode doesn’t require a network connection and is played locally on the player’s computer. In the multiplayer mode, the player accesses a remote game server where multiple players interact and communicate with each other on a single game world. The massive multiplayer mode provides battle environments, which a large number of players can simultaneously participate in.
DGA’s game servers are built on the Jakarta EE Platform; the servers differ on their purposes, and need to be available over a network connection. For providing a local multiplayer game, a game world server has to be deployed on a local network (Intranet). For making the game global, the game server needs to be available over the Internet.

Figure 3.1. DGA Game’s Principal Architecture
DGA’s game modes at a player’s disposal are determined by the chosen deployment architecture. The following sections describe different game modes and their variations in the context of software architecture.
3.2. Game User Modes (GUMs)
DGA's user modes define how many players can participate in a single battle session at the same time.
3.2.1. Single-Player User Mode (SPUM)
The single-player mode is intended to provide a player with battle sessions either to study and train battle maps and environments or to fight hostile mobs. In this mode the Game works locally and doesn’t require network connections.
This mode also serves for testing and playtesting purposes to try out new game features and services.
3.2.2. Multi-Player User Mode (MPUM)
The multiplayer mode provides players with cooperative battle sessions to collaborate with and compete against other players. This mode needs a game world server to be deployed and accessible to players over a network. The game world server can be deployed on a player’s local computer or a remote dedicated server, but network connections are used in either case.
The battles in this mode are limited by the number of participated players and duration of time.
Allowing participation of mobs in battles equally with human players is determined by the policy of the game world server, which is obliged to notify players about the such allowance before starting a battle session. Non-playing characters controlled by players are treated as bots and blocked by the server.
3.2.3. Massive Multi-Player User Mode (MMPUM)
The massive multiplayer mode provides players with battle environments allowing a large number of players to participate in a common battle session on a huge battlefield.
3.3. Game Battle Modes (GBMs)
DGA's battle modes define fighting moods differing in proportion between historical authenticity/accuracy and shooting gameplay.
DGA’s battle modes and user modes are in a binary relation of the Cartesian product: every battle mode can be played in every user mode and vice versa.
3.3.1. Struggle Battle Mode (STBM)
The struggle battle mode provides players with a dynamic battle rhythm either the most fast-paced and accurately authentic. In this mode a player commands a weapon unit in a high-powered shooter gameplay, which is optimised for fast-paced actions but do not contradicts historical authenticity and accuracy.
3.3.2. Realistic Battle Mode (RCBM)
The realistic battle mode gives a player first-hand experience in commanding a weapon unit through a realistic battle environment and learning how this weapon unit behaved in reality. This mode provides a reasonably fast-paced shooter gameplay, which closely corresponds to the real weapon and do not contradicts historical authenticity and accuracy.
3.4. Game Battle Types (GBTs)
DGA's battle types vary in how players are combined for a common battle session.
DGA’s battle types are partly interrelated with the user modes and in a binary relation of the Cartesian product with the battle modes: every battle type can be played in every battle mode and vice versa.
3.4.1. Call-To Battle (CTB)
DGA's call-to battles are conceived to compose battle teams of unrelated players waiting for going into a battle, i.e. waiting for a call-to-battle. Players are picked for a team by weapon unit, battle experience, and other parameters. A battle map for the battle session is selected among the maps chosen by the players.
Call-to battles in the single-player mode are trivial. These battles may engage players in the multiplayer modes.
3.5. Battle Aiming Modes (BAMs)
DGA's battle aiming modes define how the player points a weapon towards targets to hit them during a battle.
3.5.1. Struggle Aiming Mode (STAM)
The struggle aiming mode provides the player with a third-person perspective when a camera is positioned above and behind, and it follows the player’s game character with a weapon’s aiming point towards targets on the battlefield. This mode is optimal for close combat at short and medium distances. The mode is additionally equipped with the auto-aiming feature, which can be activated against hostile units.
3.5.2. Sniper Aiming Mode (SNAM)
The sniper aiming mode provides the player with a first-person perspective when the game character’s weapon is aiming directly at targets on the display. This mode is optimal for long-distance, precise shooting.
3.5.3. Grazing Aiming Mode (GRAM)
The grazing aiming mode provides the player with a third-person perspective, which shows the battlefield from above and allows long-distance grazing fire. This mode is equipped with two battle sights differing in the perspective: overhead sight and grazing sight.
Want to help? Learn how to contribute to FLEISSF DGA Docs