Separating engine from other and sources from derivatives

Registered by Kiri

Increase separation along lines which aid maintainability and sustainability.
3 separation boundaries are presented only with respect to storage location.

    Current situation:

Users (visual novels (VN)) of the engine intermingle their resources in the same directories with the engine and ship the engine with the VN. Sometimes they even bundle python. The result is that there will be a version of RenPy installed for each VN and multiple python interpreters installed.

Derivatives of sources are in the same directory as the source. A compiled python file is in the same directory as the source code.

    Desirable Future Implementation:

RenPy would facilitate separation of the RenPy engine from VNs into different directories or packages. This could be a combination of changes in implementation and documentation. Benefits include being able to use the VN with an improved RenPy engine; improved management of bug reporting due to fewer versions of RenPy in use on a system ; reduced bandwidth and storage usage; reduction or elimination of need for separate VN archives for different OS platfroms (GNU,Mac,MS).

Derivatives would be separated from their sources. Examples of source and derivative include:

Python source code , Python object (byte) code
Documentation in source code , documents generated from extracted comments
Lossless audio for editing , lossy compressed audio for most shipped packages
High resolution lossless compressed images for editing , lossy compressed images

Benefits of separating derivatives out from sources include:
improved ease of identification of a file as source or derivative ;
easier handling such as with version control or erasure of derivatives.

A possible third separation could be support for multiple versions of RenPy simultaneously installed.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.