Tuesday, August 04, 2009

Eclipse update site on SourceForge

This article will explain how to create an eclipse update site on sourceforge which is compliant to the sourceforge guidelines. A lot of projects host a update site on the project's webspace. But this is not really allowed by sourceforge's TOS. You should not host downloads on the project web.

With sourceforge's recent update to the file release system (FRS) it became easier to host an eclipse update site through that same file release system. There are however some small issues you should be aware of.

Simply create an eclipse update site like usual. Now you only need to make one small adjustment to the site.xml file. To the root element <site> add an attribute with the name url and the value http://downloads.sourceforge.net/project/[myproject]/[file directory]/. Where [myproject] is the UNIX name of your project, and [file directory] is the directory where you are going to upload your site within the new FRS. Eclipse's site manifest editor does not provide a field for this property, so you have to edit the xml file by hand.

So for example, if you project's UNIX name is myproject and you're going to place the update site in the directory eclipse then the value of the url attribute should be http://downloads.sourceforge.net/project/myproject/eclipse.

After this save and build the update site and upload the files to sourceforge using the standard method.

Now this is where the primary issue lies. You can not tell people to use http://downloads.sourceforge.net/project/myproject/eclipse as the url for the update site. This does not work (see below). Instead you should tell people to use http://master.dl.sourceforge.net/project/myproject/eclipse as the url for this update site. This url points to the main sourceforge's download site. But because the site.xml contains the url attribute with the value http://downloads.sourceforge.net/project/myproject/eclipse it will download all the files from that location. That location will automatically redirect to one of sourceforge's mirrors.

Of course http://master.dl.sourceforge.net/project/myproject/eclipse is not a really nice URL to hand out to your users. There are two ways you can improve that.

1. Mirror the site.xml in your projects webspace, for example at: http://myproject.sourceforge.net/eclipse.

2. Or you can create a HTTP level redirect to that url. You could use either create redirect script on your project web (see below), or use a URL shorting service that performs a 302 or 301 redirect (sourceforge's URL shorten service does not work for that).

The reason you can not use http://downloads.sourceforge.net/project/myproject/eclipse as the location for the update site is because of eclipse's mechanism to find the site information. Eclipse searches for a several files at that location. If it receives a 404 it will continue to the next possible site information file. But that sourceforge url does not result in a 404 when you request a non existing file, and for that reason eclipse won't accept the url as an update site.

This is an example .htaccess configuration you can use in your sourceforge project web to make a shorter eclipse update site url:

RewriteEngine On
# Redirect the root requests to the master site
RewriteRule ^([^/]*)$ http://master.dl.sourceforge.net/project/myproject/eclipse/$1 [L]
# The rest goes to the auto-mirror location
RewriteRule (.*) http://downloads.sourceforge.net/project/myproject/eclipse/$1 [L]

Saturday, December 20, 2008

Idle Ballad: The Ballad of John Riccitiello

A while ago Idle Thumbs restarted as a (weekly) podcast. It's over an hour of mind blowing funny chatter about games.

Some podcasts also contain a funny song, which you can also download from the idle thumbs website.

One of the running gags on the forum is registering domain names related to the episodes, often with a funny splash page. For example:

Anyway, Episode 10 of the Idle Thumbs podcast contained an awesome song called "The Ballad of John Riccitiello". This song gave me the idea to create a nice animation along side of it. The animation is completely HTML, CSS and Javascript base. Flash is only used to play the MP3 file.

You can view this animation here: http://www.idleballad.com

Friday, October 03, 2008

UT3 WebAdmin for UT3 patch 1.4 - preview #2

The game profile editor. Which allows you to edit various game type configurations on which the players could vote.

Thursday, September 18, 2008

UT3 WebAdmin for UT3 patch 1.4 - preview

Patch 1.4 (probably) for UT3 will contain an improved voting system. Because of this the map list management has been changed. This also affects the map list management as it was previously available in the WebAdmin. The screenshot below shows the new map list editor.

Monday, June 30, 2008

Updated Xslthl

The latest version of Xslthl has some issues:

  1. no xalan connector, only saxon6
  2. discards nested XML tags
  3. false positives in matching obstruct other matchers

Issue #2 kind of annoying when you are using it with DocBook. It prevents you from from using the <co /> tags at the place you want them. You will have to fall back to areaspec's which are a pain to create.

Issue #3 is also annoying because when you use a keyword matcher you can not use a regex matcher that matches on non-identifier and identifier tokens.

So I addressed these issue (issue #3 is not completely resolved, there are some constructions that are still not possible). The result is an updated xslthl release. I've submitted the patches back to the xslthlproject, but considering the project didn't see any activity in the last 2 years it might not be included very soon.

Saturday, May 10, 2008

Escape From Butcher Bay on Windows Vista

If you want to play The Chronicles of Riddick - Escape From Butcher Bay on Windows Vista you will probably have problems getting the game to run. That is, unless you use a pirated version of the game.

The copy protection software included with this game causes the issues. So if you want to play your legitimate copy of the game you will need to visit GameCopyWorld and download a no-dvd check patch. After that the game will run without problems.

Another great example of how copy protection software only hinders customers and not pirates.

Saturday, March 15, 2008

Bot management for UT3 WebAdmin v0.10

Below you see a screenshot of the bot management functionality of v0.10 of the UT3 WebAdmin. You can edit the bot roster by dragging and dropping the bots list of the right. And you can move them up and down the list. To add or remove bots from the current game, simply select them and press the submit button.

Saturday, March 01, 2008

Map list editing for the UT3 WebAdmin

Below is a screenshot of the map list editor for the UT3 WebAdmin. It provides drag and drop functionality to create a map cycle.

Saturday, February 02, 2008

Changing the current game in the UT3 WebAdmin

New feature added, you can now change the current game through a nice interface. Changing the gametype will update the map list and mutator list to match the filters for that gametype.

Wednesday, January 30, 2008

UT3's Mutator layout

The UT3 Mutator layout has changed quite a bit from the previous games. Previously a mutator could belong to a mutator group (or not). When a mutator is in a group only a single mutator from that group can be selected. Not a major deal to organize that for the WebAdmin.

In UT3 the mutators have a list of groups they can be long to. Additionally a mutator also has a gametype filter, meaning that it's only available for a selection of gametypes. The gametype filter isn't a major deal, except for caching of the list. The organizing of the mutators based on groups is a bit of a pain. The groups can have overlapping sets. For example

  • Group 1
    • Mutator 1
    • Mutator 2
    • Mutator 3
  • Group 2
    • Mutator 1
    • Mutator 4
    • Mutator 5
  • Group 3
    • Mutator 2
    • Mutator 5
    • Mutator 6

When mutator 1 is selected, mutators 2 to 5 can not be selected. So, how to organize this using HTML. Should the user be able to select, for example, mutator 2 and thereby deselecting mutators the mutators belonging in groups 2 and 3. And how to disable/process this. UnrealScript does not provide good graph processing methods. But also the HTML processing is a bit difficult. A single group can be managed using radio elements. But selecting a mutator from a given group should also deselect conflicting mutators.

Sunday, January 27, 2008

UT3 WebAdmin - preview

The current game in progress:


Player management:


The chat console:

Sunday, January 21, 2007

retro64 violates copyright - update

An indi game development company by the name Retro64 infringes copyright with at least one of their games. A member of the Magicball Network found out that Retro64's game with the name "Bugatron Worlds" violates the copyright of Adeline Software.

The planet in the background of the menu of Bugatron Worlds shows the image of a planet that very much resembles the planet Twinsun of the Little Big Adventure games.

This makes you wonder how much of the other art of their games is original. But this simple case of copyright infringement should be enough reason for not buying at least that particular game and maybe enough to think twice to buy any game from them.

Update! the art for that game was provided by an other party, retro64 has updated the game. So it's safe to to buy their games again ;). And actually, this was quite nice by retro64, they resolved this issue quickly without any fuss.

It's actually a sad thing. A developer hires a 3rd party to do some original art but in turn gets copied stuff. The developer will be held accountable because nobody knows that he has been ripped of by the third party.

Sunday, August 20, 2006

Bad Day LA Demo

I was very excited about this game, it looked very funny and interesting to play. The concept was more or less interesting.

But the demo changed by positive view on this game. And unless major changes are planned I don't see this going to change anything for the final game.

The execution of the concept is rather poor. There are a couple of damn annoying design errors in the game.

1. Invisible walls

These things suck big time. If you want want people to go into a certain direction block their way in a visible way. Don't cut the gameplay to let the main character tell you that he doesn't want to go there. This essentially puts a temporary halt on the game.

2. Lack of direction

Players need to go in what general direction they have to move or what in general their task is. And only show the task when it's relevant. There is no point telling the poeple to kill 5 terrorist when they first have to walk a mile and a half before even encountering the first terrorist in the game.

You don't want people roaming around for minutes before they finally find the "hidden" passage to continue to the next part.

Bad Day LA (BDLA) doesn't have a radar or pointer in the HUD to tell you where your task is. It does have pointers at the point of interest. But they are no good when a house is in front of it.

3. Nagging character

I know where I'm going, but not completely sure how I get to it. So stop complaining about asking for directions. It's not like I can ask anyone for directions.

Thursday, June 22, 2006

Prey - the game

The Prey demo has been released. Ever since I first heard of the game (back in 1997) I was interested in it. Ofcourse 3D Realms became too busy with other things to continue the game, so that was a bit of a downside. When I heard Prey was back in development I got excited. So Prey was going to use the Doom3 demo. I wasn't very excited about doom. the game itself wasn't very special. So what would Human Head do with it for Prey.

The first movie of the new Prey looked awesome. It looked like they were going to perform weird shit with stuff walking on walls and a interesting looking spirit mode.

Anyway, today I installed the Prey demo. And O.M.F.G. this rocked. You start out in the toiled of a crappy bar, nothing great about that. But instead of the usual static environment (almost) everything worked. You can flush toilets, you can dry hour hands, flip light switches. In the rest of the bar you could play slot machines and a pacman clone. There was also a jukebox with various songs you could select and a black and white TV showing real world clips. Very very nice. Much better than what iD pulled of in the bar in Doom 3. Ok so far the human world is interactive (like it should). So, nothing much happens, you talk about with the bar lady and then some guests start to become annoying. You smash their head in and all is safe. But then hell breaks lose and the emergency channel is activated broadcasting info about weird sightings. Suddenly "Reaper" by the Blue Öyster Cult starts playing. It's a great song and it immediately remembered me how this same song was used in the mini-series "The Stand" based on a book by Stephen King. How they used it in that series was simply awesome. Then it struck me, I didn't put that song on in the jukebox. The the roof of the bar got ... uhm... well... it disappeared. Strange lights were shining through, apperently tractor beams since stuff from the bar was picked up. And eventuelly they also got me (well, the player). After that came a sequence where you were moved through the space ship or something, much like in Half Life 2 (but much much better). You get sprung from your prison, but your friend and father don't. And here starts the actual game.

So Prey already had a kick as intro. The game itself is a first person shooter set in a alien space station. Nothing new here. However these aliens apperently have weird portal and gravity technology. The portal technology allows them to put doors in places where you enter a completely different room. Some portals are even two way (and yes you can and sometimes must use the portals). Prey makes a lot of use of the six degrees of freedom. Sometimes you can walk on walls and the ceiling when walking over a magnetic floor or something (if you jump you'll fall off). Walking on this floor is really funky. There are also gravity switches, shooting at a gravity switch will change the gravity in the room in that direction. You sometimes have to use this to solve a puzzle. These gravity things and portals really make the game more unique. In Serious Sam you also had some gravity and portal things, but there were not always functional and more like a engine demo show-off than something contributing to the game. And other thing in Prey is the spirit mode. This means you can leave your body and go past certain obstacles (like force fields). You usually need this to solve a puzzle you can continue.

That's all for my short review of the demo. You should really try it out (if your system can handle it). If you thought Doom 3 or Half Life 2 was great you'll be amazed by this game. I can't wait to play the full version.

Wednesday, June 21, 2006

The price of games

PC Games are getting more expensive (again). When I started playing and buying PC games (1995) the prices were between €45 (100 guilders) and €70 (150 guilders). At the time of 1997 the prices dropped to €35 and €45. The last couple of years the prices converged to about €40 a game. But recently the prices started increasing to €50. It somewhat started with Half Life 2 and Doom 3. These games were the first games to use €40+ prices for their normal package. And now pretty much all games that are released have this price tag.

It's not like games are getting better or contain more hours of enjoyment. I think €40 is quite a lot for a game. Specially if the replay value is low. Sure, watching a movie in the theatre is even more expensive (but that's just a bad comparission). The whole problem is that I can only spend money once. And when I have to fork over a large amouth I will think longer about it (and eventually not buy it). I often pick up games from bargin bins, and not even play them. Or I do play them for a while and then stop because I didn't like it afterall. But for an full price game I will think much longer, if there isn't even a demo of the game I can't even try it out. So why should I fork over a large amouth of money just to buy a game that eventually was crap. It's not like I could get my money back if I was disappointed. If the game was less expensive it wouldn't matter that much.

If a game would cost about €30 I would buy it much faster than a €50 game. In fact, I would buy two €30 games more easily than a single €50 game. With high prices game creators will have to compete with eachother more than they would have to compete with lower prices. If more consumers feel like this popular games might see less revenue, but less popular games would see more. But the less popular games would become more popular. So in the end the publisher will earn more. (2*30 > 50; yes it really is).

Recently there has been a new development, episodic content. Instead of paying € 50 for a game you pay 3 times € 20 (which equals € 60) for the game. Or something like that. I thought Half Life 2 Episode 2 wasn't great, in fact it was quite boring, it didn't add much to what Half Life 2 already gave. It was more of a poor expansion pack. A lot of others think it was great or something, and even tho the game had only 4 hours of gameplay with a low replay value people thought "Hey! It was only € 20 so screw it". I'm not saying episodic content is the way of the future, I rather play a complete story, and not have to wait over a year before I can continue it. It's more that apperently people don't care much about the € 20. If you are going episodic make sure your episodes can stand on their own, it's pretty much like the old sharware days.

Monday, June 05, 2006

Tweakers.net sucks

A user (Otis) of Tweakers.net posted the following comment (in Dutch; and copy posted below) concerning banners on websites and why visitors are allowed to block certain content from sites. Part of Tweakers.net's bullshit AUP is a entry about users not being permitted to block ads on their site (and as Otis explain is a bullshit reason). Besides that he also said he blocked the banners on the site of tweakers.net.

As a result of that comment Otis was banned from Tweakers.net, just a little more proof of the ever degrading quality of tweakers.net. The site is more about the money than it is to provide a "quality" service to a community. Tweakers.net does not allow negative feedback to some of their policies. Being the hypocrytical assholes they are they even post news about net nutrality and censorship. Apperently they are against censorship and for net nutrality unless it's something negative towards their site.

Copy of the comment by Otis:

Tja, maar Tweakers.net is niet de eigenaar van de connectie naar hun site, dat is de bezoeker. De bezoeker mag dus bytes weren op zn eigen computer. Daar heeft tweakers.net niets over te zeggen. Tweakers.net mag zenden wat ze willen, de gebruiker is baas over welke bytes er wel en niet inkomen. Dan mag tweakers.net een lijst met algemene voorwaarden opstellen, maar een bepaling dat tweakers.net kan bepalen wat jij wel en niet toe moet staan qua bytes in je eigen computer is in strijd met de wet, wat zoiets inhoudt als dat die bepaling dus niet rechtsgeldig is. Niet dat dat wat boeit natuurlijk, maar toch.

Daarnaast is het niet in Tweakers.net's belang dat bezoekers worden gebanned omdat ze adblock gebruiken. Ik blokkeer ook alle ads op deze pages en op got via adblock in firefox. Dat tweakers.net daar wellicht het niet mee eens is, is jammer voor ze, maar daar heb ik geen boodschap aan, simpelweg omdat adblock gewoon requests weghaalt en html weghaalt uit de page. Het web is nl. nog altijd een pull medium, geen push medium. Dus als ik vanuit MIJN browser geen request opstart naar een webads server, dan is dat mijn verantwoordelijkheid en niet die van tweakers.net en ook mijn goed recht. Het moet toch niet gekker worden zeg, dat ik niet mag bepalen met welke sites ik verbinding maak.

Want, vergeet nooit, als er, in het hypothetische geval, kinderporno in een ad staat, en ik ben verplicht die binnen te halen ivm algemene voorwaarden van een site, wie is er dan verantwoordelijk volgens de wet? Tweakers.net? Denk het niet, zij pushen nl. niets, de browser van de gebruiker pullt de content.

Verder komt dit neer op "Jij kijkt nu verplicht naar onze reclame tussen de programma's in! het is verboden weg te zappen naar een ander net, anders mag je niet meer naar ons programma kijken!"... tja.

Maar goed, deze discussie is niet nieuw, en tweakers.net weet ook wel dat mensen hier ads blocken. Als ze werkelijk tot bannen overgaan van mensen, moeten ze dat maar doen, het zal ze niet veel 'goodwill' opleveren

Sunday, June 04, 2006

What is theft?

According to WordNet 2.0:

  theft
       n : the act of taking something from someone unlawfully; "the
           thieving is awful at Kennedy International"

So, you take something from someone without their concent and therefor they no longer have access to the thing that was taken away (they no longer possess it). Right?

Well, assume it is right. If I tell you a joke and you tell that joke to another person. Is that theft? Did you steal the joke from me? Apperently not because I still know the joke and I can still tell it to other people. (note: if you claim you made up the joke it's plagarism, not theft).

If we extrapolate it to computer data. If I copy a file I have two identical copies, you can not distinguish them from eachother. If I move them around I'm 100% sure you can not tell them apart. Except one of the files is on my system and the other isn't. Did I steal the file? To answer that, let's go back to the beginning. You took something (a copy of a file) from someone (me). If it was with or without my concent doesn't matter (yet). The question is, do I still have access to the thing that was taken away? Yes, I still have the "original" file. So it wasn't taken from me, I still have it. Therefor it can't be theft. Because of this "they" invented something called copyright. Copyright fills the gap between theft and creating a copy without concent of the owner.

So creating a copy of a file isn't theft but a possible violation of the copyright. Ofcourse a lot of people don't agree and claim that downloading a MP3 is theft (and copyright violtation). Ofcourse the person violating the copyright is the person that made the MP3 available. You (the downloader) would be labeled the thief (by organisations like RIAA/MPAA/Brein (Dutch "version" of MPAA)). And this thing has been an somewhat redundant debat over and over again for the past years.

And today I read something more interesting. Jamie Kellner, [...], called skipping commercials "theft" .... Uhm... okay. Then what did I take away?. As far as I can tell those commercials take something from me: time. If I skip commercials with some piece of technology it's theft. What if I leave the room or close my eyes and ears. Is that theft too? If you said yes then you deserve to get shot in the face for the simple reason that you are stealing the right to live from others simply by existing. Ofcourse I could interpret what Kellner said more figuratively. But if you are going about mangling the meaning of words then what's the purpose of give meaning to words in the first place. You should "call the beast by it's name".

Tuesday, May 30, 2006

TubeTwist

TubeTwist is an interesting game. I've only played the demo so far, but I really like it. It's one of those games where you have to deliver a ball from X to Y using various forms of tubes. It's like TIM except that you only have balls and tubes.

The game even has a story, not a very useful story but it kinda makes sense.

The demo only has 6 levels, the full game has 80. It took me some while to complete those 6. It's a great game to simply play when you have some spare time. The demo has one annoying bug and that is that it doesn't work very well with a multi monitor setup. If it's fixed in the full version I'm going to buy it.

Sunday, May 28, 2006

Freedom Fighters

Recently I've played and completed Freedom Fighters. It's an interesting game, it's one of the many 3rd person semi-open-world action games.

For some "missions" there are multiple locations where you need to complete things, actually there are just multiple missions you can complete in any order. If you complete them in the right order it's much easier. For example, first complete the mission where you can stock up on C4, then do the mission with the helipad, then the electricity mission. And finally the other mission. Doing it in an other order might make it quite difficult.

While completing the missions you can earn points that allow you to recruit others to keep up with you. You can give those recruits commands to attack or something. I rarely used that feature, except for parts where I figured enemies would respawn.

The game is quite short, there are only 9 missions in total, including the first short tutorial mission. You can complete those missions in just a bit over 30 minutes. The in-game time that passes is 8 months, that was something that I didn't notice until the end sequence. It doesn't feel like 8 months have passed.

Also the save system is quite annoying, you can quick save at certain point, but you lose the quick saves when you exit the game. Real saves are only done when you move to a different location. When you return to a location everything is back to normal except for the completed tasks. You will also lose your recruits when you move to an other location. Because of this you could get into a very difficult position where you can only recruit a small number an have to face an enormous number of enemies.

Saturday, May 20, 2006

vbDrupal: Drupal + vBulletin

vbDrupal is a fork of the CMS Drupal. It uses the forum software vBulletin as it's base for user accounts and a couple of other things.

The first version of vbDrupal was based on Drupal 4.6, a lot of changes were made to the original code making it actually quite difficult to keep it up to date with newer Drupal versions.

At the end of 2005 I found out about vbDrupal and it was exactly what I needed as front page for my little big adventure community: Magicball Network (MBN). At that point vbDrupal was already a couple of months old. After installing vbDrupal on the MBN I developed a couple of modules to implement certain features I wanted. After a while I got a bit more involved with vbDrupal, a special website was made for vbDrupal and it was put on sourceforge. As soon as the sourceforge project was online I came aboard as a developer for vbDrupal. I added a couple of new vBulletin related modules and also did some maintenance. After a while I released a new version of vbDrupal, it was a dumpy release, images were corrupt, some development code wasn't properly inlined as vBulletin plugins. Not one of my better software releases.

Almost a month ago Drupal 4.7 was finally released, quite some things have changed between Drupal 4.6 and 4.7 so I decided we started vbDrupal 4.7 from scratch. Taking into account some mistakes that were made in the previous version of vbDrupal. One of the major goals in vbDrupal Next Generation (NG) was to keep the modifications to the original Drupal code as small as possible and try to keep it as much as possible compatible with all Drupal modules. In the previous vbDrupal version the user table was completely removed, this caused quite some issues with modules that relied on this table. With NG we decided to keep the user table and simply mirror the database between both user tables.

So far the modifications to Drupal's core are quite limited. However a couple of things needed to be replaced. First of all the bootstrapping of Drupal needed to be modified to initialize the vBulletin environment so that Drupal can reuse parts of it. As of Drupal 4.7 the bootstrapping is much cleaner allowing easier modifications. Pretty much all bootstrapping code has been moved to functions. In vBulletin this is not the case, therefor creating a global variable hell. The vBulletin initialization can't be started from within a function. Besides some little modifications here and there we also need to replace a few things. For example we completely replace the session code from Drupal to make use of the existing vBulletin session. And the user module needs to be modified a lot. Also the comment module needs some modifications here and there. It should be split into two parts, the default Drupal behavior or the functionality to use vBulletin for comments.

Another thing I'm keeping in mind while working on NG is to make sure it's possible to seperate Drupal and vBulletin in the future. I haven't tested it yet, but a bit of effort it should be fairly easy to replace vbDrupal with a stock Drupal. This wasn't possible with the current stable release. I'm also going to look into a Drupal -> vbDrupal conversion script.