Have to start being more leGit about this hehe :3
This commit is contained in:
7
docs/README.org
Normal file
7
docs/README.org
Normal file
@@ -0,0 +1,7 @@
|
||||
#+title: Buddho Game Engine
|
||||
|
||||
* Index
|
||||
** [[./concepts.org][Concepts]]
|
||||
Overview of concepts used in the engine, with links to more detailed descriptions.
|
||||
** [[./systems.org][Subsystems]]
|
||||
An index of different components that together form the engine.
|
18
docs/concepts.org
Normal file
18
docs/concepts.org
Normal file
@@ -0,0 +1,18 @@
|
||||
#+title: Concepts
|
||||
|
||||
* [[./dhamma.org][Dhamma]]
|
||||
A dhamma is anything that can "occur"; think of them as encompassing "functions", "events", "systems" and the like.
|
||||
** Fields
|
||||
A dhamma has the following fields:
|
||||
- =name=: This is the /type/ of the dhamma; it encodes the /meaning/ of the dhamma, meaning /what actually happens/ when this dhamma occurs.
|
||||
- =data=: Data held by the dhamma; a generic field.
|
||||
- =meta=: Metadata for the dhamma; this is used when we need to encode data about /how a dhamma is executed/, whereas the
|
||||
- =data=: field encodes what a dhamma is executed /on/.
|
||||
- =asp-props=: /Aspect properties/; these are used to encode which dhamma are /aspects of/ this dhamma. Think of them as categories; one dhamma keeps a list of its aspect properties, and other dhammas track which aspect properties they "subscribe" to. See also [[file:./dhamma.org::*Aspects][Aspects]].
|
||||
- =is-aspect-of?=: A function which takes as arguments this very =dhamma= and a =parent= and returns whether this =dhamma= should be considered an aspect of =parent=. This is used to apply more fine-grained filtering of aspects /after/ checking aspect properties.
|
||||
- =transient=: A boolean that is true when a dhamma should occur as an aspect only once, and false when it should keep reoccurring until it is explicitly removed.
|
||||
** Implementation
|
||||
A dhamma's /implementation/ is a function which takes itself and optionally a =parent= and actually executes whichever action the dhamma stands for.
|
||||
** Aspects
|
||||
Aspects are dhamma; when we say a dhamma is an aspect of another, we mean that the /aspect/ dhamma occurs in the context of a /parent/ dhamma, occurring after the implementation of the parent and with access to the data of its parent.
|
||||
Aspects serve the role of allowing /composition/ of dhamma. Allowing this composition to happen dynamically is a core feature of the engine.
|
4
docs/dhamma.org
Normal file
4
docs/dhamma.org
Normal file
@@ -0,0 +1,4 @@
|
||||
#+title: Dhamma
|
||||
* Dhamma
|
||||
Dhamma are what "occurs". They encapsulate "things happening" in the engine. Thus within Buddho, we always think of execution, flow control, state change and so forth as happening /in the context of dhamma/. We do not use raw
|
||||
* Aspects
|
5
docs/systems.org
Normal file
5
docs/systems.org
Normal file
@@ -0,0 +1,5 @@
|
||||
#+title: Systems
|
||||
* State
|
||||
* Dhamma
|
||||
* Describe
|
||||
* Graphics
|
Reference in New Issue
Block a user