diff doc/docs/dev/faq.md @ 239:d47e70da760e

doc: switch to mkdocs+doxybook2, closes #2516 @2h
author David Demelier <markand@malikania.fr>
date Fri, 27 Nov 2020 17:00:30 +0100
parents
children 97f55f6b9593
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/docs/dev/faq.md	Fri Nov 27 17:00:30 2020 +0100
@@ -0,0 +1,71 @@
+# FAQ
+
+Frequently asked questions about the development.
+
+## Why not creating a game engine?
+
+Game engines are usually too generic, too complex and do too much things. Lots
+of them also use scripting language which require another learning curve to be
+used.
+
+Molko's Adventure is a solo tactical 2D RPG and its core is especially designed
+for that gameplay. Thus the code stay simple to understand and to follow.
+Coupling a general purpose game engine with a game design is sometimes more
+complicated than writing small code.
+
+However, game engines are still interesting for people who already know how to
+use them and feel confident with them.
+
+## Why no prefix like "ma_" or "MA_"?
+
+See also question above.
+
+The purpose of Molko's Adventure is not to provide a drop-in reusable library
+to create RPG games. It is highly coupled with the gameplay of the original
+game. Thus we wanted to keep the codebase extremely simple and minimalist
+without adding bunch of generics.
+
+The core API isn't meant to be installed system wide (possible, but not
+recommended), instead users are encouraged to copy the core code and to adapt
+to their gameplay.
+
+A simple example: if someone wants to create a game and would like to allow
+only three playable entities at a time, it should simply edit appropriates
+structures and everything is adapted. Then, structures and array can stay
+static without dynamic allocations.
+
+Also, having a large amount of different data types, this would generate very
+large function and type names.
+
+## Why C instead of *FOO*?
+
+C is an awesome language. It still has its place in the industry especially in
+low-level, kernel and game design.
+
+Games are usually designed without OO in mind using simple procedural codes and
+lots of data. In C, writing code makes easier to understand what's happening
+under the hood without having to check if functions will generate dynamic
+allocations or not.
+
+However, we also love modernity and as such, C11 is the minimal requirement to
+build and run Molko's Adventure.
+
+## Can I make a MMORPG with that?
+
+Not easily.
+
+This core API is really tied to a unique solo RPG adventure and therefore it
+does not separate logic from rendering.
+
+Also, note that creating a server-client game is really different in terms of
+architecture than a local solo game. Most of the logic part is done server side
+and requires much more code to analyze to avoid cheats, lag, synchronisation and
+many other stuff than a local game does not require.
+
+There are no plans to create a network oriented core API anytime soon.
+
+## What are these stranges symbols `(+-*&?)` in member fields?
+
+It's a custom notation to indicate ownership and user access.
+
+See [ownership](ownership.md) file for more information.