Anvilsmith
July 20th, 2008, 12:17 PM
Caveat: I am more or less new to programming; some of what I say may sound nonsensical or silly. If it does, please point it out.
My goal for this summer is to write a dynamic prose generator (in C++), which may later be incorporated into MUDs and text adventures. To my knowledge, nothing of this sort has been written so far. I hope to gain solid knowledge of open source programming (i.e. writing highly readable code) on this project, as well as some much-needed knowledge on Linux. Since I know next to nothing about Linux right now, I thought I'd bring up some questions regarding...
...The actual programming:
* Would it be quicker to learn the Linux API, or should I use GTK or some other multi-platform API? My concern for now is not portability, but completing the project as quickly as possible. I have never used an API before, apart from reading a bit of Charles Petzold's Programming Windows.
* Can you recommend a concise, exhaustive, bottom-up tutorial for any of the above APIs? For reference, I consider www.cplusplus.com/doc/tutorial/ to be an excellent tutorial.
* On a purely aesthetic note, where is it more "kosher" to put the project files? /src or /home/[...]/my_project?
...Making the package:
* Would it take long (i.e. more than 8 hours) to learn how to manually create a package? Also, how can I ensure that the package will be compatible with standard Linux distributions?
* Where should the package install which file? I assume the program's binary executable would go into /usr/bin or perhaps /usr/local/bin (or is that a temporary directory for installation-related files?) or /usr/bin/[program name], documentation files might go into /usr/man, but what about data files like savegames? /var/run ?
(I'll note that the Linux directory structure looks grossly obfuscated, with files for the same application thrown all over the place. Is there any reason for this, apart from the convenience of not having to set permissions for each file? Also, how can I quickly determine which files "relate" to a certain binary or belong in the same package?)
There are undoubtedly a lot of other things I'll need to know before I could ever get a linux application off the ground. The Linux Knowledge Base and Tutorial (http://www.linux-tutorial.info/index.php) seems useful, though it was written way back in 2003. If anyone here ever read it, I'd like to know whether it's still up-to-date.
My goal for this summer is to write a dynamic prose generator (in C++), which may later be incorporated into MUDs and text adventures. To my knowledge, nothing of this sort has been written so far. I hope to gain solid knowledge of open source programming (i.e. writing highly readable code) on this project, as well as some much-needed knowledge on Linux. Since I know next to nothing about Linux right now, I thought I'd bring up some questions regarding...
...The actual programming:
* Would it be quicker to learn the Linux API, or should I use GTK or some other multi-platform API? My concern for now is not portability, but completing the project as quickly as possible. I have never used an API before, apart from reading a bit of Charles Petzold's Programming Windows.
* Can you recommend a concise, exhaustive, bottom-up tutorial for any of the above APIs? For reference, I consider www.cplusplus.com/doc/tutorial/ to be an excellent tutorial.
* On a purely aesthetic note, where is it more "kosher" to put the project files? /src or /home/[...]/my_project?
...Making the package:
* Would it take long (i.e. more than 8 hours) to learn how to manually create a package? Also, how can I ensure that the package will be compatible with standard Linux distributions?
* Where should the package install which file? I assume the program's binary executable would go into /usr/bin or perhaps /usr/local/bin (or is that a temporary directory for installation-related files?) or /usr/bin/[program name], documentation files might go into /usr/man, but what about data files like savegames? /var/run ?
(I'll note that the Linux directory structure looks grossly obfuscated, with files for the same application thrown all over the place. Is there any reason for this, apart from the convenience of not having to set permissions for each file? Also, how can I quickly determine which files "relate" to a certain binary or belong in the same package?)
There are undoubtedly a lot of other things I'll need to know before I could ever get a linux application off the ground. The Linux Knowledge Base and Tutorial (http://www.linux-tutorial.info/index.php) seems useful, though it was written way back in 2003. If anyone here ever read it, I'd like to know whether it's still up-to-date.