Showing posts with label dependancy hell. Show all posts
Showing posts with label dependancy hell. Show all posts

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.

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.

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.

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.

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.