[xsrcg-devel] Program Design Updates
Status: Planning
Brought to you by:
murphymacleod
From: Adam B. <co...@di...> - 2004-06-16 06:55:39
|
Okay, Jesse and I had a pretty long talk this evening on IRC. Hopefully we can all three get together there soon. Max, you might let us know what time is good for you locally, since you're the odd one out, and hopefully Jesse and I can try and be around at that time...just a thought. On to the business portion now. We talked about a lot of stuff and eventually got into some good ideas on how to approach the program design. Both from a cross-platform standpoint and from a general design standpoint. We seem to agree that the best way to do this would be to break away all of the back-end work into a separate library. There are several key advantages that'll get into below and neither of us see any real drawbacks to this design. Now, it might seem overly long, but I'm listing this stuff for three reasons. First, to catch you up on where Jesse and I are in our thinking. Second, to sort of distill the conversation and have a reference for emails while we can't IRC. And third, to have a copy of these reasons listed for archival purposes. First, speed. By breaking the guts of the program into a self contained library we can write it in pure C and do it with a minimal of fuss. This will give the workhorse part of the program a good boost in speed and efficiency. Second, portability. This seems kind of obvious. The library would be written in C and could be compiled under multiple platforms. We or other people could then take the library and write an interface (GUI or not even) on top of the library to perform tasks in other environments and other operating systems. This will lend well to an OSX/Unix/Windows hybrid. The OS X stuff will be able to stay Cocoa and will be native, while the other operating system would benefit from being able to have native support as well. Obviously Windows support isn't really a prime focus, but if it becomes an issue this approach will make it easy to address. In addition, other platforms such as Palm and other handhelds could conceivably take advantage of the library. Third, it will aid development of our primary applications. By breaking away the library we can work on the library code separate from the GUI code. Thus development of one won't be sacrificed to development of the other. We can have a bare bones skeleton of the library in place quickly for the GUI to interface with while it's developed and the library could use simple text based checks while it's being worked on. Also, once the code of one part is in place, it won't be as reliant on the other. Fourth, flexibility. By breaking the workhorse code away into a library it gives us a huge amount of flexibility as to what we want to do with the code once our basic goals are met. Some ideas were presented in the portability section, but conceivably we could do quite a bit with it, as well as allowing other people to build upon the library for their own needs, if they want to pursue something we don't have the time, resources, or inclination to pursue. Which could include a Windows program or any number of things. Fifth, expandability. Once the basic library is set, which will include the basics of handling a character and such we'll be able to expand on that. However, we won't have to add it in the same library or in the same piece of code. We can avoid unnecessary bloat by adding further features into additional libraries. Things such as Cyberdeck creation, gun creation, spell creation, vehicle creation, etc. can all be added on an as needed basis into any program by keeping things in seperate self-contained libraries. Now, a lot of that seems to address issues that don't concern us at the present moment, but that's the final reason to be thinking about it this way. It gives us a program design that's flexible to just about any needs in the future. Alrighty, there's a good list of basically the arguments we came down to for the use of this design. We can't really think of any drawbacks, so if there's anything that comes to mind with you Max let us know. Also, if you want to address anything feel free to let us have it. :-) Also, Jesse might feel free to add anything I left out, if I did. It's late, and it's time for me to get some sleep. Nighto! -- Adam Brown co...@di... |