Mercurial > molko
annotate doxygen/page-faq.c @ 235:fb304a94a05c
rpg: prepare equipment
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 26 Nov 2020 18:00:45 +0100 |
parents | 852d0b7817ce |
children |
rev | line source |
---|---|
77
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /** |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * \page faq FAQ |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * \tableofcontents |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * # Why not creating a game engine? |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * Game engines are usually too generic, too complex and do too much things. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * Lots of them also use scripting language which require another learning curve |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * to be used. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * Molko's Adventure is a solo tactical 2D RPG and its core is especially |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * designed for that gameplay. Thus the code stay simple to understand and to |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * follow. Coupling a general purpose game engine with a game design is |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * sometimes more complicated than writing small code. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * However, game engines are still interesting for people who already know how |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 * to use them and feel confident with them. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 * # Why no prefix like "ma_" or "MA_"? |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 * See also question above. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 * The purpose of Molko's Adventure is not to provide a drop-in reusable library |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 * to create RPG games. It is highly coupled with the gameplay of the original |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 * game. Thus we wanted to keep the codebase extremely simple and minimalist |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 * without adding bunch of genericity. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 * The core API isn't meant to be installed system wide (possible, but not |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 * recommended), instead users are encouraged to copy the core code and to adapt |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 * to their gameplay. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 * A simple example: if someone wants to create a game and would like to allow |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 * only three playable entities at a time, it should simply edit appropriates |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 * structures and everything is adapted. Then, structures and array can stay |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 * static without dynamic allocations. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 * # Why C instead of <FOO>? |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 * C is an awesome language. It still has its place in the industry especially |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 * in low-level, kernel and game design. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 * Games are usually designed without OO in mind using simple procedural codes |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 * and lots of data. In C, writing code makes easier to understand what's |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 * happening under the hood without having to check if functions will generate |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 * dynamic allocations or not. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 * |
169
eb0a7ab71023
misc: extreme cleanup, closes #2506
David Demelier <markand@malikania.fr>
parents:
77
diff
changeset
|
47 * However, we also love modernity and as such, C11 is the minimal requirement |
77
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 * to build and run Molko's Adventure. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 * \note The code does not make any assumption about the platform it runs, it |
169
eb0a7ab71023
misc: extreme cleanup, closes #2506
David Demelier <markand@malikania.fr>
parents:
77
diff
changeset
|
51 * expects to have a fully conformant C11 implementation. Microsoft MSVC |
77
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 * is known to **not** support this C version. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 * # Can I make a MMORPG with that? |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 * Not easily. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 * This core API is really tied to a unique solo RPG adventure and therefore it |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 * does not separate logic from rendering. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 * Also, note that creating a server-client game is really different in terms of |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 * architecture than a local solo game. Most of the logic part is done server |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 * side and requires much more code to analyze to avoid cheats, lag, |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 * synchronisation and many other stuff than a local game does not require. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 * |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 * There are no plans to create a network oriented core API anytime soon. |
837ef1d387b4
doc: improve documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 */ |