buildat/design.txt
Perttu Ahola 8ad7d977da doc
2014-09-17 02:21:56 +03:00

45 lines
1.1 KiB
Plaintext

Buildat
=======
A Minecraft clone with vast extendability.
License: MIT
Client
------
Built using Polycode C++.
Module code is transfered from the server and run in a safe Lua sandbox.
Server
------
Built using C++ with most functionality in RCC++.
C++ modules can interface with each other by using Cereal.
Module structure
----------------
module
|-- client
| `-- init.lua << Client-side code
|-- server
| `-- init.cpp << Server-side code
|-- include
| `-- api.h << Structures for interfacing between modules
`-- data
`-- media.png << Data files
Module behavior
---------------
All client scripts are automatically sent to the client. Everything else is
handled by the module implementation.
Modules cannot be unloaded at runtime. Module unload and reload can be simulated
by restarting the server and clients automatically while keeping connections
open. This requires POLYCODE_CORE to be recreated.
The first module to be loaded is called __loader. It loads all other modules.
C++ modules can use the core/ and interface/ headers. Everything else is
considered unstable.