Newer
Older
Import / applications / HighwayDash / ports / Tools / entities.txt

Thoughts
--------

What entities are there:

  Types  (meta-data to describe them)

  Objects  (instances of types)

  Files  (static data)

  Arrays (of objects,  SoA, AoS)

  Algorithms

  Functions / Methods

  Levels (sets of files)

  Memory (heap, stack, code)

  Scripting


Gameloft had
  .rkn files and .rki files.
  The rkn files contain the metadata about types
  The rki files are instances of these


Consider types as having no functions
 - So these are purely memory layout - padding, member ordering etc.
 - Can map in to memory from file if fixed sizes etc
 - Can script too
 - Can re-arrange member variable order if use getters/setters and hide impl with generated code
 - perhaps idea is to declare a struct in a declarative way and have code gen to make
    the getters and setters and a pimpl and the meta data to describe it
 - perhaps can code gen for SoA and AoS variants depending on declaration of it
 - so it is by default that any type can have an array of them created

Consider types as static - the types that exist are fixed in place at compile time
can't be changed at runtime (some systems might be able to do this, but do we need it?)

Objects can be created dynamically.

Functions can be script or C++ functions, they can call each other, and understand all the registered types