Treetris revisited

I’ve used the first groworld game seedling as a test for using fluxus as game distribution mechanism. You shouldn’t need to install anything for these games to work:

Treetris game for linux
Treetris game for windows

Hopefully a mac version will follow along soon. Let me know if you try these, it’s not a particularly great game, the idea is to just check it works properly at this point.

5 thoughts on “Treetris revisited

  1. Ubuntu, latest LTS version, up to date.

    Double-clicking the icon gave exactly zero result.
    I tried BASH to see whether there would be a error, BASH claimed treetris is no command.
    Copied the file to /usr/bin/, then got;

    treetris: error while loading shared libraries: libxcb-xlib.so.0: cannot open shared object file: No such file or directory

    Synaptic is quite cryptic about the state of that library (can’t get it but it’s referenced somewhere). The range of libxcb-[foo] libraries is a bit too large for me to start poking at random.

    It could also be that this lib is somewhere in the directories that came with treetris and that moving the executable made it loose track of it, I suppose? I’m no great expert on stuff like that.

    To summarise; no game when I double-click. Mysteriously the new(ish) version of Fluxus for Hardy that consisted of a simple download did work for me.

  2. Odd that the hardy-bin version worked and this one didn’t – it appears to be linked against the same libraries (use “ldd treetris” to see what it’s linked to).

    I have a feeling that it doesn’t actually need to be linked against those X11 libraries anyway, the debian package checker reports that fluxus doesn’t use them. I’ll look at fixing this…

  3. Yes, that was a bit strange to me as well.

    Ok, this is what I get for treetris;
    ———————
    ldd treetris
    linux-gate.so.1 => (0xb8006000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0xb7f8e000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7e9f000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e79000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d16000)
    /lib/ld-linux.so.2 (0xb8007000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7cfd000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0xb7c0e000)
    libxcb-xlib.so.0 => not found
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7bf3000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7bef000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0xb7bdf000)
    libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb7bd9000)
    libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb7bd5000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7bd0000)
    libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb7bc6000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7bb7000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7bb3000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7bad000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7ba4000)
    ——————–

    and for Fluxus I get;

    ———————–
    ldd fluxus
    linux-gate.so.1 => (0xb8043000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb802a000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0xb7f3b000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0xb7ed8000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7de9000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7dc3000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c60000)
    /lib/ld-linux.so.2 (0xb8044000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7c46000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7c2c000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0xb7c1c000)
    libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb7c16000)
    libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb7c13000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7c0d000)
    libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb7c03000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7bf4000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7bf0000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7beb000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7be1000)
    ——————

    This doesn’t mean a lot to me (beyond clarifying that one library is the main difference here) but it might be helpful for you.

    I’m not sure what’s going wrong here as I seem to remember you use Ubuntu as well and I can’t get that one library from my package manager. Oh, well, we can try again; I’ve got a soft-spot for Tetris variants, I might be the only person in the world who thought Tetrisphere on the N64 was a decent game.

  4. Hmm, this is odd. libxcb-xlib is listed by ldd on the fluxus hardy binary on my machine (http://www.pawfal.org/fluxus/files/fluxus-0.16-hardy-bin.tar.gz). I think it comes from libGL.so – what happens if you run ldd on that?

    As a side note, I’ve managed to get rid of a couple of the X libraries by simply not linking to X11 anymore (seems this was left from a long time ago when it was needed). The pesky libxcb-xlib is still there though.

    I am also aware that this really isn’t the way to distribute software on linux (for reasons exactly like this :), I think it might have to be something along the lines of installing the runtime normally via apt/dpkg/whatever and get the assets and scripts in some form that can be easily run separately.

  5. Ok, to make perfectly sure I ran ldd against the version of fluxus from your download I changed it’s name and ran ldd on that, this should rule out me accidentally checking another version that might still be around. Here we go;
    —————–
    ghost@baido:~$ ldd Desktop/fluxus-0.16-hardy/fluxusA
    linux-gate.so.1 => (0xb7fee000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7fd5000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0xb7ee6000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0xb7e83000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7d94000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7d6e000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c0b000)
    /lib/ld-linux.so.2 (0xb7fef000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7bf1000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7bd7000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0xb7bc7000)
    libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb7bc1000)
    libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb7bbe000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7bb8000)
    libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb7bae000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7b9f000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7b9b000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7b96000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7b8c000)
    ghost@baido:~$
    —————————————-

    Now, your sentence was slightly ambiguous and might also imply you wanted me to set ldd loose on libGL.so Let’s try that as well to be sure;
    ———–
    ghost@baido:~$ ldd /usr/lib/libGL.so.1
    linux-gate.so.1 => (0xb807e000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0xb7f17000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0xb7f07000)
    libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb7f01000)
    libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb7efe000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7ef9000)
    libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb7eef000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7ec8000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7eaf000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7eab000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d48000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7d2e000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7d29000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7d20000)
    /lib/ld-linux.so.2 (0xb807f000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7d1b000)
    ————————

    Wouldn’t one of the problems with distributing packages be that that would make your game Debian only? I like Debian, exactly because of those packages that (normally) make hard things easy for me but some people like other distros.

Leave a Reply

Your email address will not be published. Required fields are marked *