Showing posts with label x11. Show all posts
Showing posts with label x11. Show all posts

Thursday, July 18, 2013

Map Editor Progress

I don't know if you are aware of this, but we are working on gridarta now. That means modifying gridarta so that it works with wograld, and not just crossfire and a couple other games derived from the crossfire source code.

Gridarta is the new map editor written in Java.  It is much nicer than the old wogedit x11 Athena widget editor that came with the server.  Furthermore, it will be able to run under any operating system.  So you won't be stuck using Linux or another Unix system to run it.

We currently have it in the cvs under java editor and intend to submit a patch to Gridarta once we have all the folders straightened out.  The current build would break the other projects, and it has a few other bugs, but it does work, so if you were dying to make wograld maps you can now do so. 

One of the major bugs is the collected arches don't work.  There are also a few display problems when using certain functions. You can import archtypes for the the wograld folder and edit maps now, however.

I haven't been doing much coding on it myself, just testing it and continuing to submit new artwork to wograld.  The last commit I did, was the skeleton, I think. 

Saturday, June 2, 2012

What's my name? Java Development

For the past six months or so, I have just basically been trying to learn to code in Java. I have done the occasional upload of artwork to sourceforge as well. But mostly I have decided to focus on learning Java really well so I can modify the new crossfire java client enough to work with the wograld server. For those who don't know, Wograld originally forked from the crossfire code. Since then the projects have gone in different directions. Crossfire has the same bad game play and artwork and while fixing some bugs, while wograld fixed some ugly artwork and game play while adding new bugs and keeping only the awful messed up x11 client. That is the brutally honest assessment anyway. I understand that user interface developers are the best of the best in the world, and that you could search endlessly to find one who can make such a thing. While I can do the basic hello world, and have been learning some object oriented and graphical user interface, my knowledge isn't quite up to the level to comprehend the entirety of the crossfire jxclient code base yet.

Thursday, May 5, 2011

Who's Fault? Segfault

Sometimes I just get so frustrated with this project. I have been looking at the segfaults and trying to find out what is causing them. Just because I know what some x11 functions do, does not mean I have figured out how to fix the segfault errors. serpentshard fixed some of the other crash bugs, but the editor still looks as awful as ever. We never managed to change it so that it would allow you to select the proper area on the screen. The areas you select and input tiles into are still from the old maps. So, although it displays the new tile sets, when you click on them, it is mapped to the old way that things used to be arranged. I don't know how to describe it exactly. So, basically, it looks okay, but it acts like the tiles are still the old 32X32 square tiles.


Well, actually, if you want to see, just download the server with the map editor, wogedit from today's date or a bit earlier and see what I am complaining about her on the blog. If we could have fixed the tiles to begin with, we would not have this problem. I don't know why fixing it in the map editor became so hard. It just did.
I am not sure if the any of the segfaults are directly related to the major display user-interface problem that I described. Actually, one of them is not. If you left click in a box on the top of the editor. When you are over a tile, there is a top part of the editor that displays what is on the tile you clicked. (of course it maps the wrong tile) Then it segfaults on you. That is not nice. But it is what we are stuck with until we can figure out how to fix the code bugs. No one else wants to look at our buggy code, so we are stuck fixing it ourselves. I had thought that open source meant you could get better programmers to do you dirty work like fix major bugs, but I guess that is not how it works. Maybe my essay about keyboard monkeys seems a little naive now.

Wednesday, April 13, 2011

Athena Widget Internet Hunt

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.

Wednesday, March 9, 2011

Bug hunting, the continuing story of gdb

Finding the bugs and using gdb is not so simple as it first seemed. First I tried to compile all those files with the -g option, but even after asking around, I could not get it to give me the exact line in the program where I was getting the segfault error. The lead programmer had not made any progress with it for several months. He is useless now, it seems, so I will have to do something I have never done before, find the bugs in wogedit, and fix them myself.
I ran some x11 tutorials in gdb. They work great, and gdb gives me the line number when I introduce bugs (I quickly found a way to add a segmentation fault bug to the x11 tutorial) . So it seems I am stuck looking at flags in the makefiles. For some reason, the flag FFLAGS, a flag that is supposed to be for the fortran compiler is where my -g flag is showing up. I thought it would give me the c flags instead, but it does not seem to be doing that. I wonder why the makefiles include it. I know this project still has strange bits of code I have not looked at yet, but as far as I know, it does not use any fortran. I don't even think I have this F77 compiler installed on my machine. I don't know anyone who uses fortran for anything nowadays.
So, I am reading up on autoconf, automake, and make in hopes that I can solve this mystery before I die of old age.

Sunday, January 23, 2011

Squashed Bugs or Sqaushed Egos?

Every so often it gets tempting to start doing something else instead of the difficult Wograld project. Even to this day, I do not consider myself a very good programmer. Sure, I did some C programming, and I have written some text based programs, that were mostly made of other programs stuck together with the variables renamed. Unfortunately, when it comes to basic things like understanding how C reads and writes to files, as well as how to use the x11 libraries in the code, I still lack understanding. Instead, I have been relying heavily on my lead programmer, a man with an ego problem (his problem being a lack of ego rather than, like most programmers, having a giant ego) to fix the bugs.


He has been stuck for a long time on the editor bug.
The editor crashes when you use it and try to scroll down. Also, some of the tiles do not appear like they should, instead they blank out the other tiles when they try to appear on the screen. Instead of having my describe it to you, you should actually just download the latest cvs release, as well as the old crossfire maps, and test it out to see what I mean.
I would like to put the bug out there for others to solve, but I worry it will hurt his poor ego. I'm sure he does not want to read this blog where I talk about him and his problems with self esteem.

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.

Saturday, February 13, 2010

User Interface Progress

The new User interface code is being worked on, but still not ready to be committed to the cvs. It takes a while to figure out what all the things in x11 do to allow user interface options to occur. Serpentshard has already go the code going that opens and closes the buttons. It was suggested by several people to make the game take up the whole screen, and then have the windows pop over it rather than just having it take up 2/3 of the screen like I currently show in the mockup on the forums. I like this idea, but not being much of a programmer myself, I am not sure how that would be to implement. I know that some things are very hard to program.

One time I thought I would work on a voice recognition system for elderly people with dementia, so they would have a system that would talk to them and constantly answer the repetitive questions that they ask. But the software I tried would not even compile or run on my computer, so I realized I was in way over my head with the voice recognition thing. At least with this project I have been able to make progress.

Anyway, I am amazed at what the x11 libraries are capable of so far from what I have seen. I did not know it could do all that because I had not seen any prior programs written that had those features like that. The only thing missing so far is the custom widgets that I want to put in, such as my own buttons, and ideally my own scrollbars and containors. Basically, I want the custom artwork like most good looking games have that I am currently working on making now.

Sunday, January 24, 2010

Code Documentation

Several people have complained that the crossfire code (and as a result the Wograld project) has poorly documented code. I realized how the functions could be much worse than they are and how the comments could be much less descriptive. The variables could be renamed so what is named monster stats is actually something like player alchemy skill or some equality inappropriate and confusing variable names. I have been reading through several of the code files. I know it is going to take me a while to get through them all.

Also, I need to finish making the graphics for the various bits of the user interface, all tweleve buttons, chat log, quest log, combat log, character stats, character skills, looting, inventory, paperdoll, macros, options, automap, party. I am still not sure how to make the x11 give the program the look of my artist view of what the game should look like.

Friday, January 8, 2010

User Interface design

User interface design is, IMHO one of the most important parts of designing any sort of software. Without a user interface, the user can not use the software in any meaningful manner. For command line tools, just having a syntax and an explination of what the various options mean is fine. However, when we get into graphical programs written for end users rather than just sys admins, we need to think a bit differently about what is nesessary. For a long time, there were MUDS, or for the less informed, multi-user dungeons. Basically, these were text based chat games. You would enter a "room" like a chat room, but this room had a description of it. You would define your character, often very much like in a regular role-playing game, but, of course it was all in text, so when the blob hit you for 2 points, you did not see a blob, you did not see a screen, you did not see a character who was slowly losing health. Only the lines of text could tell you what was going on. You had to create the entire picture in your mind, a far more difficult feat than merely reading a book, because, after all, you also had to figure out what to do about the fact that this blob had just hit you for two points.

These early games, in addition to having to imagine the whole thing, also posed problems with the user interface. When you finally killed the blob (unfortunately it was more likely that it killed you), you had to figure out how to loot its corpse. There was no double clicking on that blob on the screen. There was no mouse over, it was all key board. Then you had to figure out how to equip items. There was no drag and drop with the mouse. Even worse, there was generally a lot of reading of instructions before you could get to the actual playing of the game, simply to figure out how you could get out of the forest dead end road. You could not simply move your mouse to an opening in the path, you had to try every direction, where you would get the ominous message "you cannot go that way." and frequently forget what paths you did try.

Today, we have progressed far beyond the need to have an IQ of 200 (and more importantly a lot of patience) to play an mmorpg. A complete newbie can be moving the mouse around, and in seconds, he or she has managed to move the character, equip items, and fight that first battle.

However, crossfire, and thus its fork, Wograld, has a teriable user interface as of right now. (although if you are reading the archieves hopefully this has changed). The windows for stats, inventory,looting (also knowing as walking over floor tiles), chat, and hitting things have taken up most of the screen space, leaving little to see the actual game. Wograld has already improved this over crossfire, giving more screen real estate to the actual game. Yet the problem is that much of these windows need to be closed, that is hidden, so that they are not in the way of playing the game most of the time, except when you need to see them. Also, additional windows need to be added, that can also be minimized into a button in the same fashion, things like buttons for macros, detailed listings of your stats and skills, a quest log, a party screen, a map, detailed chat logs, all need to be made in this manner.

We have started a discussion on the forums about the user interface design, go see it and participate here.

Discussion about Wograld user interface

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.

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.

Monday, May 4, 2009

Local and Global Chat

I received two more of the x11 books today, so now i have 0, 1, 2, 3, 4, 5, 6, and 8. I heard there wasn't a 7, I don't know if thats true though. Hopefully it will have all the information in it I need to begin programming x11. I am tired of using the buggy default C functions scanf and gets, I heard gets is really bad and you shouldn't use it, but that is no reason to pay any attention until something breaks. There is a problem with them that whenever you run a function before using them, it seems to skip over the input getting step. Hopefully I know enough C syntax to begin programming instead of leaving it entirely up to other people like I was doing before.

But what I really want to discuss is local and global chat. I was reading how in Darkfall there is no local chat. That really changes the social dynamic of the game, making it a less social game. Apparently, most of the chat goes on in guild chat. I think just having global chat is too overwhelming, espeacially since there are more than 8 people on the server. I think that if you are in a large crowd and everything you say has to be directed at every single person, it makes you just want to shut up about some things, because you can't really get to know people as individuals, just what ever they chose to broadcast about themselves. It is like if everyone just read blogs and no one ever used email or instant messageing, you wouldn't really get to know people because when you blog, unless you limit it to friends only, you are broadcasting to the whole internet. Maybe that isn't always such a good thing.

Sometimes things are too personal, and you don't want everyone to know them. For instance, on a pvp server, you don't want every pker in a large area to know that you and a couple other people are going to try and hunt kobolds. Then the pks will come and kill your small band, taking your loot away. It would be better if only you and the couple other people in the area heard it. Then you have a chance of having a successful hunt without the gank squad showing up. Now, there is the possibility that your other party member could try and pk you anyway, but that risk is much lower than if the whole server knows what you are up to.

One possiable way to deal with no local chat is to mostly only have guild chat. Guilds are groups that play together. They could find each
other outside of the game on places such as message forums and websites. The problem is that some players new to the game may not even know about the guilds, or even have an idea of what guild would most fit their play style until playing the game a bit. Also, players may fall out with guilds, or wish to form new ones while in game. If you don't have a local chat, it can be hard to get people to met up and decide if they like playing with the other players enough to want to join the guild. Furthermore, some things make sense to happen outside of guilds. It would be like if you only talked with your family members ever, except when you were blogging or something. It would get hard pretty quickly, since you might end up with the warped way of thinking that your family (or guild) has set up. Seeing other people and talking to them one vs one or on a small group basis can do more to change a persons mind about something rather than hearing everything broadcast over the global channels. I would not want all my personal problems broadcast on live tv for everyone to see. Some people might like that, but I doubt the majority of us would want that to go on.

Friday, April 24, 2009

The rest of the X11 books.

Apparently, I am still missing books 1, 6, 7 of the x11 series. The lead programmer just finished with his math grad school final, so he should be getting back into programming again. Hopefully books documenting x11 will make the whole coding project go much faster and not make us feel like we are digging with spoons again.

Why have I decided to go with x11, well for starters, it is what the whole thing is based on. I don't want to learn some half finished library only to find out that it doesn't do what I want anyway. At least I know what x11 does, windowing menus. So I should be able to get a better user interface with windows you can close so they don't take up the whole screen.

I asked him if he could find the books in pdf format. He mentioned that it is not free - licensed stuff for the x11 documentation. Apparently, x11 is such a huge thing that it needed a series of 8, no make that 9 books starting with book 0. I didn't realize that till now. No wonder no one else wanted to get into it and wanted to use useless stuff like python and Lua. Since the books are out of date though, they appear to be fairly cheap, although how well the whole thing will work is another matter, but x11 is supposed to be stable, just like the standard C library, one can hope anyway. The C you use today should be able to be compiled on tomarrows C compilers and not make a whole new update c.01 that is incompatable.

Saturday, April 18, 2009

Updates for the last couple weeks

I have been very bad about updateing this blog the past couple weeks. Our lead programmer did order the X11 books, and will begin workinng on a fix for the menu issue that is shown in the screenshots on the website. I have unfortunatly been busy with a lot of real life stuff that I will not bore you with here.

Suffice to say, I did go to take a look at an art school. Not that I think a lot of formal art training is nessesery to make this game look good or anything like that, but when you have degrees in something then you can thrown your weight around. There are a lot of people in this world that only care about prestiege and letters after your name. Not that any of those types would want to look at or work on this project anyway.

I have to say I was really impressed with the student works. They seem to understand, just like the developers behind World of Warcraft, that the concept is more even more important than the execution. You have to make it appealing. The old "lets try to make everything realism" is dead. You don't just make graphics "better and better" by increasing technical skill, machine hardware demands and realism, like some physics major would like to believe. What is ultimately more important, espeacially in games of this sort, is to communicate a certain feel to the player of the game. Artwork is supposed to evoke emotion, not just try to be a blind copy of something that has been done beforehand by someone else elsewhere.

Eventually, I do plan to have other artists on the project, the look and feel of this game is pretty easy to create for so that I think even a newbie could make good looking tiles. I'm not trying to overdo the shading to make it seem like you just stepped into a photograph. If I was going for that, I would just photograph the stuff I wanted in game rather than waste time drawing it out, cut it, resize and paste it. Why go through all the drawing trouble anyway then?

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.