Andruha on 28/4/2005 at 19:38
Quote Posted by dracflamloc
"some programming" :erg: .. For someone who is donating their time, thats a lot of programming.
I started this thread not to underrate anybody and I respect work of other people. "some programming" was in my
reaction to ZylonBane. Moreover, it was refering to my own implementation idea, which, as I stated myself, took a couple of minutes to come up with and it "sucked" ;). By no means was it a general statement. One can choose to look for my similar phrases and most probably will suceed as there's plenty of text to brush in this thread and I am not a robot to check all words I type (words of a foreign language, by the way). Or one can choose to skip the noise and focus on the message itself.
To answer the rest of your post, I will:
- skip RSS, multiplatform development, C++, sharing of code, modularity, as these things are either features that can be added or are implementation oriented, which is not what conceptual design is about.
- clarify unification, standards and interoperability in the context of a mod loader:
Unification It was meant as opposite to going with different loaders for different target applications or versions of the same mods. Now, let's forget about this word.
InteroperabilityThere are two primary entities - a loader application and a mod, so interoperability boils down to how to make sure that any loader works 100% with any mod (regardless if the latter is in rar or zip, or 7zip format; or the latter's briefing is HTML or RFT). Interoperability is achieved via customization system (e.g. plugins) and relies on standards.
StandardsApply mostly to mods (more presisely the metadata about mods).
Loader
s come and go. A mod stays. It is all about a mod. Therefore standards should be chosen with a mod in mind (not with one of possibly many loaders).
Finally, a Loader is a closed system and nobody should care about how it works as long it performs its function. Therefore, there is nothing in the proposed design that dictates developers how to implement a loader; its (design) purpose is to help them focus on essentials and to make them aware about areas that might affect interoperability and standards. Things like compression formats, C# or C++, RTF or HTML, are not important, just details.
Quote:
I invite anyone who wishes to help me in my programming of FleshLoader or any loader, to find the process needed to launch a T3 FM with custom scripts, backed up saves, etc.
Here are some suggestions:In the diagram, I intentionally separated the syncronization tool (further on, SyncT) from the profile (syncronization description). Here is why:
- it makes function of SyncT simple and clear: copy/delete/verify files; it works with source and target file; it should read source->target description from external file.
- keep profiles human readable (so that knowledge about T3 installation idiocincrasies will be available to others; also makes profile debugging easy)
- syncronization description should not be in the form of instructions for your SyncT (e.g.: cp X Y), just a description of a task (e.g., src: X; tgt: Y; fun: copy)
- think about hierarchical profile (optional)
The above makes you independent from the actual profile; it allows you work on SyncT and mod community on profile in parallel. It also will make very easy to extend FleshLoader to support T1, T2, TDM - they will be just different profiles, no coding will be required. Readability is a big bonus too.
Another suggestion: please consider making SyncT work (copy, delete, etc..) with file objects rather them deligating those operations to OS. Here's why:
1) it will allow adding plugins in the future. A pluggin can add support e.g. for remote files, compressed files, etc.. without changing the Loader.
2) file object interface is well documented, quete universal and easy to work with.
Dracflamloc, I really value your presence in this thread as you are working on the new loader application. I hope that the heated discussion has left you open to suggestions from me.
Andruha on 28/4/2005 at 21:51
Quote Posted by dracflamloc
Okay.
I'm open.
But I don't see my part of these conversations as "heated".
Great. I myself read all the posts and my temperature did go up ;)
Back to loader:
Do not expect to gain any specifications from the diagram, just insights.
Speaking of dealing with zip format, I would suggest already start thinking about a doing it via a plugin. SyncT should not be aware that it deals with a zip file - it should treat it as a normal folder, therefore SyncT should not interact with it ditectly, but via an intermediate - plugin system (let's call it PS for now). PS receieves a command from SyncT (e.g. copy path1/mod_x.zip/briefing.txt path2/mod_x/briefing.txt) and parces it for key words (in this case, zip), and delegates the command to zip plugin.
Sorry, for messy explanations, but we don't even have settled names yet :)