Machinenschnitt? Orlochstechen? Orringe?
(Excuse the quality, but it was night.)
Archive for July, 2008
SPON Interview With Iwata
On SPON, there is an interview with Nintendo’s CEO Saturo Iwata (German, English version here) which is mostly about Nintendo’s transition from core to casual.
He’s also asked about the core gamers’ frustration with Nintendo, but he just says they are very important for Nintendo and it takes a long time to develop core games:
You have to understand that it takes some years to make games like “Zelda” or “Mario.” We can’t announce a new one every year [...]
Yes, it certainly seems difficult for such a big company to publish one game a year.
And why the hell does Babelfish translate “NINTENDO” as “NINT DO”?
Verteidigungsanlagen können einzeln angegriffen werden
From the Weltensaga news:
Schon öfter wurde das Problem berichtet, dass es nicht möglich ist, die planetaren Verteidigungsanlagen direkt anzugreifen. Es ist zwar möglich, einige davon während des Schildangriffs zu zerstören. Wenn dabei aber noch welche übrig blieben, konnte man diese nur sehr schwer bei einer Plünderung zerstören und viele Schiffe vielen nur wenigen Anlagen hilflos zum Opfer.
Dieses Problem ist jetzt behoben worden. Es ist nämlich ab sofort möglich, den Schildangriff auch ohne Schild durchzuführen. Der Angriff heißt jetzt "Schild deaktivieren/Verteidigung angreifen". Wenn also kein Schild mehr da ist, kämpft bei so einem Kampf nur gegen die planetare und orbitale Verteidigung.
Ich hoffe, dass ihr glücklich mit dieser Lösung seid.
![]()
Ein Wiki als Handbuch
Sorry, in German only as Weltensaga is currently also only available in German.
Schon länger “gammelt” das Handbuch von Weltensaga leicht vor sich hin. Es war mal eine gut gemeinte Dokumentation aller wichtigen Fakten. Inzwischen ist es aber eine an vielen Stellen veraltete und unvollständige Ansammlung von WS-Wissen.
Das Handbuch braucht also drigend eine komplette Überarbeitung, um falsche Infos zu korrigieren, neue Features einzubringen und veraltete Daten rauszuschmeißen.
Da Weltensaga eh so eine zuverlässige und engagierte Community hat, kam ich auf die Idee, einfach die Weltensaga-Spieler bei der Dokumentation des Spiels helfen zu lassen. Die Spieler sind diejenigen, die das Spiel tagtäglich spielen und teilweise sogar mehr wissen als ich. Sie könnten z. B. auch gute Tutorials einbringen, die es Neulingen erleichtern, einen Einstieg in Weltensaga zu finden.
Für so ein Vorhaben eignet sich besonders gut ein Wiki. Vermutlich wissen die meisten, was ein Wiki ist, aber um mal Wikipedia, wohl die Königin der Wikis, zu zitieren:
Ein Wiki ist eine Software und Sammlung von Webseiten, die von den Benutzern nicht nur gelesen, sondern meist auch direkt online geändert werden können. Wikis ermöglichen es verschiedenen Autoren, gemeinschaftlich an Texten zu arbeiten. Ziel eines Wiki ist es im Allgemeinen, die Erfahrung und den Wissensschatz der Autoren kollaborativ in Texten auszudrücken.
Ich könnte also das alte Handbuch in ein Wiki übertragen und dann zum Bearbeiten durch alle Weltensaga-Spieler freigeben, die dann ab sofort für aktuelle und korrekte Informationen im neuen Handbuch sorgen.
Um dem Vandalismus, wie z. B. unberechtigtes Löschen von Artikeln, Entfernen von Informationen oder Hinzufügen von falschen Informationen, entgegen zu wirken, würde es so etwas wie Wiki-Aufpasser geben. Diese Aufpasser würden immer die neuesten Änderungen durchgehen und schauen, ob die Ändernungen in Ordnung sind. Wenn sie das nicht sind, kann einfach eine ältere Version wieder hergestellt werden.
Außerdem sollte es nur möglich sein, Änderungen am Wiki vorzunehmen, wenn man dort einen Account besitzt. Anonymes Ändern wäre also verboten. Vorstellbar ist dann auch, dass es ein Verbindung zwischen dem Wiki-Account und dem Weltensaga-Account gibt, so dass wir im Notfall sogar eine Sperre innerhalb von Weltensaga aussprechen könnten.
Ich zumindest glaube, dass wir durch ein Wiki ein Handbuch erhalten würden, das viel umfangreicher, aktueller und besser wäre.
Was meint ihr dazu?
Schiffsgeschwindigkeiten korrigiert
From the Weltensaga news:
Wie einigen von euch schon aufgefallen war, stimmten bei einigen Jägern die Geschwindigkeiten nicht ganz. Das habe ich jetzt in Rücksprache mit Peet korrigiert.
Viel Spaß!
![]()
Sacred
Rating: 




Normally, I keep these ratings rather short. This time though, I’m going have to go into greater detail as this is one of the most bug-ridden games I’ve ever played. And this is the “gold” version!
Yesterday, I’ve completed the original game (without the add-on Underworld) with my girlfriend, i. e. we played the whole campaign over a LAN. I’m just going to recount the worst bugs, not mentioning synchronization issues (enemies like dragons looking in different directions on the two computers or her being invisible to me and so on):
- A few hours into the game (probably between 5-10), we had just made our way through a very hard area called Tyr-Haddar and we were on our way back. But we couldn’t get back, there was an invisible barrier on the only way back to the game’s main area. Unfortunately, we didn’t have a save game before that area. So we had to start a new game and play the whole main quest again. This problem is also reported here and here.
- One dungeon didn’t have any enemies at all. I don’t think that was right.
- All my girlfriend’s character’s spells in the slots in the lower right of the screen were at some point suddenly halfed in their level and thus useless.
- When we got to the demon almost at the end of the game, my girlfriend suddenly couldn’t use her spells anymore at all. Right clicks just didn’t work anymore. Restarting the game or loading a different save game didn’t help either. (I’ve also read about this bug somewhere in a forum, but can’t find it now.)
- So, we finally reached the end boss where you are supposed to get some blue symbols above your character’s head in order to be able to damage the boss. On the one machine those symbols appeared only once during the whole fight while we could see them more often on the other machine.
- The extro then was a good summary of the whole game: the client was simply disconnected while the server showed a white screen with the extro’s sounds playing in the background.
Yes, the game really is that buggy. We’re now asking ourselves frequently “is this supposed to be this way or is it a bug?”, but we keep playing the game anyway because it’s fun.
What are your experiences with bugs in Sacred?
Linux Killed My Laptop’s Hard Disk
A few weeks ago, I decided that my laptop needed a different Linux distribution. It has been running Gentoo Linux for a some years, but I don’t think anymore that Gentoo is the right choice for a laptop because you can’t just install anything when you are on the go. For those who don’t know, Gentoo is a flavor of Linux where you don’t use binares, you compile anything from source. That naturally takes some time and is hard to do when you are running on battery or don’t have much time.
Besides, I also removed Gentoo from my desktop more than a year ago. My new choice of Linux is Arch Linux right now. It works with binary packages (I didn’t know installing software could be that easy!
), is optimized for newer processors (i686) and has a very good package manager.
So, the day before yesterday, I was installing Arch. It was already good on the way when I got the idea to check if the new kernel had built-in support for smart batteries (”SBS”, my laptop has on of those and back in 2004 there was almost no support for them in Linux). I was looking around somewhere in the /sys/ folder and catting some files to see their content. The machine then locked up, I couldn’t do anything except for doing a hard reset. I booted the Arch setup CD another time and from then on the hard disk didn’t work anymore.
Fortunately, I had saved my most important files on another computer. I just hadn’t saved some files from the laptop’s Windows partition. There wasn’t a lot of important data, but losing one file was very annoying: My Sacred character. I’m currently playing Sacred with my girlfriend and our characters are already level 34.
To compensate my loss I downloaded an unskilled dwarf of level 30. From there on, it shouldn’t be too hard to get back to 34.
A last word on my SBS battery: With a new hard disk, that set me back 45 € for a 120 GB 2.5″ disk, and Arch completely installed, it’s now working without any problems. I don’t know if I just read the wrong files in /sys/ or if the hard disk was already a little faulty…
Scrolling Tilemaps On The Nintendo DS
In an earlier post I talked about getting into Nintendo DS homebrew development. I’ve already read a lot and played with quite a few examples. There seem to be many basic tutorials on the topic, but unfortunately only a few tutorials pick up more advanced themes.
Anyway, there is a nice tutorial on handling tilemaps at Dev-Scene by Captain Apathy. This is again about the basics of tilemaps in the beginning, but in the end he talks about scrolling such maps with dynamically loading tile data from a bigger map as the biggest tilemap the NDS offers is 64 by 64 tiles. Unfortunately, he doesn’t give out any code showing that. So I took some time and tried to implement this kind of scrolling myself. I believe I’ve been successful, at least it seems to work.
The endeavor was not that easy because you have to keep track of quite a few coordinates in pixels as well as in tile indices. The algorithm now basically works likes this:
- Scrolling is at first handled by setting
BG0_X0andBG0_Y0, i. e. moving around the view in the tilemap the DS already knows about. This is possible because only 32×24 tiles are shown at once and a tilemap can contain up to 64×64 tiles. - If a certain threshold of scrolled pixels is reached, the movement’s direction is determined and a certain number of rows (vertical movement) or columns (horizontal movement) of tiles is loaded into the DS’ memory map overwriting “old” tiles that lie in the other direction. This may get little difficult because the write operation may wrap around, e. g. if it would write over the right edge, it has to stop there and continue at left edge.
- Take care that the player cannot scroll too far so that he’d leave the map.
A screenshot:

The code works in DeSmuME and on the actual DS. Download the complete source code including a Makefile here. It works with devkitPro and libnds.
Following are a few interesting spots of the code.
Setting a specific tile in a 64×64 map is not straight forward because on the DS a 64×64 map consists of four 32×32 maps that lie after another in memory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | void setTile(u16* memoryMap, int x, int y, const u16 tileId) { int n; // Wrap around: if(x < 0) x += 2 * _TILE_W; if(y < 0) y += 2 * _TILE_H; x %= 2 * _TILE_W; y %= 2 * _TILE_H; // Handle the 4 32x32 maps if(x >= _TILE_W && y >= _TILE_H) { n = 3; x -= _TILE_W; y -= _TILE_H; } else if(x >= _TILE_W) { n = 1; x -= _TILE_W; } else if(y >= _TILE_H) { n = 2; y -= _TILE_H; } else { n = 0; } memoryMap[n * _TILE_W * _TILE_H + x + y*_TILE_W] = tileId; } |
The next snippet is the core of the tilemap scrolling. It detects if loading of new tiles is necessary and, if it actually is, does so.
1 2 | void updateView(u16* to) { |
At first, the position in the background (the tilemap) is set. We don’t have to care about wrapping around because the hardware takes care of that.
1 2 | BG0_X0 = position_x; BG0_Y0 = position_y; |
We then check if loading of new tiles is necessary. This is done by comparing the covered distance with a threshold.
1 2 3 | // Horizontal movement: if(abs(position_x - position_x_last) >= THRESHOLD_X) { |
Next, we have to check in which direction the player has moved.
1 | int direction = position_x < position_x_last ? -1 : 1; |
If he has moved to the right, a few rows of tiles have to be appended to the right of the currently loaded tiles. This means that some “old” tiles are overwritten.
1 2 3 4 5 | if(direction == 1 && map_position_x + STEP + TILES_X <= MAP_WIDTH) { copyTiles(map_position_x + TILES_X, map_position_y, STEP, TILES_Y, to, last_x_update_index + 1, last_y_update_index + 1); map_position_x += direction * STEP; } |
Moving to the left is similar. The current set of tiles is then prepended by new rows of tiles and thus overwriting “old” tiles on the right.
The code is analogous for vertical movement.
Quite a few things are missing to make this code run, but they can be found in the download mentioned above.
Kings of Space I11 Released
As announced earlier, I’ve been working on a demo release of Kings of Space. Today, the time for the release has finally come.
Before this release, I’ve had about ten Weltensaga players test version I10 of the game. These tests reveiled a few shortcomings that I had to fix before this release. Creating a new character at a server was, for example, too confusing for most testers because three different “create” buttons had to be clicked. So that’s fixed now, the server list has been improved a little and I’ve added a few more planet names. Additionally, a Direct X version of the game is provided with the Windows download to accommodate those who don’t have a working OpenGL version installed.
For more information on this game take a look at the KoS project page where you can find screenshots, a video and a little information.
Bottom line: Here is Kings of Space version I11 for free download:
But beware: This is a very early version of the game and by no means finished. I call it a pre-alpha or tech demo release. Do not expect the game to work reliably or to be able to keep your character/ship/goods/money/etc. between versions! This game probably will not even be finished in the future.
That being said I’m looking forward to any kind of feedback. Just post a comment to this entry or send me an e-mail.
Update (July 8th, 15:05) I’ve just uploaded a new version of both the Windows and Linux files. This version is still compatible with the old one, but fixes a bug in the server which caused it to crash.


