My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Architecture  

Deprecated
Updated Aug 11, 2011 by oleg...@gmail.com

This page is obsolete, update will come someday :-)

Overview

Portability, robustness and scalability was strongly kept in mind during architecture design process.

Message passing

Project consists of number of modules that are sending messages to each other. In high level modules message-passing is handled by the Scheduler. In low level modules messages are passed in form of direct object method calls.

Message passing scheme is shown below. Arrows are directed from message sender to message receiver.

Project dependencies

All modules were designed to be as decoupled from each other as possible. The high level layer dependency concentration point is the Facade module. The low level layer dependency concentration point is the Platform module.

Dependency graph is shown below. Arrows are directed from dependent module to the module it depends on.

Logic modules

It's the highest level layer of Smoothernity. Game logic is located here. Each module sends message to another module via Mediator.

Engine modules

Reusable high level routines are located here. Each module sends message to another module via Mediator.

Mediator

Mediator serves for message routing purpose. It contains all high level message types. It knows which module should receive which message.

Aggregator

Aggregator builds high level modules static connections. It wraps each module with Scheduler. It also converts incoming events from method calls into high level layer's messages.

Facade

It is high level layer's front end for the lower level application layer. It also builds high level layer from specific parts. It passes incoming events to the Aggregator module.

Application

Here is the target platform application entry point. Executables is built using theese modules. It catches all events from underlying operational system API and translates them to the Facade and Platform modules.

Platform

Platform module encapsulates all platform specific details, providing interface for high level layer.


Sign in to add a comment
Powered by Google Project Hosting