Mercurial > molko
diff doxygen/page-faq.c @ 77:837ef1d387b4
doc: improve documentation
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 31 Jan 2020 13:48:27 +0100 |
parents | |
children | eb0a7ab71023 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doxygen/page-faq.c Fri Jan 31 13:48:27 2020 +0100 @@ -0,0 +1,78 @@ +/** + * \page faq FAQ + * \tableofcontents + * + * # 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 genericity. + * + * 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. + * + * # 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, C18 is the minimal requirement + * to build and run Molko's Adventure. + * + * \note The code does not make any assumption about the platform it runs, it + * expects to have a fully conformant C18 implementation. Microsoft MSVC + * is known to **not** support this C version. + * + * # 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. + * + * # Can I write an action RPG like Zelda? + * + * Probably. + * + * Do not use the battle system provided and then depending on your game you + * may: + * + * - Edit the \ref map_state.h module to your needs (you may also simply define + * your own input/update handler instead), + * - Create a dedicated state and use \ref map.h if you want. + */