Late with the news once again

Firstly, I’d like to apologize for posting no news for so long… I’ve always been waiting until a feature is “ready” so that I can announce it as completed – and then I end up forgetting to update the site.

Anyways, on to the news – there are 3 things that SIEGE has gained recently, plus one which it had but was never officially tested before:

  1. C99 standards compliance – SIEGE is now almost fully C99 standard-compliant – it is not (and cannot be) 100% simply because of its use of the POSIX function dlsym, which returns a void* pointer instead of a function pointer – there is no way to convert a void* pointer to a function pointer in ISO C99. Nevertheless, most (if not all) compilers on POSIX-compatiable architectures compile this just fine – and it works just fine (in fact, POSIX 2008 states that the direct conversion must be possible).
  2. SIEGE now compiles out-of-the-box on OS X – it has always previously compiled with some changes (such as replacing “#include ” with “#include ”), but with the recent updates, it compiles without any changes whatsoever (provided that the dependencies are present, of course). To fetch this version, see SIEGE repository info on Gitorious.
  3. Added an IConv module and with it support for wchar_t, UTF-8, UTF-16 and UTF-32 strings. Here is a screenshot:
    SIEGE window displaying rendered non-ASCII text
  4. I have tested compiling SIEGE with Clang for the first time and it worked outright – no warnings, no errors. Therefore, I can finally say that SIEGE officially compiles with both GCC and Clang.

That’s all as far as new features in the main branch go… However, there is work going on in other branches. Two such things high on the list are:

  1. SIEGE console – an ingame console, along with features such as history, colors, etc… Note that the console is still in early stages of development.

    An early screenshot of SIEGE's console capabilities

    Early screenshot

  * Lighting – in-engine support for 2D dynamic lights, along with support for shadows, different light “heights” (for non-infinite length shadows) and caching (precalculated values for static lights and shadows).  
    [<img class="aligncenter size-medium wp-image-293" title="SIEGE Lighting" src="http://libsiege.org/wp-content/uploads/2011/05/siege_shadows_3-300x235.png" alt="A screenshot of SIEGE lights along with shadows" width="300" height="235" />][3]</ol>
Posted in SIEGE.