Architectural Design

This page describes the architectural design behind the two major components of the project; the online server and the game, HoverTanks.

Game Architecture
Component-basedarchitecture is the main architectural design pattern being adopted for game development.



Rather than opt for an approach that is along the lines of Object-Oriented Programming, in which all objects in the application are part of one all-encompassing tree of relationships (resulting in mass amouts of inheritance), the Component-based architecture allows the objects of the system to adopt desirable properties to an object from a set list of basic source components.

This approach will allow for flexibility and adjustment of game design, but the written code can potentially become bloated when the approach is applied to development of larger-sized games.

Web Server Architecture
The web server will follow the rules and strcture of the (two-tier) Client-Server Model  architectural design pattern.

Regular website access is performed through the standard HTTP protocols, where webpages are stored on the server and sent to the viewer, where the file is interpreted and displayed at the application and presentation layers.

The server will also be running C# scripts on hidden pages that await connection attempts from clients, who are playing the game and are attempting to access the online vehicle repository. Connection information is retrieved from the client and managed by the server. Upon confirmation from the server, data is either expected from the player (when uploading a vehicle) or sent to the player when downloading and viewing vehicles.

Data transfer is performed through POST requests, which is further explained in the Interaction Between Game and Server page.