changeset 115:07cb0d9f92e9

Docs: add development overview
author David Demelier <markand@malikania.fr>
date Mon, 11 Sep 2017 16:26:35 +0200
parents e3b45368fd19
children d7025649d85c
files docs/overview.md
diffstat 1 files changed, 87 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/overview.md	Mon Sep 11 16:26:35 2017 +0200
@@ -0,0 +1,87 @@
+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