view docs/overview.md @ 161:be0d90706ded

Server: replace dodge with force stats, closes #762 @10m
author David Demelier <markand@malikania.fr>
date Sat, 17 Mar 2018 14:13:19 +0100
parents 835c8ee3f9e5
children
line wrap: on
line source

Malikania overview
==================

This memo is a simple overview about the Malikania Engine architecture.

Dependency overview
-------------------

This is the main targets and their dependencies.

```nohighlight
                      +-------------------+
                      |                   |
+-------------------+ | mlk-client        |
|                   | | mlk-map           |
| mlk-server        | | mlk-tileset       |
|                   | |                   |
+-------------------+ +-------------------+

+-------------------+ +-------------------+
|                   | |                   |
| libmlk-server-js  | | libmlk-client-js  |
|                   | |                   |
+-------------------+ +-------------------+

+-------------------+ +-------------------+ +-------------------+
|                   | |                   | |                   |
| libmlk-server     | | libmlk-client     | | mlk-bcc           |
|                   | |                   | |                   |
+-------------------+ +-------------------+ +-------------------+

+---------------------------------------------------------------+
|                                                               |
| libmlk-common                                                 |
|                                                               |
+---------------------------------------------------------------+
```

libmlk-common
-------------

This library contains many utilities that can be used in both server and client
targets.

This library does not depend on client or server code at all.

libmlk-server
-------------

This library contains anything you need to develop a server running your game,
it does not depends on anything graphical and can safely be used on headless
machine.

libmlk-client
-------------

This library contains graphical modules to develop a rich client. It depends on
a graphical backend (mostly SDL) and all of what is needed to make a whole
client (graphics, audio, fonts and such).

libmlk-server-js and libmlk-client-js
-------------------------------------

These libraries are the official Javascript bindings for their respectives
homonyms.

mlk-server and mlk-client
-------------------------

These executables are written upon libmlk-server-js and libmlk-client-js
respectively, they are able to run games written in Javascript.

mlk-bcc
-------

The `mlk-bcc` tool is a very basic resource compiler, it transforms any input
data as C++ byte array.

mlk-tileset and mlk-map
-----------------------

These two executables are required to transform maps and tileset created with
the [tiled][link-tiled] map editor.

They are only used by the client.

[link-tiled]: http://www.mapeditor.org