Posted on 11-04-2010
Filed Under (Programming) by Garoth

Good day.

I’d like to announce the completion of the gem2arch script to the 1.0 feature set. This script has several interesting features:

  • Invoked as “gem2arch sup”, it will generate a PKGBUILD for sup with the dependencies from the gem specfile. It will automatically fetch the gem specfile from the gem server. This PKGBUILD should be nearly immediately usable (but will lack md5sum line). The script will pull in the description and use your name from makepkg.conf if it is set there.
  • Invoked as “gem2arch -dq sup”, it will list the dependencies that are given in the sup gem. The purpose of this is to be able to write shell loops along the lines of: gem2arch sup && gem2arch -dq sup | grep -Ev "list|of|dependencies|to|ignore" | while read dependency; do gem2arch ${dependency}; done
  • A man page is included with the tarball.

Anyway, you can get the script here: gem2arch-1.0.tar.gz. Alternatively, you can get a git clone: git clone git://git.mercenariesguild.net/gem2arch-garoth.git

In general, the focus of this program was clear code and very simple usefulness. There is another gem2arch script on the web that predates this script, but the code was somewhat unpleasant and the old script required more work to use. This gem2arch’s in no part uses the old gem2arch’s code — it is a fresh rewrite.

I must massively credit David “davekong” Campbell for his work on this gem2arch script. I started working on this script many months ago, but lost interest (as I am apt to do…). Recently, he came along and wrote me many patches that improved the code and fixed up the rough parts. He also very graciously helped me in creating all of the side things that I was lazy with such as man pages and so forth. I also very much appreciate him beating me with a stick and forcing me to drop some of the crazier features that my original script had or planned to have. I can only do him the honour of calling him a co-author, but really, this wouldn’t have been pushed through the finish line without him. What a great guy he is to help a stranger randomly, eh?

(1) Comment    Read More   
Posted on 11-04-2010
Filed Under (Art) by Garoth

From time to time, I think to myself: “Man, I wish I had kept up drawing. I’d have been really good by now if I did it more consistently…” And so for a while every once in a while, I get the urge to draw or paint. It usually lasts for a bit, and then I become distracted by something else and all that effort is lost.

But regardless, here’s something that I started working on recently. I’m not sure how much further I’m going to get with her, but I’m happy with the way it’s turning out so far. Note, of course, that I suck at pretty much everything that’s not presented. My colouring skills are grossly pathetic. My shading is fairly poor these days. My speed can only be described as slugish. Even drawing faces, which I did a ton of, is somewhat lacking for me lately.

I like to think of skills art in terms of leveling up. It is very much the case in art that you can obtain a basic education, and then you must only practise frequently for a long period of time to become a skilled artist. Sure, there are always more art programs to learn, more filters to experiment with, new materials to manage, and new styles to solidify. Ultimately, though, I feel like I’ve got the foundation that I need. Can I simply just “grind” enough to become very good?

In other news, I’ve ordered a copy of Chaos & Evolutions from blender.org. If you’re unaware, Blender is a highly respected open source 3D modeling program. A couple times a year, they make open-source short films and sell them online. Regardless, the concept artist for the latest film, Durian (ie. Sintel), has published a DVD describing his workflow and showing off some 8 timelapses of himself painting. I was extremely impressed by his free timelapse that you can see the announcement/link for here. I’m hoping the DVD (which I think is some 10 hours by the way) is similarly inspiring.

Another thing that impresses me about David Revoy (the aforementioned artist) is his use of open source tools. I know that there are many Adobe / Autodesk fans in the artist community — and there is much merit in these tools — but I’m extremely impressed at the quality of open source tools these days. I think David Revoy very much shows that it’s possible to produce extremely good artwork using an entirely open stack. In particularly, I’m involved in the community surrounding the open program, MyPaint (I offered to host their wiki and am currently doing so). For the interested, I used MyPaint exclusively in the production of the above sketch and the previous blog post about the new Dragoon concept art.

Cheers.

(0) Comments    Read More   
Posted on 11-04-2010
Filed Under (Dragoon, Art) by Garoth

Good day! No, I’m not dead, I’m just lazy when it comes to blogging. In fact, I’ve actually been considerably more active than ever recently. I will attempt to update my blog from time to time about my activities.

In this post, I’m showcasing a wildly different style for Dragoon that I came up with several months ago. I think it’s rather nifty.

Tell me what you think :)

(1) Comment    Read More   
Posted on 07-07-2009
Filed Under (Website) by Garoth

A year after initially intended, I’ve moved to TechMight hosting and cancelled my hosting arrangement with MidPhase. I tried to do this move a year ago, but TechMight wasn’t extremely well set up at that point.

The main reasons for the switch are:

  • TechMight is run by my old online friend.
  • I’ve been paying for quite a long time now for part of a TechMight-run server for Tremulous.
  • TechMight is affiliated with my good friends at The Mercenaries Guild (mercenariesguild.net)
  • I’m not paying anything extra to have web hosting there while my requirements are low, so I’m in effect saving ~100$/year by not having extra external hosting.
  • I know the “staff” so I get good service + ssh + whatever else.
  • My requirements aren’t praticularly giant in a lot of areas, so I don’t need the high amount of bandwidth/space that I was being given at MidPhase, but I do like having SSH access and the ability to run some cool Django / RoR code on it eventually.
  • It was extremely easy to switch, because MidPhase and TechMight both have CPanel. CPanel supports doing full backup/restore, so a TechMight techie just transfered the whole thing for me in about 15 minutes. Then I just had to change the DNS and victory was mine.

Anyway, so for me, TechMight made a lot of sense. More than a for a lot of people, probably. However, as a plug for my group/friends, TechMight at the moment is a fairly small not-yet-officially-running operation offering high quality hosting to those that know about it. Because the team is small with few customers, the support is high quality and willing to accomodate. If you’re looking for some off-beat probably cheaper than normal, high quality hosting supported by TechMight and The Mercenaries Guild (we have some smart people there), then I do recommend this.

Oh, also. To my surprise, TechMight e-mailed me to say that some of my software (web software) is outdated (I guess it’s an automated message) . MidPhase never did that — anyway, so I guess I’ll be making a stab at upgrading things later and hope it all goes smoothly!

(0) Comments    Read More   
Posted on 01-03-2009
Filed Under (Games) by Garoth

Indeed I’ve had an interesting time trying to install the EVE Online demo on my Linux computer. I think it’s an interesting story.

The background for this story is that I saw an ad that EVE was doing a demo and somehow knew that Linux was available. Why I wanted to try it, I don’t know really. I’m not an MMO player typically, but I thought I’d give it a try since there was a demo. Plus, I have a friend who’s been interested in the game for quite a while now.

Problem zero, though, turned out to be this. I registered an account with EVE before I talked to that friend about me trying it out. Turns out that if he sends me a special invite, I get a 21 day trial instead of a 14 day trial. That’s really cool and thoughtful of him, but it means I need a new account. And guess what? My username’s taken. Heh. Anyway, no big deal, but I have two accounts now.

Anyway, so the first hurdle was the simple fact that they didn’t make a package for my distro (not that I expected them to), and they also didn’t make a distro-agnostic installer of any kind. They also didn’t explicitly that “downloading this will give you just what you need to make a package” or anything like that. However, they were interestingly thoughtful enough to provide “Slackware/Gentoo” packages, which are just a tar.gz with a folder/file structure like your system so that you know what goes where. So, I unpackage the tar.gz, hackily add the .PKGINFO file that my distro (Arch Linux) requires, and packed it back up with an appropriate filename. It installed fine, and I was off.

So then the next small problem I had was the fact that I’ve got a somewhat peculiar setup with my Python (which a lot of EVE/Cedega’s Linux tools are written in). Anyway, so that’s entirely my fault, but I’m somewhat used to it so I had a pretty good idea how to fix it.

Anyway, so I finally get the package installed and my system set up so that everything is ready to run. The stuff that I installed, though, is not the game itself, it’s simply just some tools that fetch the game (or updates), install it, set it up, etc. So really what I just installed was the installer. Hmm. I run the installer, and it goes and downloads the first big file that it needs (presumably the EVE client core). It finishes the download (which takes 30 minutes at 500kbps). It then pops up an error informing me that it can’t write to a folder in my home directory. This is obviously somewhat worrying to me, and by the looks of it all permissions were set up properly. Also, it was “courteous” enough to delete the client that it downloaded from /tmp when it’s done. Erk. Right, so I know I can’t do much without the client, so I have it download it again, but this time I copy it before it has a chance to delete it. Conveniently, there is a check that it performs that if you have the client in your home folder, then it doesn’t download it again.

Anyway, so the next big problem was that despite the fact that it knew not to download the client twice once you had a copy in your home folder, something seemed to be amiss with the verification of that copy. Technically, what I mean is that when I tried to run the installer again, it failed due to unmatched md5 check sums, and asked me if I wanted to download it again. Obviously, I don’t, since it takes 30 minutes. Eventually, after a bit of digging around in the source code, I find a bit of a Python script that handles the checking. I disable it. I don’t need no stinkin’ check summing, you silly code. I love how I have the code to the install tools though, even if it’s not open source. Sure made my life easier.

Okay, so after I disabled the checksum, it did manage to get a bit further, but now I just started having errors left, right and centre. It can’t find this file, it can’t copy this here, it can’t write to that, it can’t bloody do anything. So being a good hobbyist problem investigator, I tried a big pile of things from trying to arrange the files for it myself to modifying more installer source tools, to checking on the web. In the end, nothing helped. After an hour or so of slowly getting progress, I suddenly have a possible realization. It can’t write to stuff that it should? Oh God. Maybe I’m out of disk space. Turns out… yep. I had exactly 0 bytes of disk space because the installer liked to copy big things around a lot, and I didn’t start with very much disk space available. I delete some stuff, and eventually my problems start to go away. I still had to run it a couple times and to a little bit of copying, but by far, things went much better and it was pretty easy in general.

Okay, so the thing finally is set up. At the end of the installer, the game is automatically run. One thing I notice right away is that my cursor is a lovely square of multicolored pixels. From what I gather, this was not the intended effect. This is still unsolved at the moment, and I’m not in a hurry since it’s non-crucial.

Okay, so the game’s welcome screen is rather pretty aside from that, and things seem well. I get a notification saying that my client is out of date and needs a patch. That seems kind of sloppy to me, considering I just downloaded it, but it’s reasonable that they got lazy and didn’t patch the one I downloaded. I click to the next screen. It tells me that the new patch that I’m downloading is going to be… 0 bytes. Huh. Now that’s efficient. I click something affirmative. It kindly tells me that the file blahblah-eve-blahblah-patch-blah.0.0981337 is not found on the server. That’s an interesting turn of events, eh? It asks me if I want to go to the support page. At first I was reluctunt seeing as it’s a “support page” and to me that sounds like “forum or useless info page” but it turned out that it was a download of the patch that I was trying to install. Maybe? It said that my platform was Windows. I was a bit conflicted on this. I realize that I’m running the game through Cedega, so technically it’s pretty much Windows. But it’s not actually Windows, and the patch applying tools is a Windows binary. Still, it didn’t seem out of the question. Upon examining the URL of the page, it had some information that said stuff along the lines of “TargetSystem=win”, “RealSystem=linux”. Okay, fair enough.

So I download the patch exe. I figure I’m supposed to run this and make it patch my client. Sounds good to me. After searching around on my system for a while, I was unable to find a working copy of cedega to use with it – EVE seemed really tightly tied into the stuff I found, and it seemed like a lot of work to separate it, so I decided to try wine instead. Wine seemed to handle it rather well, and I had a proper window and whatnot. It asks me to enter the folder of EVE, so that it can get to the patching bit. I try a few different folders since I’m not sure what it means. The one that made the most sense to me is the one under Program Files in my fake C drive that cedega (and wine) use. Uhm, so it turns out that that’s not cool with the patch installer, and it says that it’s not the EVE folder. (Except, well, that the bitch’s wrong. That totally is the folder.) So I tried copying the patch exe into the EVE folder on my C drive there. I ran it again, this time put “./” for the path. It seemed to like that just fine, except that when it tried to actually patch the game, it failed and told me that a blank filename was at fault. This tells me that the thing knows that this is the EVE folder, but is unable to actually know the filenames or something. Kind of retarded, no? Anyway, so as a guess, I move the patch up a folder from EVE, and try again, this time putting just “EVE” for the folder path, hoping it assumes relative to current place. Turns out that’s exactly what it liked, and it started patching. Not too long from there, then, it tells me that a certain file can’t be patched, and that means that everything is corrupted and ruined forever. Lovely. I figure maybe this is my doing because of the disk issues before. Maybe some file didn’t quite finish writing and something something. So I delete my .cedega folder, my client, and tell it to try installing again. 30-40 minutes later it’s done (with no problems this time, wow). I try again, but everything is in the same state. EVE’s cursor is still the work of Picaso, the patch still can’t be found on the server, and the patch exe behaves identically. What can I say? Pure quality. Still, the welcome screen is really nice, and I’m not even just being an asshole.

Anyway, so despite not having EVE running yet, I’ve realized some interesting things along the way. For one, I really enjoyed trying to beat it into working. For some twisted reason, after years of using Linux, I’ve begun to enjoy debugging and fixing problems. So far, my motivation for installing EVE has not been so much interest in it, but rather interest in getting it working on my system. I think I’ve also started to develop a knack for things, because I several times just guessed right at what could be wrong. Another thing, relatedly, is that I really have improved. I remember a few years ago, when I first started, everything was horrible. I was using Fedora Core 3 and stuff would just break. It’d take me forever to fix things, and it was hard to do. When I was a mega noob back then, if I didn’t see a package for my distro, I’d probably have stopped there. “I don’t know what to do without a package!” Now when I don’t see a package, I have the ability to make one or hack one together. This is helped by the fact that Arch has a ridiculously simple package format and build system, but anyway. I probably would have also stopped when it refused to run at all at first. I probably would have stopped when it refused to properly download and unpack the client. It seems to me that I’ve really come a long way as a Linux user, and I think that once you reach a certain Linuxy threshold, you start to really be into stuff like tweaking and fixing your computer system. Anyway, so to all those people out there that I’ve met on IRC that are sometimes overwhelmed by how much there is to learn on Linux to be any good at it, don’t worry. Just stick to it and give yourselves a couple years and it’ll get much easier for you. Really.

And as a note, I’m not done fighting with EVE just yet. I’m pretty sure I can get it working, though I should probably defer to the wisdom of my EVE-playing friend about the patch thing…

(2) Comments    Read More   
Posted on 11-01-2009
Filed Under (Dragoon, Art) by Garoth

Hello, folks.

Risujin and I have gotten together again to make a small sidescroller on the side. This is being actively worked on. Have some concept art:

I’ll fix this post up later probably.

(2) Comments    Read More   
Posted on 29-10-2008
Filed Under (Plutocracy) by Garoth

Hello folks,

I know I haven’t been posting a tremendous amount lately, so I feel like you deserve a nice big update with a lot of recent pictures.

I’d also like to give a big shout-out to my buddy John “Evilchampion” Black for writing a couple thousand lines of code over the last month or so and doing a great deal of the heavy lifting for the topics I’m about to explore.

Also a little shout-out to my old friend Ben “Benmachine” Millwood for recently starting to get involved. Here is hoping that Benmachine and the other developers continue to find a love for working it Plutocracy.

No shout out to Asema though, who has somewhat mysteriously disappeared. Oh wait, whoops. ;)

Anyway, enough of that blah blah. I know you people come here for the images.

So, when you start up a game, and join a team, you can sail over to some land and buy yourself a shipyard. Normally, you would have to have enough resources on your ship to do this operation.

And here is the shipyard.

Then from the shipyard, you can select a ship to build. In the example, I’m going to select the super sloop, which is our fast testing ship.

And the super sloop lives:

Note, then, that if you select one ship and right click on another, you get a context sensitive ring menu. Because these are both my ships, the option available is “Follow.” This works.

However, if an enemy ship (green nation in this case) shows up, you can attack it!

My ship will then sail over to it…

And a little battle symbol appears to show that a battle is ongoing. The symbol is red in this case in order to show that I (red) am attacking.

But because the opponent had more crew and gets a benefit for being the player attacked, I lose my ship D:

Cool stuff eh? Not only that, but a lot of this gameplay has been translated into Python code, and that’s my next topic.

After Risujin stopped working on Plutocracy, I decided to take things in a slightly different direction. The plan was this: we make Plutocracy into a Python module, and write the logically complex parts of Putocracy in Python. This way, the C code can do the heavy lifting, but writing mods and core gameplay is relatively easier. The hope is that this will make the game more accessible to new developers, and faster to program once the framework has been created.

This is where Evilchampion has made his tremendous contributions. He has single-handedly spearheaded this operation and has done a very good job. The current HEAD in the master branch has his changes, and it is pretty much entirely stable and bug free.

Another interesting benefit to using Python is that we now have access to Python libraries. For example, we’ve recently been giving some serious thought to using Twisted for the networking code. Twisted is a rather amazing Python library, supported by organizations like LucasFilms, Google, and Canonical. This library makes networking so easy that just about anyone can do it. I wrote a TCP server + client in about 10 minutes without knowing anything of Twisted to begin with and just using the online documentation. Great work, Twisted developers!

Our current greatest weakness is the networking code. It tends to lag, and have problems. This morning, Evilchampion discovered a potential bug that may fix a great deal of the problems. However, Twisted may still be a good idea as it makes life very easy and provides easy threading, easy support for a lot of protocols (like, say, what if we want to use IRC for chat someday?), and of course asynchronous data transfers.

Oh, right, and I’ve finished the first version of the website, with content. Check it out — plutocracy.ca. Could probably use some more screenshots, but all the blah blah is there.

(4) Comments    Read More   
Posted on 22-09-2008
Filed Under (Plutocracy) by Garoth

Small but important update: I’ve obsoleted the SVN repository in favour of the new git repository. I recommend that anyone who has a copy of the source from SVN to delete what they have and get the git version instead. To do so, you have two options:

  1. Fast way over the git protocol: git clone git://git.mercenariesguild.net/plutocracy.git
  2. Slower way over the http protocol: git clone http://git.mercenariesguild.net/plutocracy.git

Also, I’ve set up gitweb so you can look at what’s going on in the plutocracy repository without having to check out the source code. The location for that is:

http://git.mercenariesguild.net

Easy enough. If you’re wondering, The Mercenaries Guild is an online game and project oriented group that I’ve been involved with for several years now. They were kind enough to provide repository and http hosting for the project.

In other minor news, a nice guy called Asema came by looking to get involved with the project as a programmer. I now have a full time job (as of a month ago or so), but still continue working on Plutocracy as much as I can. The website is probably going to be finished sometime this week, and the 0.1 release and call for developers would happen just after that. Immediately after, I intend to start working on re-designing the specifications for the game and will be open to suggestions from the community.

Cheers.

(0) Comments    Read More   
Posted on 20-09-2008
Filed Under (Plutocracy) by Garoth

There have been a lot of changes with the game. The game itself has progressed considerably. The website is almost done. And Risujin’s gone to Stanford. So lets get started.

Game Changes

  • Added Raoni + Aaron’s Galleon model (new ship)
  • Made a (second version) trade UI. It works very well, and is simpler than before.
  • “Boarding Combat” now works in-game. You can sail up to a ship and attack them. An X made of swords is drawn onto the game to represent the battle. The attacker has 2:3 odds against, and strength is measured in the amount of crew you carry.
  • Simplified the resources system for 0.1 release. The only resources that are currently available are gold, iron, wood, crew, and food. The only way to get resources is to pick up randomly spawning floating crates.
  • Resources can be used to build a new shipyard, which is used to produce more ships. The mechanics here are a bit sloppy, but work.
  • There is a new server browser in game, and of course all the code that is needed to support the master list. This makes connecting to others very painless and does not required any knowledge of IPs. For the moment, though, the game does require servers to open a port in their routers/firewalls.
  • Lots of new bugs, and lots of new bug fixes.

There are probably things I’m forgetting considering I don’t update this as often as I should. Regardless, there has been a fair bit of work done.

Website

I’ve been working on putting together a website for the 0.1 release. I’ve purchased the domain name plutocracy.ca. I’ve, for the moment, written the site in Python with some JavaScript. As usual, I’ve done all the art and code myself from a few cgtextures.com textures. I think it’s coming along rather nicely. Special thanks to cgtextures maintainers and contributors, as well as to the developer(s) of lightbox2, which I’ve used for the image gallery. I’ve enjoyed working on this site, and it’s mostly just lacking content now — though I could do a bit more work on the art too. There isn’t much to say about the site other than “go check it out and comment what you think either here, on IRC, or the newsgroup.”

Leadership Changes

Risujin has decided that he wants to focus on his school work, and, you know, make something out of his life. He’s done well for himself and is now attending Stanford to get his Masters’ Degree in Computer Science. I’m personally proud of him for the hard work he puts into his life and hobbies.

As a result, I’m now the only active founder and have taken full control of the project until (if) Risujin decides to come back and contribute again. So naturally, there will be a lot of changes to the way things are done and the code base. This, I think, is kind of normal for a new manager to do — make the work more his own. However, what we are now lacking is a programmer of Risujin’s talent and dedication. I’m very much welcoming new programmers to come out and prove themselves.

I should explain my (probable) plans thus far:

  • Finish the website.
  • Switch our revision control system to a privately hosted Git repository.
  • Release 0.1 as it is with a call for developers.
  • Review and “complete” the game design specifications.
  • Forget about Mac/Windows support until such a time as we have developers willing to support these platforms. For the moment, it takes too much time to maintain these platforms, and no one on the current development team uses them.
  • Probably split the game logic out from the engine.
  • Embed Python into the game and use that for the game logic. This will make future development considerably faster and more accessible to less experienced developers.
  • Probably research and implement Clutter Toolkit for the user interface. It’s a Gnome based library that will greatly simplify UI creation and maintenance. As a bonus, it already has Python bindings. The #clutter IRC channel informs me that integrating Clutter should be relatively simple and would more or less just require integrating it into the main loop. Some research will be needed here.

So that’s the plan so far. I’m pretty much going to dump 0.1 out into the world and get an announcement published to a bunch of Linux news sites with a call for developers. From there, we’ll agree on which route we want to take the game, but I strongly feel that using Python for the logic (as many for-sale games do) will make work considerably easier. Clutter also sounds like a godsend, and should not only make UI creation very simple, but also provides text support (I believe).

Apologies for the lack of images in this post. I wish myself and my few remaining developers luck for the upcoming year — it’ll really make or break this project.

– Andrei “Garoth” Thorp

(0) Comments    Read More   
Posted on 24-07-2008
Filed Under (Plutocracy) by Garoth

OMG Risujin wrote net code! As in, the program can now host servers and connect to servers. As in, you can, like, play with other people!

This is amazing stuff. Obviously there isn’t too much that you can do at the moment, and there will probably be some issues, but wow! This is like gnarly man!

Yeah. Best game ever, I’m telling you. Anyway, screenshots, screenshots.

So I’ve managed to run a local server and connect to myself a few times. I couldn’t wait to do a test with other people, but that’ll happen later today.

As a note, even with all the trees still on all the tiles, my computer managed to handle 3 side-by-side Plutocracy sessions without lagging at all. However, the fourth one did cause some problems. So it managed to handle around 270,000 faces without any problems, which is way more than there will be in an actual game. I don’t expect that we’ll ever have to render more than 100,000 faces at any given point. In fact, I expect that it’ll be considerably lower than that most of the time. So that’s good news.

So anyway, I connected to myself, and renamed one of my clients — oh, by the way, Risujin wrote chat and naming just yesterday.

So then the next thing I did was gather the various clients’ ships.

I had 4 clients’ worth of ships in one area. You can see all the various nations’ colours side by side. As a note, we might want to tweak the colours — looks like pirate and sapphire are too similar in the moonlight. Maybe yellow?

Here is another pretty image of all the ships together.

But then the pirates didn’t want to have anything else to do with the other nations and decided to sail away…

Honestly, this is a MAJOR milestone for the game. Please take time to send your thanks to Risujin. Send him an e-mail or stop by IRC and tell him how much you love him. Don’t be ashamed. (You can reach him via our newsgroup — plutocracy-dev on Google Groups.)

It’s like we have a game or something!

:D

(1) Comment    Read More