Ping

Yes ! This project is still alive !

It has been quite long since we have last given news… I was actually hoping I could finish a very important step of the development before posting.

This specific step is the Windows port of the game and game editor. In this post we’ll talk mostly about this issue, but we’ll also scratch the surface of what has been done since May, and about my plans to give more time to this project in the near future.

Let’s get this thing started:

  1. Windows support
    How can it be that a port to Windows is so long to make ? Did I develop all this thing without ever keeping in mind that it was supposed to be multi-platform ?
    Well no, in fact multi-platform was on my mind since the very first lines of code. This is not the issue. Truthfully, if we were to compile the Windows version with Mingw (the Windows version of gcc, which is the compiler we use for the Linux version), the port would’ve been done and finished in less than a day.
    Sadly, we cannot use Mingw. We’re stuck with Microsoft’s VC. A compiler that sucks on so many level that I’ve been working two months to get around the lousy implementation of C++11 it provides.

    Well, this didn’t take me two months: merely a week. But then I had to work around the fact that there is no forward compatibility between different versions of MSVC… and since unlike Linux, Windows doesn’t use a proper package manager, I had/have to rebuild all the libraries that our 3D engine uses.

    Then there are also the several unexplained linking issues with the Game Editor.

    All of these issues seriously threaten the future of this project (no Windows support = no point continuing the project).
    But I haven’t lost hope.
    Currently the game builds. It is impossible to run it in Debug mode for unexplained reasons (probably linking issues), so this makes debugging extremely harder. However, the game does run in Release mode… it just crashes at some point, and I assume it is caused, again, by linking issues… all of this is due to the complete lack of forward compatibility between different MSVC versions.

    I always knew that developing on Windows was a much harder task than on any other OS.
    But I never realized that porting a project so simple as this could take so much time.

  2. Better news
    Windows hasn’t been the only thing on my mind lately. Considering that working solely on Windows for months would probably have turned me into a crazed furious creep, I had to find other ways to contribute for the project.

    In fact, I’ve had the time to do so many things that the first beta version of the engine is near completion.
    Most of the changes have been made in order to ease the pain of the game designers: the editing tools have been made much easier to use, and the script developers have a much wider API to play with.

    The documentation has also seen a lot of new additions on the following topics:
    – Cutie Mark Acquisition Program (how to play with our statistic system)
    – Scripting tutorial
    – How to compile for Windows (which, of course, isn’t completely ready yet given that we can’t even compile it properly by ourselves)

  3. The projects during the next months
    Going into the job market too soon has been a great nuisance for a lot of my various personal projects and plans for my life.
    I will finally take a pause, during a month, in September, which will allow me to give more time to the Fallout Equestria RPG project. I hope this will help us work through the two months of Windows porting which forced us to threw our previous schedule.

Well, that’s all. You know just as much as I do about the current situation of the project !
I hope the Windows part wasn’t too depressing: bear with us guys, we’ll pull through !

4 comments on “Ping

  1. J Harton says:

    Why exactly is Windows compilation require MSVC? Is it primarily a C++ 11 issue?

    • Michael says:

      Our main dependency is Panda3D, which only supports MSVC2008. Porting it to MinGW would be quite a bother considering both the platform specific code that would need to change… and the sheer amount of third party dependencies that would need re-compiling (and potentially to be ported to MinGW as well).

      By all means it seemed that MSVC was an easier pick (and as far as I know, it might still be, even with all the issues we’re having).

      When the first Windows build happened last year, we noticed that MSVC2008 did not support any of the C++11 feature we used.
      After a long and tiresome climb, while I was fixing the incompatibilities between gcc and vc, someone managed to pull out a build of Panda3D that worked with MSVC2010, and with it, a build of the game that worked on Windows.
      The last we’ve seen of this build was during last October. Since then, both build and recipe has been lost.

      The conclusion is that we know it is possible. We just have no idea if we’re doing it right.
      We do have some precious informations from the last person who built the game on Windows. We know that re-compiling third-party libraries from MSVC2008 to MSVC2010 should fix most if not all issues (and we did notice significant improvements when doing so).

      Right now, I got rid of every non-mandatory third-party dependency, and re-compiled every other dependency with MSVC2010 except two: nvidia-cg (shaders support), OpenAL (audio). They both seem to work anyway, but that’s the thing with this issue. It does not “not” work, it just works in mysterious ways until it crashes.

      As far as we know, recompiling these two libraries *might* fix everything and put an end to that tiresome task.

      So to answer the question completely: it’s not primarily a C++11 issue. While I did get some really nauseous feelings when noticing how MSVC implemented some of C++11 features (lambdas being the biggest wtf), the code itself is entirely ported and cross-compile properly with both gcc and MSVC.

      • Michael says:

        Little note on that, shortly after this announcement, Panda3D announced that due to the public demand, Panda now builds with MSVC2010 rather than 2008. We’ll wait for this change to be released in 1.9.0 before continuing the port. We can’t be sure of when 1.9.0 will be out, but since we started development, 2 versions have been released… so I suspect it might take no more than a few months.

  2. :P says:

    Hooray! The game is not dead!

Leave a comment