annotate README.md @ 545:27303e9402de

core: introduce mlk_alloc_expand
author David Demelier <markand@malikania.fr>
date Sun, 05 Mar 2023 22:14:02 +0100
parents e1fa1b867281
children e070fdcc592b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
366
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
1 Molko's Engine
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
2 ==============
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
3
414
6947c1fefe5c misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
4 The Molko's Engine is a C and framework to write 2D RPG games in a portable
6947c1fefe5c misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
5 manner. It is designed in mind to be flexible, simple and convenient to use.
366
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
6
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
7 It has the following features:
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
8
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
9 - Written in C99,
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
10 - Portable (Windows, macOS and UNIX likes systems),
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
11 - Simple, flexible,
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
12 - Well documented,
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
13 - Virtual file system support.
447
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
14 - Usable in both C or Javascript.
366
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
15 - Can embed resources using `mlk-bcc`.
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
16
447
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
17 Javascript quick startup
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
18 ------------------------
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
19
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
20 The `mlk-run` executable exposes the Javascript API and start a game from a
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
21 directory or a .mlk file (which is a .zip file with a .mlk extension).
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
22
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
23 Hello world in Javascript:
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
24
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
25 mkdir superluigi
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
26
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
27 Add the following content in superluigi/main.js:
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
28
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
29 ```js
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
30 var w = new Window("Super Luigi, number one", 640, 480);
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
31 var run = true;
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
32
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
33 while (run) {
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
34 var ev;
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
35
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
36 while ((ev = Event.poll())) {
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
37 switch (ev.type) {
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
38 case Event.Type.QUIT:
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
39 run = false;
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
40 break;
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
41 default:
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
42 break;
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
43 }
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
44
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
45 Painter.color = 0xFFFFFFFF;
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
46 Painter.clear();
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
47 Painter.present();
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
48 }
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
49 }
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
50 ```
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
51
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
52 Finally run the game using `mlk-run superluigi`.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
53
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
54 You can also create a .zip file with a .mlk extension and `mlk-run` will be able
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
55 to use content from it.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
56
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
57 cd superluigi
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
58 zip -r ../superluigi.mlk .
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
59 cd ..
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
60 mlk-run superluigi.mlk
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents: 416
diff changeset
61
366
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
62 Documentation
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
63 -------------
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
64
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
65 Use `mkdocs serve` inside the **doc** directory to see the user and developer
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
66 documentation.
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 Author
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 ------
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
366
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
71 Molko's Engine was written by David Demelier <markand@malikania.fr>.