Saturday, November 14, 2009

0.7.0 Blockers

I got the embedded browser working on windows. I'm super excited about it. I do have one issue with it though and that is the return & backspace keys don't work properly. I have looked over my code and it should work but it doesn't. I'm still happy about the progress though. Anyway that bug is the first blocker I have to fix before I feel comfortable releasing 0.7.0.

The next blocker is that the latest version of Irrlicht introduced some sort of bug that makes gravity not work sometimes. And in the case of Enigma all the time. This is a pretty big deal. I posted on the forums and got a possible fix but it doesn't work inside enigma. It does however fix the issue in my sample code that exhibits the faulty behavior. Regardless I may have to wait for another release before I can get this working again. Or roll back but then I would lose all of the upgrades and bugfixes.

The final blocker is pretty fuzzy. The scripting seems like it needs a little something extra before I can call it a release.


All in all this could be a good release but there are some pretty big issues I'm going to have to overcome before the release will be ready. I have winter break from college coming up that might help some.

Tuesday, November 3, 2009

0.7.0 status

I decided to drop llmozlib. I found a gecko offscreen renderer SDK. It is based on the gecko SDK from Mozilla. Now there is only an SDK for Windows so I'll have to build it from source and possibly hack the code base to bring this support to Linux & Mac. So as a result in this release I'm not going to add browser support to Linux and Mac. Not because I value those platforms less or anything it is just easier to get this release out if I don't bite off so much in one go.

Also I broke the browser out into a static library. That should simplify things because there will be allot of effort into building that piece. So much so that I think it warrants it's own project. Perhaps if I get some volunteers I'll cut them lose on it. That will be one area where people will for sure want to use it later. They may even want to use it now if it is working. I haven't tested the code which means chances are good it doesn't work at all.

Also for some reason I was feeling adventurous and updated to Irrlicht 1.6. That means it should be more stable and have fun new features. At this point I doubt I'll be using even a small fraction of them though because of how little graphical content we have in the game right now. We potentially have another 3d modeler coming on board though. He probably won't do much either but hey it could happen.


One final order of business. I'm planning on making a binary release this time around. It has been so long I think it is time to put out another binary. The last was 0.3.0 I think.

Monday, November 2, 2009

Ugh

I just have to vent. I have been trying to get llmozlib to build in my spare time which to be honest I don't have all that much of right now. And I can't get the stupid thing to build. For one you have to download an old version of firefox then you apply their patches to the code. Then you have to get an old version of Microsoft's compiler and finally you need an old version of the Windows & Platform SDK. And after following the instructions to the best of my ability I got a compiler error. I'm not an angry person but I could explode with anger right now. If your going to make a library you really need to release an sdk with headers and binaries especially if it is that much of a pain to compile.

I think the project is dead though so I wouldn't be surprised if an sdk was on the someday list. *angry words*

Wednesday, October 28, 2009

0.7.0 a long way off?

I have been focused on school allot lately so I haven't made much progress on the 0.7.0 release. I could probably release what I have as 0.7.0 but I don't feel like I have added enough functionality to warrant a release. I guess that is because I chose "scripting" as the milestone which is meaningless without something to script. I have technically added the ability to run python scripts to the server. However right now there is no point in doing this except maybe doing some added value stuff on some server events. So long story short part of the delay is just because of poor milestone selection on my part.

On a more positive note I have made some good progress on adding a browser to the game. I'm now using llmozlib. Which basically allows me to embed firefox in my game. The main hangup right now is that they don't have binaries. It is source only. Not that I can say much I only release binaries once in a blue moon but it makes it hard to develop against a library if there is no formal SDK. But I guess mozilla does the same thing so they are merely following the trend of the components they are using. Complaining aside this will be a major advancement if I can get it to work. I'm not sure when that will be though.

I have to write a draft research paper this week and who knows what else. I think I have to write a paper about a campaign to accomplish my information system plan for my pretend business. Silly college assignments that don't really help in the real world. I also have presentations coming up which I haven't actually started on. Sigh, I should probably get on that soon. I really wish that I didn't have so much busy work. It would be one thing if the assignments were meaningful but some of the stuff is just filling space it seems like. Oh well at least I'm getting some writing practice in.

Complaining aside I have one final order of business I'm planning on editing the road map again. I need to refine it more. Also I plan to add tasks to the source forge page so I can better keep track of progress. Alright I have to go to class in like an hour peace out yall.

Monday, October 19, 2009

Another waste of "Time"

I was feeling ambitious again, well sorta. Anyway I implemented a time command that shows the user the server time. It isn't super useful in my opinion but it is pretty standard. I have to go back to school tomorrow so I won't be working on it for a while so it was nice to get some stuff out the door.


Alright I think I'm gonna get some food, watch the Voltron motion comic, and get around for bed. Good night everyone.

Another random distraction.

I just finished the roll or random command. So now players can roll for the loot that doesn't exist. Or you know gamble highest die wins. I'm kidding of course but I did add the roll command. I wanted to do it for a while but I was waiting to get more important functionality in place before adding fluff. Of course I'm super bored of working on the scripting stuff but there isn't enough script enabled functionality for me to call it a release. So while I'm working on that stuff you can probably count on a "random" bit of functionality here and there. After working on so much client stuff it is hard to work in server side never see the light of day business logic.


Well anyway truth be told I probably wouldn't have worked on the project at all tonight but I ate late so I had to wait a bit before hitting the sack. However I'm probably gonna call it a night now.

Sunday, October 11, 2009

Reading Python script from file.

I had issues at first loading my scripts from files. I based my original implementation off of the embedding example on the python wiki. This worked perfectly however when I tried to switch the run function for one that would run from a file I got less than acceptable results. So what I ended up doing is reading the scripts into memory and then passing the string to that function. This has at least one pitfall and that is memory usage. On larger files you may run into memory usage issues but other than that it seems to work ok. Below is a stripped down version for anyone else trying to work around similar issues.

EmbeddingPython



   1:  void RunScript(const char* filename)

   2:  {

   3:      FILE *file;

   4:          long fileSize=0;

   5:          char* buffer=NULL;

   6:   

   7:      try

   8:      {

   9:   

  10:              file = fopen(filename,"rb");

  11:   

  12:              if(file!=NULL)

  13:              {

  14:                      fseek(file,0,SEEK_END);

  15:                      fileSize = ftell(file);

  16:                      rewind(file);

  17:                      buffer = new char[fileSize];

  18:                      fread(buffer,fileSize,fileSize,file);

  19:              fclose(file);

  20:                      buffer[fileSize]='\0';

  21:                      handle<> ignored(( PyRun_String(buffer,

  22:                                       Py_file_input,

  23:                                       main_namespace.ptr(),

  24:                                       main_namespace.ptr() ) ));

  25:                      delete []buffer;

  26:   

  27:              }

  28:              else

  29:              {

  30:                      std::cout << "Script file could not be opened!" << std::endl;

  31:              }

  32:   

  33:          }

  34:          catch(error_already_set)

  35:          {

  36:              PyErr_Print();

  37:          }

  38:  }

Saturday, October 10, 2009

Basic Python Scripting

The server now has basic python scripting abilities. The first order of business is to make sure I have all the events I need. Then I need to see if I can do anything about how fickle the interpreter is right now. There have been a few cases when the server wouldn't run things that ran inside of the official python interpreter although in theory it should be the same code. I also need to figure out what I'm doing to do about reference variables. I have issues wrapping them.

But anyway those of you wishing to see what will be possible when scripting is finally released. Get latest and have at it. You should be able to do basically anything you can do in python. You will also have access to the current user object. That isn't much but it is a good start.


Alright night all.

Friday, October 9, 2009

The Literary cage that is Citation

I'm sure all of you understand citation. But basically it is where you give credit to someone when you quote them or summarize their work. And to that end it is a valid and important part of writing.

I have however come to the conclusion that citation is currently being used as a tool to devalue original thought. What I mean is literary works are said to be weak if they don't site anyone. Now if they are actually based off of another work that is plagiarism. But what about the ones that are actually original works. Should they be of less value because they are not backed by a body of existing work?

I have a strong background in IT as some of you may have guessed. And what I have found is it isn't uncommon for some details of software or hardware products to be undocumented. So there is actually a large body of knowledge held by technical professionals such as by self that you probably won't find in a book or scholarly work. You might be able to find that type of information on forum posts or if your lucky a wiki. However the question is would it be valid to write a work on these topics purely from personal experience. Would it be less valuable to other IT professionals who have not had the experience with a given topic? Is it impossible to be considered Authoritative even if the information can be proven by simply trying it out?

In my college research class surveys, first hand experience and such is referred to as a primary source. And using another persons work is considered a secondary source. So this begs the question why is it that secondary sources seem to be more important. Companies go so far as to pay other companies to conduct research for them and then site that research in their own works. How is having another company with a vested interest in you liking the results doing a study more legitimate than a company doing their own research? If someone else says it does it make it true? If only one person says something does that mean it is false? Is a work that provides more information to support and idea inferior to one that provides little information but sites other sources? Do more source make a work more trustworthy?


Consider the following if cited scholarly works are the best source for information why are blogs, forums, and news groups so popular. If only cited works are trustworthy what good are they? In my experience forums provide better quality & quantity of information over official source. If I have a problem with a printer do you think I go to the manufacturers site to get information? Nope I just type the error or general problem description into google and I normally end up with a forum post that has the solution. This is true for more than printers. Computer software is probably an even better example in terms of quality of information. But printers are something that most people have to deal with at some point. Software is also to some extent but normal users software needs typically aren't that high in my experience. So if original thought is good enough for solving possibly mission critical problems why isn't it good enough for literary works?


It seems that people think because other people agree with them that they and by extension their works are better than those that don't have any works to reference. Historically new ideas don't come from the whole of humanity. They come from individuals and groups. So what if these free thinkers? In the past some have been ridiculed by their peers and in some cases killed. Modern society is heavy with themes like march to your own drum or be your own person. Which seems to go as far as professional literary works and then stops. All of a sudden your ideas and your research are not good enough. Truth despite popular opinion isn't relative. If you can prove something to be true than why does it need a citation to be considered true and valid?

So in conclusion Although citation is a valid part of writing I think it is actually being used to inhibit original thought. I would even go so far as to say it makes people who explore the depths of their interests competitively disadvantaged.

So one final thought. Which is more reliable a shared option with little information or a single work with a great deal of provable information?

Wednesday, October 7, 2009

Death of Awesomium

So, some of you may have noticed that the Awesomium library is no longer available for download. At least not under a free license. Near as I can tell from the site the author created a company and intends to sell the library along with other products. While this may work for Him this makes it unusable for Enigma. The reason is of course one of my project goals is to use only open source software that is compatible with close source usage. This is just another example of the limitations this imposes. However my goal in all of this is to prove that it is indeed possible to construct a high quality product that leverages open source while still allowing closed source development.

Another side to this whole deal is that if I included Awesomium I would need to pass the licensing on to the people using the software. That's just not gonna fly. It is a shame because I had decided that Awesomium was the best available but now it looks like I may have to build my own interface. I guess it is just as well because Awesomium didn't have Linux support probably because chromes support is sketchy at best. This may change in the future but I'm counting on the Linux community to help make this project fly so I can't alienate such a helpful community.

At any rate I happen to be a Linux user myself so I would be limiting myself as well. So in the end what I'm planning is to use the embedding information available for Mozilla to make my Irrlicht browser UI element. This will be more work and will further delay the release of version one.

But hey what can I do stuff happens. I'm planning on digging back into the code really soon however like I have said I will have much less time to work on the project than I have had in the past. College is pretty heavy on homework this go around at least so far.