My lead programmer decided he would prefer to work on the client user interface, so I decided I would take the other track, the map editor. The map editor is ancient, and uses the X11 Athena Widget set, otherwise lovingly known as Xaw. For those who do not know, X11 has a series of books, volumes 0-8. We have most of the books, but apparently there were two additions of Volume 4, xtoolkitintrinsics. There was the "standard" or rather not so standard edition, last published in 1993, using the Athena Widget set, and the the Motif edition. As you should all know, Motif itself is non-free software. Apparently there are other editions of motif, but that is besides the point, because the ancient crossedit crossfire map editor was written using Athena Widgets, so I wanted to understand how it was put together.
While doing a total re-write using gtk or something would probably be a good idea. I have never used gtk, so I would have no idea where to start, while the wogedit map-editor, is already part way writen. It just needs some tweaking to display tiles properly. So many games do not have map editors even when they should, that I feel a poorly written editor with a bad user interface is much better than none at all.
So, anyway, I spent all of yesterday searching the internet for clues as to where the example problems for the Standard Volume Four, X11 book could be found. I already managed to get a pdf edition (uploaded by the publisher) of the book here. http://www.archive.org/details/xtoolkitintrinsic04nyemiss
The more into the book I read, the more I wanted the example problems already coded for me so I would not have to waste hours of time typing them in wrong. That is actually what took the whole day. I asked on Freenode, the xorg chat channel. Someone commented that they hoped that the code examples were lost along with all interest in that ancient version of ancient X11 widgets.
Unfortunately, it is too late for that, I have an X11 Athena Widget obsession, and I managed to find the example code right here. http://examples.oreilly.com/9781565920132/
Be sure to download xtprog4.tar.Z for the Athena Widget book examples. You can unpack it using the regular tar command.
Admittedly, I wonder sometimes what the Goddess Athena thinks of having her name tacked to an obsolete X11 Widget set.
Wograld is a free-software, 2d, multi-player online roleplaying game based currently on the crossfire engine. Development is, unfortunately, done by developers, supernatural entities that seem to posses software users and force them to hack away writing software code for hours on end.
Showing posts with label libraries. Show all posts
Showing posts with label libraries. Show all posts
Wednesday, April 13, 2011
Tuesday, September 14, 2010
Learning C++
I decided to take some time away from just working on the project to learn C++. If you have been reading my prior posts, you know how much I hate Dependency hunt. Dependency hunt, for those newbies who do not know, is when you run all over to try to install library dependencies that are needed for some user applications in GNU/linux.
I am on the 7th week of it now. We are on chapter 5, having started on chapter 0. After chapter 2, it got hard, so people wanted a week to catch up. I just read chapter 5 today, but have not tried to do any of the exercises yet. I really have no idea how to do them. I will probably go around playing with the code and changing various things before I understand what is going. I still don't understand some things about chapter 4 (or even 3 for that matter) But I want to move forward and learn new things. If I know enough C++, theoretically, I could fork every project that requires SDL and other stupid C++ libraries so they have no dependencies and people can just compile them from source without errors. I could do this by renaming files in the C++ SDL libraries and in the code so that I could find the right version of SDL to make it work. Then I could include this in the code, making it part of the code body rather than a separate dependency that breaks everything else if you decide to upgrade it.
I know for a fact that later versions of SDL are buggy and incompatible with some code. I do not think you should rely on consistency in libraries done by some one who probably doesn't even know, nor care about your project.
I am on the 7th week of it now. We are on chapter 5, having started on chapter 0. After chapter 2, it got hard, so people wanted a week to catch up. I just read chapter 5 today, but have not tried to do any of the exercises yet. I really have no idea how to do them. I will probably go around playing with the code and changing various things before I understand what is going. I still don't understand some things about chapter 4 (or even 3 for that matter) But I want to move forward and learn new things. If I know enough C++, theoretically, I could fork every project that requires SDL and other stupid C++ libraries so they have no dependencies and people can just compile them from source without errors. I could do this by renaming files in the C++ SDL libraries and in the code so that I could find the right version of SDL to make it work. Then I could include this in the code, making it part of the code body rather than a separate dependency that breaks everything else if you decide to upgrade it.
I know for a fact that later versions of SDL are buggy and incompatible with some code. I do not think you should rely on consistency in libraries done by some one who probably doesn't even know, nor care about your project.
Monday, March 1, 2010
Evil Microsoft Windows Development
Yesterday I was thinking about something. I was wondering if I might get more people involved with a windows client and server. I don't have any windows later than 98SE though to test anything on. I was wondering if someone who already has windows (I would not want anyone buying or pirating ms windows just for this if they don't already have it, since you can just test and run the program on its native linux/unix anyway.) I found out about cygwin. http://www.cygwin.com/ How, supposevily, you can take any open source application written for unix and compile and run it on windows. I wonder how the performance compares to that of Linux. I have no idea (Linux performance is not what it should be either, but that is because we need to find a more efficent way to draw the tiles with out getting into requiring 3d drivers or dependency hunt, I am thinking either lower res graphics or if someone could redo the x11 client code.
The other thing I keep wondering is what do people really prefer in a user interface. I started to think people might like drag and drop, but most serious gamers just use macros anyway when they can get away with it, as drag and drop is too time consuming, so in that sense, maybe the User Interface is good how it is.
The other thing I keep wondering is what do people really prefer in a user interface. I started to think people might like drag and drop, but most serious gamers just use macros anyway when they can get away with it, as drag and drop is too time consuming, so in that sense, maybe the User Interface is good how it is.
Labels:
crossplatform,
dependancy hell,
libraries,
user interface,
x11
Wednesday, December 30, 2009
Boost problem solved!
It seems I solved my problem from last night. One thing about linux is if you have too many things installed in the root directory (instead of the home directory) there may not be enough room left to run the gui. In order to fix this problem, I logged into the console as root and deleted some libraries. When I installed this system, apparently I had not given enough room for the / partition.
I decided to delete guichan, a library I probably used for the Mana World that I never manged to compile, let alone run. Also I removed a bunch of libraries and documentation for MIT scheme. At one time, i thought it would be fun to go through the MIT course ware. Then I realized that I was not interested in pie in the sky projects and algorithms, but rather down to earth real code that compiles and runs. Sure, I need to know some algorithms, but if you are going to code, you might as well code in a useful language like C.
I also deleted the libraries for kopete, an ancient IM program that always told me I had exceeded the rate limit for icq. Once upon a time, it worked properly, but now it was just any annoying start up feature so I was just as glad to be rid of it.
Finally, I ran shutdown -r now in root mode. that shutdown and rebooted the computer so that I could log into the gui.
Its strange to say this, but I was worried I would have to reinstall linux and maybe accidently overwrite my home directory. Apparently, despite what the mean person in the freenode chat channel said when I gripped about the boost library and called it a piece of garbage, I do not need to go back to windows.
I decided to delete guichan, a library I probably used for the Mana World that I never manged to compile, let alone run. Also I removed a bunch of libraries and documentation for MIT scheme. At one time, i thought it would be fun to go through the MIT course ware. Then I realized that I was not interested in pie in the sky projects and algorithms, but rather down to earth real code that compiles and runs. Sure, I need to know some algorithms, but if you are going to code, you might as well code in a useful language like C.
I also deleted the libraries for kopete, an ancient IM program that always told me I had exceeded the rate limit for icq. Once upon a time, it worked properly, but now it was just any annoying start up feature so I was just as glad to be rid of it.
Finally, I ran shutdown -r now in root mode. that shutdown and rebooted the computer so that I could log into the gui.
Its strange to say this, but I was worried I would have to reinstall linux and maybe accidently overwrite my home directory. Apparently, despite what the mean person in the freenode chat channel said when I gripped about the boost library and called it a piece of garbage, I do not need to go back to windows.
Boost yourself to hell!
Yesterday I got the brilliant (no stupid) idea to try and install licq on my computer. For those who do not know, licq is an instant messageing application that uses the icq protocol. I have an ancient version of mandrake 10.0 on that computer. I figured I would install licq so that I could get in contact with some of my old friends from ultima online if they were still using icq (who uses icq these days? anyone?)
I figured that former Ultima Online players would be in a good position to help me develop this game because I would not have to spend hours upon hours explaining the game design to them. They already know for the most part what features it is supposed to have, so I do not have to go into detail about things like banking, dyeable clothing, skill based systems or most importantly, what features an mmorpg should have that most are lacking (things such as customizable housing and being able to leave items on the ground come to mind)
Anyway, after I installed the pre-requiste boost libraries needed to compile licq, I then went a head and installed licq. It seemed to work fine. I did not message anyone because there were few people on, and I was kind of tired anyway (yes, I have a massive contact list of practically every aquentence I ever had in UO.) I got my whole contact list, and yes, there appeared to be some people online as well. I was pleased, but at the same time disappointed that there were not more people to try and contact. Before I went to bed, I turned the computer off. When I went to boot it into Linux this afternoon, I was left with a terminal login screen an a failure to get the x11 server started. I could login as root (I forgot my user password lol) and look around directories and use commands, but some things just do not work very well in the command line, so I would like my gui back.
The ultimate lesson that can be learned from this is libraries suck, dependency hunt sucks, even if you thought it works, it can just be broke and you won't find out until you reboot your computer. I wonder if I will be able to fix the issue before I die. Also the boost documentation was terriable. I did hardly know what I was doing half the time, and I had to spent a lot more time reading documentation to install it than I would have liked. I feel that the free software community does not appreciate good writers and would not know how to write documentation for stupid libraries (that they should not have anyway) if it bit them.
I figured that former Ultima Online players would be in a good position to help me develop this game because I would not have to spend hours upon hours explaining the game design to them. They already know for the most part what features it is supposed to have, so I do not have to go into detail about things like banking, dyeable clothing, skill based systems or most importantly, what features an mmorpg should have that most are lacking (things such as customizable housing and being able to leave items on the ground come to mind)
Anyway, after I installed the pre-requiste boost libraries needed to compile licq, I then went a head and installed licq. It seemed to work fine. I did not message anyone because there were few people on, and I was kind of tired anyway (yes, I have a massive contact list of practically every aquentence I ever had in UO.) I got my whole contact list, and yes, there appeared to be some people online as well. I was pleased, but at the same time disappointed that there were not more people to try and contact. Before I went to bed, I turned the computer off. When I went to boot it into Linux this afternoon, I was left with a terminal login screen an a failure to get the x11 server started. I could login as root (I forgot my user password lol) and look around directories and use commands, but some things just do not work very well in the command line, so I would like my gui back.
The ultimate lesson that can be learned from this is libraries suck, dependency hunt sucks, even if you thought it works, it can just be broke and you won't find out until you reboot your computer. I wonder if I will be able to fix the issue before I die. Also the boost documentation was terriable. I did hardly know what I was doing half the time, and I had to spent a lot more time reading documentation to install it than I would have liked. I feel that the free software community does not appreciate good writers and would not know how to write documentation for stupid libraries (that they should not have anyway) if it bit them.
Tuesday, March 24, 2009
Libre Planet Conference
This past weekend I went to the Libre Planet Conference. It was great. I finally discussed some of the issues the project was having with a different set of people and got some different input from what I had heard before.
I found out that the main reason our lead programmer did not want to continue the project is because he could not get x11 to display the stats in the window and I kept bugging him about it. X11 is something easier said than done, and I guess we will have to take a look at a manual instead of just guessing. The other alternative is to try using some other libraries. I am not really opposed to using libraries per ce, but there are a couple things I am really opposed to having in this project. These are, having users do dependency hunting to get the game to install, and needing to use things like proprietary graphics drivers to get Open GL to work. While I might be ok with allowing something like sdl to be separate from the game, I would not be ok with any library that is not a stable version being a separate download, because else a new version of it could break the entire game, making it uncompileable. If there is any doubt that it would lead to dependency hunt instead of a working project, I don't really want it in the game. It is always easier to just include the whole thing, even if it makes the download bigger rather than force the user to grapple with things they should not have to. Worse yet, library dependencies can be so bad that even developers have trouble getting the game to work.
Opinions varied widely as to what libraries were good to use instead of just plain old x11, I hear everything under the sun, from QT, to GTK, to open gl (although I would certainly not take the last suggestion, no matter how fast it would make the game, it just causes all those proprietary graphics driver headaches for enough users at this point that I feel it is not worthwhile.)
I heard a prominent programmer say that SDL is slow, but then again the highly successful (relatively speaking) battle for wesnoth project uses SDL, so it can't be all that bad.
Another way to eliminate dependency hunt would be to get the project into the distros, (espeacialy once we get it a bit more polished) I've heard that it can be relativly hard to get even completed games into distrobutions such as Debian, Fedora and Ubuntu though.
I found out that the main reason our lead programmer did not want to continue the project is because he could not get x11 to display the stats in the window and I kept bugging him about it. X11 is something easier said than done, and I guess we will have to take a look at a manual instead of just guessing. The other alternative is to try using some other libraries. I am not really opposed to using libraries per ce, but there are a couple things I am really opposed to having in this project. These are, having users do dependency hunting to get the game to install, and needing to use things like proprietary graphics drivers to get Open GL to work. While I might be ok with allowing something like sdl to be separate from the game, I would not be ok with any library that is not a stable version being a separate download, because else a new version of it could break the entire game, making it uncompileable. If there is any doubt that it would lead to dependency hunt instead of a working project, I don't really want it in the game. It is always easier to just include the whole thing, even if it makes the download bigger rather than force the user to grapple with things they should not have to. Worse yet, library dependencies can be so bad that even developers have trouble getting the game to work.
Opinions varied widely as to what libraries were good to use instead of just plain old x11, I hear everything under the sun, from QT, to GTK, to open gl (although I would certainly not take the last suggestion, no matter how fast it would make the game, it just causes all those proprietary graphics driver headaches for enough users at this point that I feel it is not worthwhile.)
I heard a prominent programmer say that SDL is slow, but then again the highly successful (relatively speaking) battle for wesnoth project uses SDL, so it can't be all that bad.
Another way to eliminate dependency hunt would be to get the project into the distros, (espeacialy once we get it a bit more polished) I've heard that it can be relativly hard to get even completed games into distrobutions such as Debian, Fedora and Ubuntu though.
Friday, February 20, 2009
Why I hate dependancy hell
I posted a message on the wesnoth forums today advertising for a new lead programmer. They seemed to be really keen on all those libraries that, for the most part, make the game difficult to compile. Even when you do manage to compile and run it, it is not easy for the newbies.
The current lead programmer and I discussed this matter. Even though he is no longer contributing much to the project, he and I agree that games should not be harder to install than the dos emulator or wine. This is what gives unix and linux gaming such a poor reputation. I truely do not understand the rest of the impractical community. It is bad enough that microsoft windblows dominated the desktop for over a decade. It is much worse that they continue to push out proprietary software and limit what computers can do. In fact, Windows Vista was so bad that many popular computer manufacturers offered a downgrade to XP. We shouldn't give them the gaming advantage, particularly when dealing with games that rely primarly on gameplay, rather than graphics, since we don't have the proprietary video card driver excuse.
Furthermore, I do not feel that a language a programmer would like to learn should determine the game mechanics or the direction that the game should go. It is one thing if the progammer is actually a person who enjoys playing computer games and creates a game that he or she will enjoy playing. It is another to create something that is tedious and boring to play for everyone including the original creator.
The current lead programmer and I discussed this matter. Even though he is no longer contributing much to the project, he and I agree that games should not be harder to install than the dos emulator or wine. This is what gives unix and linux gaming such a poor reputation. I truely do not understand the rest of the impractical community. It is bad enough that microsoft windblows dominated the desktop for over a decade. It is much worse that they continue to push out proprietary software and limit what computers can do. In fact, Windows Vista was so bad that many popular computer manufacturers offered a downgrade to XP. We shouldn't give them the gaming advantage, particularly when dealing with games that rely primarly on gameplay, rather than graphics, since we don't have the proprietary video card driver excuse.
Furthermore, I do not feel that a language a programmer would like to learn should determine the game mechanics or the direction that the game should go. It is one thing if the progammer is actually a person who enjoys playing computer games and creates a game that he or she will enjoy playing. It is another to create something that is tedious and boring to play for everyone including the original creator.
Subscribe to:
Posts (Atom)