A Long Way Home RELEASED on Steam!!

12467

Comments

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    gonna put some notes here that I've run into:

    1. I got a single build script running on my windows dev machine that uploads the content for Win32/Win64/OSX64 and Linux in one go.
    2. I had to install wxPython to run a contentPrep on my OS X build, which of course is not compatible with 10.11, I used the instructions found here: http://stackoverflow.com/questions/34402303/install-wxpython-in-osx-10-11/34622956 (Still not 100% sure this step is necessary)
    3. Make sure you enable all your depots for the versions you are uploading. I had an issue where the Mac build wasn't deploying any files.
    4. You'll want to create a seperate Steam build account, it simplifies things since you can't run the build process if your account is currently logged into steam.

    There are a lot of great tutorials on the steamworks website. I suggest if anyone is serious about greenworks, they get their game started on the greenlit process now, as it can take months to get approved, and start reading the documentation.

  • Braydon_SFXBraydon_SFX Member, Sous Chef, PRO, Bowlboy Sidekick Posts: 9,048

    @jonmulcahy - You're a power-house! Keep it up! Can't wait to play it!

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    @Braydon_SFX said:
    @jonmulcahy - You're a power-house! Keep it up! Can't wait to play it!

    I'm working on it! Just figured out why my mac builds were not downloading, I had failed to enable the mac depot under the developer package, I had only enabled it under the public section... which makes no sense to anyone unless they have been in the steam dashboard...

    but, long story short, my game is installing through the steam client as I type this.

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389
  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    got it launching through the steam client on linux. I don't play with linux too often so this took some figuring out, but it was actually pretty easy. You need to configure the steam launch option to match how you would launch it from the terminal. In my case it was ./ALWH

    Moving right along!

  • DuesDues Member Posts: 1,159

    Awesome work!
    Don't think people realize how much work you have put in to this :)

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    @Dues said:
    Awesome work!
    Don't think people realize how much work you have put in to this :)

    haha, thanks! It was about 100x more work than i anticipated, but it is fun

  • mastermindsmasterminds Member, PRO Posts: 44

    @jonmulcahy Hi, do you know how to upload on windows 8 & 10? gamesalad removed the old way so do you maybe know what to install and what to use to upload on windows? Thanks!

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    @masterminds said:
    @jonmulcahy Hi, do you know how to upload on windows 8 & 10? gamesalad removed the old way so do you maybe know what to install and what to use to upload on windows? Thanks!

    you will have to take your HTML5 game, wrap it in a Win8/Win10 package using Cordova, and upload the resulting file.

    AFAIK no one has done anything with cordova yet, so you'd be a trailblazer

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    i wanted to improve the collision detection on the asteroid fields in the game. Previously they were all just rectangular shapes which worked, but there were some areas that were sketchy. I figured how hard can it be to just apply custom shapes to each asteroid actor... it would have been very easy, but I used a single asteroid actor and made an instance of each one in 30 different scenes...

    so, i have to go through each one, remove the old asteroid and substitute in the new. But it will make the game better for it.

    still a huge pain

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    ok that's all sorted. Another build is generating now, gonna upload and test it this evening

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    Gonna try something different with this build, which I expect will work fine. I had previously built 32bit and 64bit versions of my game for Windows and Linux, Mac is 64bit only. I had defined each version as a separate package, which just left me with more stuff to manage. Since a 32bit app will run on a 64bit OS fine, I'm gonna try just uploading a 32bit app and see how it performs.

    Steam is actually very flexible with this process. You can have a single folder with all Windows / Linux files and in your build script have it skip files based on what you are uploading, so windows builds only get windows files, and linux builds only get linux files.

    Another thing I'm investigating is that the quit button that works perfectly on Windows and Mac does not seem to work on linux. I've added some code to see if it will work.
    Fingers crossed!

  • kirafukirafu Member Posts: 311

    I love see this progress!
    I also want Roll Turtle can release on steam future. :D

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    @kirafu Thanks!

    I figured out what is causing the game to not quit on linux, when it fails to load the greenworks plugin, for some reason when i invoke the quit function it crashes. I can reproduce it on windows as well. Trying to figure that out today.

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    A little more detail

    Web2Executable only allows you to build a 64bit OS X game. This works perfectly.

    I can built a Win32 or Win64 version as well. The Win64 version works, the Win32 version fails to load the greenworks plugin even though it exists. It could have something to do with the filename, but I haven't figured it out yet. (https://github.com/greenheartgames/greenworks/issues/26)

    On Linux I had forgot to put the steam sdk linux file, so it was failing to load. Why it prevents it from quitting is beyond me, but it does. Once you load in the correct version the Linux64 version works fine. Linux32 is still complaining about a missing libglib-2.0.so.0 file

  • DigiChainDigiChain Member, PRO Posts: 1,236

    You deserve an award for your patience / persistence with this!
    Can't wait to see it running - awesome work!

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    i think the linux side of things is because I am trying to run a 32bit app on a 64bit OS. Unlike windows this will not work unless you install certain binaries. I'm just putting this here for now, someone else might run into it:

    to see what is missing run ldd ./GAMENAME to show what libraries are required for the game, this is what I see:

    linux-gate.so.1 => (0xf77dc000)
    libnw.so => /home/parallels/Desktop/linux-x32/./lib/libnw.so (0xf116c000)
    libglib-2.0.so.0 => not found
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf102d000)
    libfreetype.so.6 => not found
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf0f45000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf0eff000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf0ee2000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf0d33000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf0d2a000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf0d25000)
    libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xf0d20000)
    libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf0cce000)
    libnss3.so => not found
    libnssutil3.so => not found
    libsmime3.so => not found
    libnspr4.so => not found
    libgconf-2.so.4 => not found
    libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xf0b4b000)
    libfontconfig.so.1 => not found
    libfreetype.so.6 => not found
    libpangocairo-1.0.so.0 => not found
    libcairo.so.2 => not found
    libpango-1.0.so.0 => not found
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf0a16000)
    libXi.so.6 => not found
    libXcursor.so.1 => not found
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf0a03000)
    libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf09fc000)
    libXrender.so.1 => not found
    libXss.so.1 => not found
    libatk-1.0.so.0 => not found
    libXcomposite.so.1 => not found
    libasound.so.2 => not found
    libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf09f7000)
    libXtst.so.6 => not found
    libXrandr.so.2 => not found
    libdbus-1.so.3 => /lib/i386-linux-gnu/libdbus-1.so.3 (0xf09ac000)
    libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf0982000)
    /lib/ld-linux.so.2 (0xf77dd000)
    libcups.so.2 => not found
    libgtk-x11-2.0.so.0 => not found
    libgdk-x11-2.0.so.0 => not found
    libgdk_pixbuf-2.0.so.0 => not found
    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf0943000)
    libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf093c000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf0922000)
    libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf08ff000)
    libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf08e6000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf08c4000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf08c0000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf08b9000)

    so for everything now found I need to go to packages.ubuntu.com and search for the missing file to see what package is missing. Then install it.

    For example, the first not found is the one in the error message above: libglib-2.0.so.0. To install this, I need to run: sudo apt-get install libglib2.0-0

    then if I run ldd ./alongwayhome, it will show it installed

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    @DigiChain said:
    You deserve an award for your patience / persistence with this!
    Can't wait to see it running - awesome work!

    haha thanks! It already works great, all this work is just to make sure my game doesn't scream mobile port. I want steam achievements working, which I got, linux/mac/windows support, which I got, and right now I'm trying to support both 32 and 64 bit OS where I can

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    I've been going through the list above, it's pretty easy, for example, libXcomposite.so.1 is missing. So I go to packages.ubuntu.com and search for libXcomposite. It will give me a few results, some have a single result, some have 10. You have to make sure you pick the right one. In this case I have 3:

    ****Package libxcomposite-dev

    Package libxcomposite1

    Package libxcomposite1-dbg****

    I'm not running a dev or a debug build, so I went with the middle one.

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    Also, since I am on a 64bit OS, and I want to install the 32bit binaries, you need to put a :i386 at the end of the command, forgot to mention that above:

    so the command to install becomes
    sudo apt-get install libXcomposite:i386

  • LeonardDeveloperLeonardDeveloper Member Posts: 4,630

    Fantastic @jonmulcahy It's been a good few years since I played with it first. Good to see it so successful!

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    @LeonardDeveloper said:
    Fantastic @jonmulcahy It's been a good few years since I played with it first. Good to see it so successful!

    thanks! good to see you back!

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    I figure other people might have the same issue if they try to bundle their game using Web2Executable (or any other nw.js packager), and try to build a linux32 bit version of their game. So, this is the command to get everything missing:

    sudo apt-get install libglib2.0-0:i386 libfreetype6:i386 libnss3:i386 libgconf-2-4:i386 libfontconfig1:i386 libpangocairo-1.0-0:i386 libxi6:i386 libxcursor1:i386 libxss1:i386 libatk1.0-0:i386 libxcomposite1:i386 libasound2:i386 libxtst6:i386 libxrandr2:i386 libcups2:i386 libgtk2.0-0:i386 libgdk-pixbuf2.0-0:i386

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    ugg, deleted my post accidentally.

    When trying to run a 32bit app on 64bit Ubuntu I was getting some further errors:

    Gtk-WARNING: Unable to locate theme engine in module_path:"murrine" (or something like this)

    • ran sudo apt-get install gtk2-engines-murrine:i386

    Gtk-Message: Failed to load module "overlay-scrollbar"

    Gtk-Message: Failed to load module "unity-gtk-module"

    Gtk-Message: Failed to load module "canberra-gtk-module"

    • ran this to get rid of it: sudo apt-get install libcanberra-gtk-module:i386

    Sorry for the rapid fire posting. there is so many steps and this is the easiest way to make sure I don't forget anything that someone else will probably run into

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    I'm thinking this might be more trouble than it is worth. I realize that anyone who attempts to run this on a 64bit OS will have to run through these same commands. :)

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    Last of the error/warning messages taken care of, just 2 remaining, and I saw the same ones when running the 64bit version.

    GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications.

    • sudo apt-get install dconf-gsettings-backend:i386

    [30315:30315:0512/122545:ERROR:image_metadata_extractor.cc(112)] Couldn't load libexif. libexif.so.12: cannot open shared object file: No such file or directory

    • sudo apt-get install libexif12:i386

    [30310:30310:0512/122546:ERROR:logging.h(808)] Failed to call method: org.freedesktop.DBus.ObjectManager.GetManagedObjects: object_path= /: org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist

    • saw this on 64bit version as well

    [30310:30310:0512/122546:ERROR:logging.h(808)] Failed to call method: org.freedesktop.DBus.ObjectManager.GetManagedObjects: object_path= /: org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist

    • saw this on 64bit version as well

    ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
    ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
    Segmentation fault (core dumped)

    • sudo apt-get install libasound2-plugins:i386
  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    I've been doing some (limited) research, and it looks like most people who attempt to run a 32bit game on 64bit linux have issues. So it's to be expected. I think the best bet is to provide a 32bit and a 64bit version to steam and let the steam client sort it out.

    So, off to install a 32bit version of Ubuntu to make sure the 32bit version functions out of the box.

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    i think that's the ticket...
    32bit version works out of the box on 32bit Ubuntu, 64bit version works on 64bit Ubuntu, no crazy terminal commands required.

  • jonmulcahyjonmulcahy Member, Sous Chef, PRO Posts: 10,389

    I'm not 100% sure of what I did, but I got the Steam API to initialize on all platforms:

    • Ubuntu 32bit OS: Launched 32bit linux version and was able to trigger a steam achievement
    • Ubuntu 64bit OS: Launched 32bit linux version and was able to trigger a steam achievement
    • Ubuntu 64bit OS: Launched 64bit linux version and was able to trigger a steam achievement
    • Windows 10 64bit OS: Launched 32bit windows version and was able to trigger a steam achievement
    • Windows 10 64bit OS: Launched 64bit windows version and was able to trigger a steam achievement
    • OS X 10.11 64bit: Launched 64bit Mac OS version and was able to trigger a steam achievement

    These were all with SDK builds, which allow you to view the console log in real time. Next I want to run the same tests with the non-sdk builds, the one more time after deploying these builds to steam, and installing them through the client.

Sign In or Register to comment.