FreeGameDev Planet - Games

Also check out the development planet.

December 19, 2014


Hedgewars 0.9.21 Release Candidate

So, one year later...

Yes, there's still lots of stuff we'd like to do, and not all of it is in here, but we do have to draw the line somewhere right?

Testing would be very much appreciated. Apart from possibly adding new content such as themes or hats, there are no planned code changes unless bugs are found. So, if you would like to avoid bugs in the next release, now's the time to test!
Windows build:
Download and unpack this zip

For Linux:
We tend to have a fair number of Linux testers using our fairly copy-and-paste Building on Linux instructions already. Those should still apply, but it is strongly recommended to run:
cd ~/hg/hedgewars/trunk;hg pull -u;hg up 9819e69bc6db;cmake .;make install

To ensure you are in sync with the revision used to make the Windows build. change log here, although it might be missing one or two things, should give an idea of what to test.

by nemo at December 19, 2014 11:38 PM

December 17, 2014


Xonotic on Linux Unplugged

Yesterday I had a chance to talk about Xonotic’s recent activity with Chris from Jupiter Broadcasting on their show Linux Unplugged. If you haven’t listened to them before, do yourself a favor and check out their weekly podcasts covering the latest on Linux, open source software, and development.

Thank you Jupiter Broadcasting for having me on the show!

by Antibody at December 17, 2014 02:49 PM


Merry Christmas and a Beta :)

Merry Christmas to all of you who have been waiting for the new release!

So, better late than never, SuperTuxKart 0.8.2 beta has been released! This new version is the result of months of work from the SuperTuxKart team. Please note that this is a beta only, and we know that there are still some bugs around which we intend to fix before the 0.8.2 release (see our bug tracker for a list), but no major ones that would prevent you from enjoying the game. If you download the beta, we are mostly interested in any kind of feedback, particularly about the graphical side of thing. Please let us know if it works just fine, or if you had to disable certain features to make it look good. Report bugs in our tracks (URL see above, but please check that it has not been reported previously).

The main highlights include the first release of Antartica, the new graphical engine (more on that later). We have basically added a completely new, shader-based rendering engine - only things like loading meshes and textures are still done by the original Irrlicht. As a result of the new features which are provided by our engine, we have many tracks with significantly improved visuals. The main highlight on this front is two new massive tracks. First of all "Cocoa Temple" that replaces the old "Jungle" track:

And "Gran Paradiso Island" that replace the old "Island" track:

Thanks to samuncle for all the hard work!

Another new feature is the addition of online accounts, as a prelude to networked multiplayer. Just to make it very clear: networked racing itself is not ready yet, but will be our main focus once the release is done. Your account allows you to connect achievements, stay in touch with your friends, etc.

The new version includes many more new features - we still need to assemble the full list. But it includes different kart physics, based on this year's GSoC work, random Grand Prix, a Grand Prix editor and more.

The windows binary also includes a beta version of the track editor, developed this summer by one of our Google of Code Students (on other platforms, it can built from source). It's not fully polished yet, but you can also start playing with it

New engine

As has been mentioned above, SuperTuxKart 0.8.2 features Antartica, a totally new rendering engine, starting from the foundations of cand from GSOC 2013, and improved a lot by new team member vlj. The new engine features exciting new features like much improved rendering of lights and shadows (for more information, take a look at this page ).

An example of DoF (Depth of Field) in action with the snow falling

However, it is very important to note that this new engine uses at least OpenGL 3.1, whereas the previous STK version used very old OpenGL 1. This means that we are using many more advanced features of the opengl drivers, and as a result we have been suffering from various driver bugs already. During our development vlj did a marvelous job to work around most problems we have encountered so far. This is why your feedback is so important for us - we can't afford to get a set of different graphics cards to try to work around their specific problems. So we need as many people as possible to test this beta and provide feedback. We will provide some additional documentation about what you can try if this beta does not work as expected for you.

Also, using newer opengl features means that unfortunately, older computers may not be able to run the game correctly - we use the HD 3000 as a minimal supported GPU. Obviously you should make sure to update your drivers to the latest available version and, on linux, you may want to try the proprietary driver if the open source one does not work (a recent version of mesa may be required for some features).  That being said, don't panic! You can configure the graphical level in STK options, so if your computer cannot reach a good decent frame rate you can always reduce the graphical details, or the resolution.
An additional note: since this is a beta we have not yet updated the credits, nor declared a string freeze for translations either. We still expect some minor changes to the strings before our release candidate. We are also looking for help creating binary packages for other platforms - especially a static linux package would be great.

And in spite of all our testing, a first problem was already discovered :P the Christmas hats were switched on (that happens on the 17th of December), and some of the new karts now have the hats hovering ... around half a meter over their heads :)

Quick edit: users of Windows XP should be aware we no longer support it and the game will fail to install.

Giving Feedback

Please use the forum for feedback, as blog comments are inappropriate for support. You might also be especially interested in this post announcing the beta release. It includes details on how to unlock these new tracks, since initially they will be locked.

Getting the beta

French translation of this article available here

by (Auria) at December 17, 2014 11:31 AM


The magic of light and haze

The ‘Atmospheric Light Scattering’ (ALS) rendering framework

Have you ever admired the beautiful colors of a sunset? Have you maybe wondered why sometimes sunsets show a fantastic palette of glowing red and golden colors in the sky and sometimes a rather muted blue-grey? Have you observed distant hills fade into blue haze while the glittering reflection of the sun on water shifts color to a yellow-orange and asked yourself where the difference comes from? Have you wondered why there’s sometimes a halo visible around the moon?

All these phenomena and more are related to light scattering in the atmosphere. Actually, most of what we see looking out of a cockpit from 36.000 ft is not scenery but light scattered somewhere on haze, clouds or air molecules. To create a realistic impression of a scene during flight, we can’t think of haze being something simple that obscures the scene, instead we have to invest as much attention to rendering haze properly as to the more prominent scene elements. In Flightgear, that’s what the ALS framework is doing.

A little bit of theory

To first approximation, the normal lighting situation of a scene during daytime is that the sun is high in the sky and illuminates an object, from which reflected sunlight falls into the eye. There are thus two light rays – the illumination ray (I-ray) goes from the sun to the object and the observation ray (O-ray) from object to the eye.

In vacuum, that’s all there is to it, and pictures from the surface of the Moon illustrate this – objects remain visible no matter how far away, and any surface which is not in direct light is pitch black.

In an atmosphere, light scattering can affect both the I-ray and the O-ray, and there can be in-scattering and out-scattering. In-scattering corresponds to light from somewhere else in the scene being scattered onto the object (or into the eye), out-scattering corresponds to light from the sun being scattered away from the object or light from the object being scattered away from the eye. I-ray in-scattering causes ambient (non-directional) light – shadows are no longer pitch black but receive still some kind of illumination. Under a thin overcast haze layer, there is for instance strong I-ray in-scattering – while there is lots of light available, it comes from almost everywhere in the sky and no shadows are cast onto the ground. O-ray in- and out-scattering both cause objects being shrouded by haze, but in-scattering causes a bright haze, out-scattering a dark haze effect.

To complicate matters, there are three basic physical scattering mechanisms which can take place: Rayleigh, Mie and diffuse scattering.

* Rayleigh scattering occurs on very small particles – the air molecules themselves or fine dust (‘dry haze‘). It has no preferred direction, but is much stronger for blue light than for red light.

* Mie scattering occurs on larger particles – usually water droplets (‘wet haze‘). It has no color dependence, but is much stronger at small angles than at large angles, i.e. Mie-scattered light almost keeps its original direction.

* diffuse scattering isn’t really a distinct elementary process but the effect of multiple scattering processes over which direction and color specific dependence is blurred, hence diffuse scattering has no color or directional dependence.

Any real scene is hence a mixture of Rayleigh, Mie and diffuse in- and out-scattering on O-ray and I-ray (which makes for a total of 12 scattering channels, out of which 11 are modeled in at least some approximation by ALS – only Mie in-scattering on the I-ray is not considered since it is not very important in practice).

Wet and dry haze

Since most flight-relevant fog is wet haze, in FG the amount of wet haze is directly linked to the reported visibility. In many weather situations, fog is densest in the lowest convective air layer and the air is much cleaner above. ALS hence allows to render a lower layer of volumetric fog in addition to much less dense haze in the upper atmosphere. Seen from above (as in the scene showing morning fog at the foothills of Nanga Parbat), wet haze appears a bright white during the day, but when entering the fog, its color gradually changes to a dark blue-grey as diffuse out-scattering blocks the light.

The amount of dry haze (or Rayleigh scattering) relative to the wet haze is controlled by the air pollution slider in the weather configuration. Since Rayleigh haze is stronger for blue light, at large visibility O-ray in-scattering dominates (driven by the strong light coming from above) and far objects appear shifted towards sky-blue in color (such as the Sierra Nevada chain seen from China Lake below):

However, if the visibility is poor and/or the incident light from above is blocked, O-ray out-scattering is dominant, and all objects appear shifted to a dirty yellow – in other words, high air pollution makes objects appear in smog (here, downtown San Francisco):

The sky in low light

During the day, the I-ray is typically much shorter than the O-ray because the sunlight crosses the atmosphere vertically. The density of the atmosphere is variable in altitude, but effectively the whole vertical extent correspondsto a length of perhaps 10 km, whereas on a clear day objects 200 km distant can easily be seen. This is why Rayleigh out-scattering for the incoming light is not dominant while the sun is high.

In low light however, the I-ray passes a long distance through the atmosphere, the blue light is scattered out, and hence the direct light of the scene illumination is shifted to red (the indirect light however is driven by Rayleigh in-scattering and hence is shifted to blue). This can be seen here where the sun is below the horizon and illuminates the clear air close to the horizon whereas the lower haze layer is only visible in blue indirect light:

Without a lower haze layer, the whole scene appears in blue indirect light as seen here in the predawn Himalaya

As soon as the sun comes above the horizon and touches the highest peaks, strikingly beautiful contrasts appear between the blue indirect and the red direct illumination, leading to the phenomenon known as Alpenglow:

Looking away from the sun in low light, the clear atmosphere takes a deep violet color:

At very early predawn, just the far fringes of the upper atmosphere are illuminated. In clear air, the colors of dawn are muted:

In contrast, here a strong dry haze component leads to a sizable shift of the light to a red-golden color which lets the low wet haze layer glow brightly in the early morning light. While the light illuminating the wet haze is driven by Rayleigh scattering, the wet haze itself is a Mie scatterer – it glows most close to the sun, and the colors get more muted away – this is most evident from the thin clouds in the scene:

The combination of wet and dry haze can lead to nice and subtle color variations in low light:

The atmosphere seen from above

The following screenshots have been rendered with the EarthView orbital rendering option of FG in combination with ALS.

The characteristic electric blue glow of the atmosphere which is so prominently visible from low earth orbit is predominantly driven by Rayleigh scattering in the upper atmosphere.

Where the bulk of earth blocks the incoming light, Rayleigh scattering can no longer take place and the glow of the atmosphere gradually fades out:

The terrain itself is illuminated by light which has suffered Rayleigh out-scattering. In the dawn zone, this gives it again a color shift, here just slightly towards the yellow in this late afternoon impression of clouds hanging above the coast of Florida:

It is quite possible to observe the shadow earth casts into the atmosphere from lower altitude – here is an impression of it from 36.000 ft above an overcast cloud layer:


Although they are rendered with rather different techniques, clouds physically are wet haze – thin translucent clouds are Mie scatterers, and thick clouds are diffuse scatterers. Thus, thin clouds light up very brightly in a halo when the sunlight is seen through them due to O-ray Mie in-scattering, whereas thick clouds appear dark and hide the sun due to O-ray diffuse out-scattering.

In predawn light, low clouds appear dark since they are yet in the shaded part of the atmosphere, but high Cirrus cloulds can already receive some sunlight:

As the sun comes up, this can lead to a dramatic play of light and shadow, with bright high-altitude clouds seen through a dark lower layer:

Again, the light that reaches the clouds at low sun is subject to I-ray Rayleigh scattering and its color depends on the amount of dry haze. In clean air, the colors of a cloud layer appear more muted

whereas for a high air pollution value the colors are much more strongly shifted towards the red-golden.

However, faraway cloud banks at the horizon can also reduce or alter the incident morning light by I-ray scattering. For thin, scattered clouds, this reduction is small and mornings appear bright

but if the cloud cover gets stronger, the light is reduced

and color shifted

to the point that a sunrise appears no longer red-orange-golden but blue-violet underneath a thick layer:

Diffuse haze in the atmosphere acts on the incoming light just the same way as a well-formed cloud layer – the light illuminating the clouds is reduced, and as the direct light is filtered out, the blue indirect I-ray Rayleigh in-scattering becomes more important, shifting colors to violet.

Compare the subtle play of dawn light shining through a cloud for a clear day

with a very hazy day with poor visibility aloft to appreciate the flattening of the color distribution:

Artificial light

At night, artificial light sources contribute a lot to the illumination – think of the orange glow of haze above a well-lit airport or a city. In principle, artificial light follows the same principles as sunlight, except that the intensity is usually far less, and so the paths through the atmosphere are smaller and effects are only visible in fairly dense fog. Then, often Mie-scattering can be observed, creating halos around lights seen through the fog.

Most of these effects are currently not included in ALS, however the Mie-scattering halos for runway lighting and the illumination of dense fog by landing lights are features already implemented:

Final thoughts

All the different scattering phenomena described above only scratch at the surface of what nature really does. In a real sunrise, clouds may cast shadows onto each other. There’s multiple scattering processes – a brightly illuminated haze layer high above may scatter lots of light down onto lower layers. There’s genuinely colored hazes like dust in a sandstrom which change the colors of dawnlight in yet different ways. There are effects of the human perception which make the eye see very faint or very bright light in colors different from what they actually are (which is why moonlight, despite being actually white light, appears as blue). While ALS tries to capture some of these processes, nature still does infinitely more, and sometimes one wonders how nature manages to get it all done in real time.

But even thinking about some of the phenomena causing it, you will never look at the play of haze and light the same way as before – be it in Flightgear or in reality.

All the screenshots above are rendered with the current development version of Flightgear (FG 3.3) out of the box. On a modern gaming laptop, in flight they typically render with 30+ fps (mainly dependent on visibility and LOD settings and the usage of hires scenery).

The ALS framework itself takes some 10 atmosphere-related input parameters to generate the visuals of the sky and of hazes, and this leads to an almost infinite variety. Unfortunately the majority of parameter combinations can not occur on Earth (ALS as such is quite capable of rendering a Martian sky), hence the raw input parameters are largely not under user-control. What limits the visuals ALS generates out of the box in practice is the actual range of parameters passed to the renderer by the weather simulation. Here, Advanced Weather using the offline weather engine is somewhat more faithful in generating reasonable light propagation models in the lower atmosphere than Advanced Weather in METAR mode, which is in turn better than Basic Weather, but even Advanced Weather currently exhausts just a fraction of the possibilities ALS really offers.

Modeling a compelling haze distribution and the resulting light attenuation in real time is a genuine challenge, since it is impossible to actually do the scattering calculations (which involve nested integrals) in anything resembling real time, so in every case, fast yet faithful approximations have to be found.

To experiment some with sunrises, try various weather scenarios and play with the lower haze settings and the air pollution on the Advanced Weather options panel.

by Thorsten R. at December 17, 2014 10:44 AM

December 15, 2014


Godot Winter Game Jam

Godot winter icon

A game dev jam to create a winter-themed open source game was community-initiated at the Godot forums. The (vote-determined) winner will get a budget of USD 50 to have donated to an open source project of their choice.

What is Godot?

Godot editor

Godot is a game engine. No wait, it's actually a game development IDE with its own Lua-based scripting language.

As far as I can tell, it's a promising project that is a bit buggy, especially when it comes to mobile exports. It has some UI flaws (subjectivity warning) but still, open source Godot is more appealing than proprietary Unity 3D.

If you want to try making a game in Godot, I recommend this official tutorial as a starting point. Good luck & great success to you!

What else?

Another way to support Godot: "like" it as a Unity 3D alternative on alternativeTo.

by (Iwan Gabovitch) at December 15, 2014 05:13 PM

December 13, 2014


Strife: Veteran Edition

Just in case you can stand having Steam DRM installed in your system, I recommend taking a look at Strife: Veteran Edition. Strife is a Shooter/RPG based on the Doom Engine and dating back to 1996. The developers for this new remake had the wits and sensibility to use the Chocolate Doom engine as the main code base, which is, of course 100% licensed under the GPL. With so many top quality Free Software engine remakes around here, it really astounds me why so few developers choose to use them on modern HD remakes and ports (I'm looking at YOU, upcoming remake of Heroes of Might and Magic III not using VCMI).

As mentioned, so far the game is available exclusively on Steam, but I'm pretty sure a DRM-free GOG version will eventually follow, as it usually does.

Code License: GPLv2 + LGPL
Assets License: Proprietary

by (Hythlodaeus) at December 13, 2014 11:49 PM