Uncategorized

English documentation sources

Posted in Uncategorized on August 22nd, 2010 by Clonk-Karl – 2 Comments

Until recently the sources of the developer mode documentation have been in German. This was due to traditional reasons since the documentation is based on the Clonk Rage one which was only available in German for some time and which was later translated into English. However this made it quite hard for international folks to contribute since a German version had to be available before it could be translated into other languages (see bug #287). So after some initial work by Maikel I sat down this weekend with the goal in mind to turn around the situation: The main documentation sources should be in English which can then be translated into German (or other languages). The way the translation process works is that a tool called xml2po scans all XML files in docs/sdk/ which make up the documentation and creates so-called po files which contain all strings that need to be translated and their translation into a certain language. The po files are edited by human translators and, once finished, are eventually used to generate translated documentation XML.

The following steps were required (plus/minus some detail work):

  1. Finish the English translation: When I started there were like 200 untranslated German strings in the documentation which I needed to translate. gtranslator is a nice tool to do the translation, except for the fact that it does not show where the string to translate originates from (i.e. from which XML file and line) — I had to look that up in the plain po file when I needed the information.
  2. Write a script which reads the po file of the English translation, replaces the German content of all XML files with the English version and creates a po file which contains the translation from English into German. This started off as a quite nice and clear python program but then I added handling for an increasing number of special cases until it resulted in code I am certainly not proud of anymore… but well, it did it’s job in the end. Another thing I learned while doing this: It’s a good idea try to avoid mixing python strings and unicode objects; instead always use either one or the other — otherwise you get strange UnicodeDecodeError exceptions and whatnot all over the place… that’s why I normally prefer strongly typed programming languages.
  3. Get rid of duplicate entries in the newly created de.po. There were quite a few cases where two different German strings translated to the same in English, especially in tables which list (English) identifiers that should remain untranslated since they refer to the name of a setting in a configuration file. I decided to mark them with a different tag in the XML (<literal_col> instead of <col>) which causes them not to show up in the translation.

Some of the strings to be translated contain XML fragments, for example for inserting placeholders or highlighting portions of the text. Quite a few of this XML was broken in the English translation. I wonder why this did not show up previously when building the documentation.

Now if you want to translate the documentation to German or even another language all you need to do is to edit docs/de.po with your favorite translation tool (which might be a simple text editor, the format of the file is pretty self-explanative). On Linux you can then easily regenerate the .po file (by scanning the XML files for new strings) and create the translated version by running make in docs/ (for Windows that’s a bit more complicated, but you can have a look at README.cygwin.txt which has instructions). This also converts the XML into HTML suitable for display by any web browser (for example Firefox cannot handle the XMLs directly for some reason). If you want to create a translation to a new language from scratch and need a po file to start with (or want it to be integrated into the make process without knowing how to do so) feel free to approach a developer in the forums or the chat. A word of warning though: Translating all the docs is a huge effort since it includes more than 4,000 strings. However it’s also perfectly fine to only translate parts of it as a start. Untranslated strings will remain in English.

Despite this work there is still quite some documentation tasks to be carried out. Newton gave a nice overview in the forums. Just now you don’t have an excuse anymore not to do it, my English speaking friends :) . Additionally some of the code examples still contain German string literals or comments. Eventually they should be turned into English as well though I think most of the examples are understable already since they are accompanied by an explanative description. If you edit the documentation XMLs you can directly review your changes with Internet Explorer (not Firefox though).

O Canada

Posted in Uncategorized on July 18th, 2010 by Ringwaul – 5 Comments

Around the start of July, Clonk-Karl and I were able to meet in person in the country I call home: Canada. Since I am currently the only developer living on the western half of the planet, it was a fortunate event that we were able to meet at all. But as luck would have it, his destination wasn’t too far off from my hometown.

During the visit, we played a few rounds of OpenClonk (and found a few dozen bugs), a few rounds of Clonk Rage (of which were melees, on average I lost miserably :] ), and even had a trek up one of our famous British Columbian mountains with another friend, Andrew (numbers is always better against wild animals). This was one smashing adventure… before we even got to the mountain I almost stepped on a snake. After hiking up a fairly steep trail, we were spotted by a black bear that had the civility to run away, which we found would be a good idea as well.

Andrew on the left, Clonk-Karl on the right, and my quirky self in the middle

And possibly the most talked about part of the meeting: Doppelkeks. Well, at least by us Canadians. These little cakes taste damn good. And they don’t sell them in Canada.

:’(

Nightly Builds 2.0

Posted in Uncategorized on April 24th, 2010 by Clonk-Karl – 1 Comment

Our Nightly Builds have recently gotten quite some overhaul. We now support builds for multiple architectures and with multiple compilers. In addition to 32 bit Windows builds we added 64 bit Windows builds built with both MinGW and MSVC (courtesy of Isilkor). Build status is now not only green (build worked) or red (build failed) but can also be some color in between indicating the number of warnings the build generated. Maybe this can motivate developers to get the build on their platform as green as possible? :)

It required some puzzling to set up the cross-compilation environment for 64-bit MinGW: Debian’s gcc-mingw32 package comes with a 64-bit C compiler, but does not include a C++ compiler (Debian bug). So I tried to compile the MinGW compiler myself I was not able to get working though. Instead I did what the reporter of the bug mentioned above suggested: I apt-get source‘d the gcc-mingw32 package, enabled C++ support in debian/rules and rebuilt the package, which worked nicely. Most OpenClonk dependencies offer 64bit binaries, others are available via the GNOME project. Only fmod and d3dx9 were problematic since they did not provide a 64 bit import library. However I was able to create corresponding import libraries from the DLLs with MinGW’s gendef and dlltool tools. I still wonder a bit why import libraries are needed at all if all information is available in the DLL anyway – I was thinking import libraries carry information that is not in the DLL and that’s why they are required for linking.

Loose plans for the future are to provide builds for other platforms such as Linux (maybe even as .rpms and/or .debs) and to provide the Windows development snapshots as an installer.

OpenClonk Meeting

Posted in Uncategorized on March 31st, 2010 by Clonk-Karl – 1 Comment
OpenClonk Meeting Spring 2010

Top row from left to right: Loriel, Sven2, Clonk-Karl, Zapper. Bottom row: Newton, Irina, Maikel, Günther, Clonkine, Mortimer.

Several OpenClonk developers and users met during the previous week in Offenburg, Germany to discuss the future of the project and have some fun together. Tobias “Newton” Zwick, David “Zapper” Dormagen, Ruth “Clonkine” Fiedler, Martin “Mortimer” Plicht, Maikel “Maikel” de Vries, Benjamin “Loriel” Herr, his girlfriend Irina “Sul” Kadyrova, Günther “Guenther” Brammer, Sven “(the famous) Sven2″ Eberhardt and Armin “Clonk-Karl” Burgmeier attended. Ruth’s little sister Judith “tschudi” Fiedler was also amongst us in the evenings after getting home from work. Newton summarized most discussions and decisions in the forums. Initially we wanted to have a release around the time of the meeting but we didn’t make it. There is still the plan to do one quite soon now though. Basically some more polish (like a logo everyone can live with, menu graphics and a tutorial) has still to be done.

OCM 2010

Seems there is something very exciting going on. I guess I was searching for construction kits in one of the S2Tower riddles.

We have also been quite productive as you can see when having a look at the number of commits and bugs fixed. Apart from OpenClonk, we also played several other games (video, board and card games), including Clonk Rage where a few new top scores in the Settlement league have been achieved. We also went hiking in the Black Forest (it’s great when it is warm enough to only wear a t-shirt but there is still snow laying around) and visited Freiburg im Breisgau. Another day we went into a climbing garden having fun on parkours between trees several meters high. I for myself have much more respect for Clonks climbing and hangling now :) .

Clonk with gamepad

Posted in Uncategorized on March 14th, 2010 by Newton – 1 Comment

I’ve been longing to report about the gamepad controls for weeks but I continuously added new features to simplify the controls over the past weeks (which produced some bugs too). The gamepad controls are now pretty much working how they should. Here they are:

In text:

Button 1 – use primary object
Button 2 – interact (enter, exit, grab, …)
Button 3 – jump
Button 4 – use secondary object
Button 5 – throw primary object
Button 7 – throw secondary object
Button 8 – select next crew member
Button 9 – open / close menu
D-Pad and analog stick: move, aim and select in menus

    These are by no means the final controls but for how clonk is controlled now, it’s the best assignment.

    If you have a gamepad, please try it out! Go to Player Selection -> [your player] -> Properties -> Controls and select the control scheme GamepadSNES if you got a 8-button-gamepad without analog stick or GamepadDualshock if you got a gamepad like in the picture above.

    Of course, OpenClonk is meant to be played with mouse and keyboard. Thus, gamepad users will never be able to control their clonks just as nimble and fast as mouse users (ever played GTA3 on console? hoho!) do but this is not our aim. Our aim is to maintain the classical split-screen game (yes, you can play clonk in split-screen :-) ) for when friends come over. We don’t want to cripple the standard mouse controls by considering the limited possibilites of the gamepad – or say keyboard-only – to be equal. That said, it doesn’t mean that I don’t try my best to make the controls with gamepad as comfortable as possible.

    Aiming with the gamepad cursor

    The biggest difference to mouse control is of course how you aim. With the gamepad, you can’t just point and click somewhere, so here is how it works: When you press down the use / throw button, the clonk stops and a cursor appears with which you can control in which direction the clonk should aim. The cursor moves in a circle around the clonk, you can control it either with the D-Pad or the analog stick. Now with the D-Pad you are not limited to 8 directions – like with the analog stick, you can aim in any direction you like. With the analog stick, it’s faster and more precise of course. When you let go of the use-button, the clonk shoots / throws into the direction in which you aimed.

    There are a few tools that are already used as soon as the use button is pressed down, like the shovel. However, when you press the button down, the cursor is already aimed automatically in the direction you pressed before, both with the D-Pad and with the analog stick. This is a huge help to be able to aim faster.

    Now gamepads for the PC are a big mess, there is no standard in what order the buttons are numbered and no standard in what controls the D-Pad and the analog stick(s) send. I only got two gamepads to test the controls and it would be great if I heard some feedback of how the controls work for you. :-)

    The Guardians of Windmills

    Posted in Uncategorized on March 6th, 2010 by Newton – 2 Comments

    Presenting a new scenario for OpenClonk. The “guardian of windmills”, this is you, has to protect the windmills from the evil windmill-eating rockets which come flying towards your little sky isle from all directions.

    The scenario is pretty much a simple cooperative survival shoot-em-up for testing the bow and the musket. Those two weapons recently got some cool sound effects from Checkmatey, a modder from the game Mount&Blade. In this scenario, you got unlimited ammunition, so shoot the hell out of those evil rockets!

    The screenshots show a network game round with 5 players.

    The next attack wave is approaching...

    Shooting down the rockets

    The "boss"

    Right in the eye!

    Posted in Uncategorized on February 25th, 2010 by Newton – 5 Comments

    Perhaps you noticed that the pictures of your crew selection buttons in the upper left corner of the screen are now animated synchronously with the actual movement of the clonk you control. Ever tried to aim a javelin in such a way that the little clonk in the upper corner throws it right in your face?
    It happens so fast that you can almost not see it, but here is a snapshot of the exact moment :-)

    Ouch!!

    Who knows what other miracles perspective rendering has in store for 2D Clonk?

    What we’ve been working on

    Posted in Uncategorized on February 24th, 2010 by Ringwaul – 3 Comments

    Believe me when I say we’ve really been putting some effort into OpenClonk. The work we’ve put into the game over the past month has really started to speed up, and we’ve already got some nifty objects the team has been working on. Since a picture can fulfill what words cannot, I’ll keep the pictures plenty and the words few.

    Using the shovel

    This time around, we’re taking full advantage of mouse control. This functionality has helped us develop new and interesting items, and drastically improve such objects from previous Clonk titles. Starting with some of the basics, how could we not have a shovel?

    Shooting with the bow

    Aiming the musket

    With mouse control we need to have some weapons, of course! Here we have a Clonk testing his Bow. The bow may be a fairly old design, but Clonks can make excellent use of this versatile weapon in any terrain.

    Another creation of ours is the Musket, pictured here. The musket is a fairly lethal weapon, and can be loaded with different types of shot for devastating effects. Though the musket may be fairly powerful, and more accurate than a bow, the musket requires a moment of time to load shot into the barrel.

    Clonk riding a boompack

    And here we are with an incredibly ludicrous, yet effective, tool: the Boompack. The boompack is basically a rocket, except Clonks have gotten it into their heads it would be a fantastic idea to ride it. And surprisingly, they were right! Any clonk foolhardy enough to ride one may tilt the boompack’s direction while flying to avoid mountain sides.

    And here is a completely fresh idea for Clonk: the Magical Jar of Winds. The Wind Jar is a multi-purpose tool: it is able to propel enemies away from you, and possibly even incoming weapons hurled by the enemy. It can also be used to give friends an incredible boost to their jump to get to out-of-reach places. And lastly, when timed correctly it is possible to launch yourself great distances by funneling the wind behind you.

    A tremendous jump using the wind jar

    Here we have a Clonk doing what they are well known for: mining. However, the Clonk now has new tools at his disposal. By far the most effective is the Dynamite Box. Each stick of dynamite taken from the box will be interconnected by a fuse, which the Clonk may light with his ignition box, causing a mighty explosion.

    Clonk mining gold with dynamite box

    Lastly, here is a crew of Clonks defending their small settlement with a variety of weapons. As you can see, the clonk on the right side of the settlement is using a javelin. The Javelin can be thrown to deal large amounts of damage, but at distances it can be quite difficult for the javelin to find it’s mark. The Clonk seen in the middle of this picture is using a sword and shield, which are still in the process of development.

    Clonks defending a settlement

    Comprising this settlement is the Tools Workshop, where clonks shall create basic tools for production and combat. As one can clearly see, the second building is a windmill, used to generate power for a settlement.

    Digging Reworked

    Posted in Uncategorized on February 10th, 2010 by MimmoO – 1 Comment

    Hey folks,

    Sven2 has reworked the digging system, and the Clonk is a lot more agile in close underground situations now. The Clonk does now not stop digging when he is hindered, for example by an obstacle or undiggable material, when you keep the mouse button pressed. If he is tumbling or falling, he will instantly restart digging, as soon as it is possible.
    You can view the topic in the forum here:  http://forum.openclonk.org/topic_show.pl?tid=368

    The other important change is, that you can now start digging from scaling and hangling. This gives a huge boost in many situations, for example if you are stuck and could not free yourself, you can now just dig yourself out. If you are hangling on a very thin brigde out of loam, you can now dig a few pixels of them out, allowing you to pass through it. But of course, you can not dig vertically in the ceiling, this would be overpowered. All in all, this change is great in my opinion.

    The Masterserver is still running and works fine. A very popular scenario, which seems to be the favourite of Sven2 at the moment (maybe because he can test the new digging system there), is “The Cavern“. It is a race from the bottom to the top in a high, but not very wide landscape. It also uses the new checkpoint system for races, which allows scenario developers to create a more complex route, or forcing the players to not always take the straight way.

    We also have a screenshot series for you this time, which shows the scenario “The Cavern“. You can see how the new digging system looks like, and, if you have not played OC yet, how it looks ingame.

    Website additions

    Posted in Uncategorized on February 9th, 2010 by Newton – Be the first to comment

    The OpenClonk website has seen some growth lately. Since the game reached a … let’s boldly call it… “playable” state, we thought it is time to ease things for content developers and for people who just want to try out the current repository version of Clonk without going through the hassle of compiling the source by themselves.

    Nightly builds

    Click on Builds in the navigation to get to the nightly builds page. Every week, a new development snapshot (a build of the current OpenClonk game which runs out of the box, no installation required) will automatically be available. Additionally, every night a new engine will be compiled and uploaded there as a nightly build. The fame for this system goes to Clonk-Karl who previously posted something about how to cross-compile clonk (under linux for windows).

    In case you rather want to compile Clonk yourself, have a look at the developers guide in the wiki. Actually it is quite easy to set up, especially because PeterW wrote a tutorial for that. Please be so kind to post bugs you find with the newest development snapshots into the bugtracker. Also, note that the development snapshots are just that and not much more, much of the game content is not written yet. But if you take a peek into our forum, you’ll see that it is bustling with activity and in fact, you are invited to join us. After all, this is what an open source project is about, no?

    Masterserver

    Also, B_E finished the masterserver for OpenClonk which keeps track of the games which are currently open or running. That means, you can directly test playing OpenClonk over internet (it works!) through the menu without having to join via direct IP.

    No games on the masterserver ... yet

    Reference

    I uploaded an updated documentation for content development. This should help all content developers to develop for the future Clonk title (OpenClonk, that is). Also, Luchs is currently working on overhauling the docs, I hope I can report about that soon. The docs might still be outdated at some parts or not available in English language but this will hopefully change now that it is available for the public again. Please do not hesitate to report any errors, wrong stuff, errors in translation etc. in the bugtracker or, if you like, in the forum.