OpenClonk 1.2

Posted in Announcements on February 12th, 2011 by Newton – 4 Comments

Highlights of this update are the new scenario Thunderous Skies and the revival of the dedicated server code. The usual assorted bugfixes are present as well. Notably, the update function on windows works now, so this is the last release windows users have to download from the download page.

Game content and mechanics:
+ Added Thunderous Skies scenario from Mimmo
! Overcast: set correct owner of a wind spell
! Overcast: Removed double Scenario.txt Sky entry
! Fixed kill logs
! Fixed parkour short description
* Cool Cavern: Finetuned landscape and TopOpen=0
– removed stray ActMap.txt in edge.c4d
* Slightly improved texture for wooden cabin
! respawn container does not spawn weapons anymore (#554)
! Fixed a possible runtime error in the Parkour goal
* Cannon and lorry can’t fall off the sides of the map
! Fixed pressing use1/use2 on gamepad when no item is selected (#535)
! Fixed sword usage with gamepad controls

+ dedicated server works again
+ Generate mini dumps on crash
! Update: Fix update procedure on Windows
+ Update: Fallback to manual full download if update procedure is broken
! Update: no automatic update for debian/ubuntu (they got their own update procedures)
! Don’t reset progress bar when starting to load definitions
! Fixed crash when both shaders and FoW are enabled (#549)
! Some fixes in gamepad controls
! win32: Default to current desktop display settings (#484, #493)
! Only select display modes with the configured color depth
+ editor/gtk: Save the clipboard on exit
+ Script: Add global function DigFreeMat
! Script: == works when one side is an object with proplist type label

OpenClonk is “highlight of the winter” on Chip Online

Posted in Announcements on February 3rd, 2011 by Newton – Be the first to comment

This is worth a little announcement:

Chip Online, the online portal of a well-known German PC-magazine has chosen OpenClonk to be the download-highlight of the winter 2010/2011.

Changes in version 1.1.3

Posted in Announcements on December 28th, 2010 by Newton – 3 Comments

This weekend, we fired out a big new update. It solves many of the problems that were reported in the bugtracker and otherwise includes minor improvements and balancing. Below is the list of changes.

Windows users will have to download and reinstall the new version from the download page. Linux users can use the built-in update function.

! fixed random sky color (#317)
* default control rate is now 3 in network games
! fixed fused dynamite hits clonks
+ artwork for OC installer
* script: FindConstructionSite return 0 when the search fails
! clonk doesn’t continue burning after death (#222)
* update XPM icon from CZ to OC
* changed default IRC channel for clonk client to #openclonk
! fixed possible crash in C4GUI::Container::ClearChildren()
* runtime join off by default because it does not work currently
! opaque submeshes are rendered before non-opaque ones
– removed FIGHT procedure and all related stuff
! win64: Fix crash when a C4String gets allocated at >4GB

Game mechanics
! cannon can’t shoot when turning around (#512)
! rope of grappler is not disconnected too early anymore
* continue to aim with musket after musket has been reloaded (#508)
* press on [Q] now opens the backpack menu even if another menu was open before (#515)
! fixed nullpointer exception on death of clonk that is in no crew
! javelin exits clonk on throw in right height now
! clonk can’t jump out of solid rock
! fixed typo and some “code never reached” warnings from C4DT
– removed the display of (A) and (B) hands in the HUD
+ new texture for the target balloon in the tutorials
! fixed zooming with gamepad (#536)
! fixed error causing variable declaration

Game content & Balancing
+ added missing German string in tutorial 3
* King of the Hill: only king gets a big malus for suicide (#520)
+ King of the Hill: goal now announces new king on the death of old king
+ King of the Hill: open weapon menu on game start now
+ Parkours: give a more informative goal short description (#547)
! Boomshire: various fixes
* Hideout: various map improvements and balancing adjustments, kill logs, adjustments to the magic gems
+ kill logs added to all melees
* CTF – flag: now attached to flag base, grabbed automatically and has a visual trail
* Frozen Fortress: frost bolt now only damages clonks
* sword damage lowered by 1 per hit
* changed mushroom mass to 6
* loam bridge length increased by one third
+ replaced lava texture with one that looks more liquid
+ added shield walking animation
! fix sword texture for Molten Monarch
* changed walking cycle of clonk to look less “chicken-legged”

Linux builds available

Posted in Announcements on December 7th, 2010 by Newton – 2 Comments

There are now automatically created linux builds available on the downloads page. Also, the nightly builds include a linux binary now.

By the way, it’s not big news that OpenClonk runs on Linux, it always ran under Linux. But now, we have automatically created builds available. 🙂

OpenClonk – Back to the Rocks 1.0 released!

Posted in Announcements on December 3rd, 2010 by Newton – 7 Comments

The first milestone of OpenClonk, the open source successor of the Clonk series, has been released!

Download here

Scroll down for some videos and screenshots!

This first release is a beta release. So please help us getting rid of any glitches and bugs by reporting them in the bugtracker.
If you want to give some feedback (please do!) or have great ideas in which direction we should advance the project in the future, please visit our forum.

This milestone focuses on some fast paced melees, races and a few experimental scenarios to choose from. All scenarios are meant to be played multiplayer through the internet (for hosts: ports 11111-11114 are used). It features completely new controls, a new HUD and many weapons and tools to choose from (see a more thorough description here). Also included are four tutorials that guide new players and veteran clonkers through the new controls.

From the main page:
OpenClonk is a free multiplayer action game where you control clonks, small but witty and nimble humanoid beings. The game is mainly about mining, settling and fast-paced melees. OpenClonk is also not just a game but also a versatile 2D game engine that offers countless possibilites to make your own mods.

OpenClonk Gameplay Videos

Posted in Announcements on November 26th, 2010 by MimmoO – 4 Comments

Here are two OpenClonk gameplay videos.
The first one is a new scenario I made. The goal of this map is to capture the enemy flag and bring it into your own base. It is a snowy map, which contains most of the weapons, useful stuff and three scroll-bound spells.
The second one is a video by Ringwaul, which shows some of the scenarios and objects we have.

Thanks to Spell, who helped me a lot with the making and editing the videos.


Team Snowbreakers (right): MimmoO & Spell
Team Icecrackers (left): Phoenix & Maikel

English documentation sources

Posted in Announcements 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).

Nightly Builds 2.0

Posted in Announcements 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.

Website additions

Posted in Announcements 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?


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


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.

Cross Compiling the Engine

Posted in Announcements on February 3rd, 2010 by Clonk-Karl – 2 Comments

In case you want to cross compile the OpenClonk engine from Linux, this is how I made it work:

First, install the mingw32 cross compiler for your distribution. On Debian the package is called mingw32. Then, fetch the required dependencies. You can get libpng, jpeg, zlib, freetype and openssl from gnuwin32. Fetch the developer packages and unpack all to a deps/ subdirectory. glew binaries can be found on its hompage. I put these into a separate glew/ directory but it’s probably also fine to throw the files together with the others into deps/. fmod can be fetched from Again, I put it into a separate fmod/ directory.

Now comes the only somewhat tricky part: The d3dx library. MinGW has a library file for it, called libd3dx9d.a, but there are no header files. However, Wine ships them (in /usr/include/wine/windows/d3dx9*.h on my system). So copy all of them into d3dx9/include/ (or deps/include/ FWIW). Not all symbols used by OpenClonk are declared in Wine’s header files though, so I added the remaining ones required. Here is the resulting patch. There is one more problem though: MinGW’s libd3dx9d.a does not export the symbol D3DXCompileShader. I therefore used d3dx9.lib from the official DirectX SDK and put it into d3dx9/lib/. If you don’t have it already it’s quite annoying to obtain though: You have to download a multi-100MB installer just for that single library file. I think it should be possible however to create a working libd3dx9.a using Wine’s .def file, but I haven’t tried this.

OK, so once this is done we have all dependencies together. What remains to be done is to create a so-called toolchain file for cmake to tell it that we are not going to target the platform on which we are building. For that purpose, create a new file called toolchain-mingw32.cmake (or different, it does not matter) and add this content:

# the name of the target operating system
# which compilers to use for C and C++
SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc)
SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++)
SET(CMAKE_RC_COMPILER i586-mingw32msvc-windres)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc /home/ck/deps /home/ck/glew/glew-1.5.2 /home/ck/d3dx9 /home/ck/fmod/fmodapi375win/api)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment

Remember to adapt the paths to the dependency files as necessary. One final thing to do, if you have used separate directories for glew, fmod and d3dx9 is to add Symlinks to deps:

ln -s glew/glew-1.5.2/include/GL deps/include/GL
ln -s fmod/fmodapi375win/api/inc/*.h deps/include
ln -s d3dx9/include/*.h deps/include

I think this is only required because OpenClonk’s CMake script does not add the include paths of these libraries to the Compiler Flags (which it probably is supposed to do). Finally run

cmake -DCMAKE_TOOLCHAIN_FILE=~/toolchain-mingw32.cmake -DCMAKE_INSTALL_PREFIX=~/mingw-install

and have fun watching how the Code is compiled.