Showing posts from October, 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 lib…

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.

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.


1: void RunScript(constchar* filename)
2: {
3: FILE *file;
4: long fileSize=0;
5: char* buffer=NULL;
7: try
8: {
10: file = fopen(filename,"rb");
12: if(file!=NULL)
13: {
14: fseek(file,0,SEEK_END);
15: fileSize = ftell(file);

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.

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 informat…

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 i…


Some of you may have noticed I haven't been posting nor updating the code base. However the project isn't dead it is just delayed. I started school and on top of that I have been playing EQ2 so as you can imagine I haven't had much time. The good news is I have canceled my EQ2 subscription so I might be able to get some development time in. No promises of course.

Also I have been thinking about the uses of browsers in games. I'm wondering how much could be offloaded to the web browser. Some people have said they are going to do most of their UI with a web browser but that seems silly to me. You might as well make a web based game at that point. However there are some cases I think where it would be better to let a tried and true layout engine handle the grunt work. Like for example anything with large chunks of text.

Alright I think I'm going to leave it at that I have a bunch of homework and a test tonight. Peace out y'all.