Giter Club home page Giter Club logo

Comments (6)

r-pufky avatar r-pufky commented on July 28, 2024

I have a bit of time to look into this now.

from steam.

tsuckow avatar tsuckow commented on July 28, 2024

I have been fiddling with this and got wine-mono to install and also setup a vnc server so I could see wine errors.

I created a docker file to extend this image

FROM rpufky/steam:experimental

#THis works
RUN wget https://dl.winehq.org/wine/wine-mono/5.1.0/wine-mono-5.1.0-x86.msi && \
su steam -c 'wine64 msiexec /i wine-mono-5.1.0-x86.msi' && \
rm wine-mono-5.1.0-x86.msi

#This does not, may or may not been needed, but wine will hang for a while with a gui prompt about it.
RUN wget http://dl.winehq.org/wine/wine-gecko/2.47.1/wine-gecko-2.47.1-x86.msi && \
su steam -c 'wine64 msiexec /i wine-gecko-2.47.1-x86.msi' && \
rm wine-gecko-2.47.1-x86.msi

RUN DEBIAN_FRONTEND="noninteractive" apt-get install --yes x11vnc && \
\
apt-get clean autoclean && \
apt-get autoremove --yes && \
rm -rfv /var/lib/{apt,dpkg} /var/lib/{cache,log} /tmp/* /var/tmp/* && \
mkdir -p /var/lib/dpkg/{alternatives,info,parts,updates} && \
touch /var/lib/dpkg/status

Changes to custom_server:

Xvfb :1 -screen 0 1024x768x16 &
sleep 2
x11vnc -display :1 -bg -nopw -listen 0.0.0.0 -xkb
su steam -c "wine64 ${SERVER_DIR}/DedicatedServer64/SpaceEngineersDedicated.exe -path ${SERVER_DIR}/SpaceEngineer% 32   

It is worth noting source is available: https://github.com/KeenSoftwareHouse/SpaceEngineers Though it reads like babies first video game with everything prefixed with "My"

from steam.

tsuckow avatar tsuckow commented on July 28, 2024

I left off this evening trying to get it to load the GUI since maybe I could at least prove it runs that way. But I get CantStartFromCommandLine as an error so I'm not sure if there is something that needs to happen to trick it into thinking it is in an interactive setting. Rumor is there is a "-console" flag that who knows what it does.

from steam.

r-pufky avatar r-pufky commented on July 28, 2024

Thanks for the updates. Based on what I have been digging into, the space engineers binary was original 32bit and was able to run via Wine on Linux pretty easily. Update 01.133 forced the 64bit binary, requiring .NET 4.6.1+ VC 2013 and VC 2017 redistributables.

Most people closed up shop after this and just ran in a straight windows VM or virtualbox. Much of the material I've been able to find is pre 01.133.

References:

Some people have reported this working by using winetricks to workaround some issues.

I'm going to be adding winetricks to the base image so the tooling is available for usage; these should be built and pushed shortly.

Current State

Based on the dedicated server instructions above, I started the windows dedicated server, configured a test server, shut it down and copied those config files to /data/config. I updated the launch script to ensure dependencies are installed and linked to the configuration.

Unfortunately, that's as far as I've been able to progress it. Server doesn't crash anymore, but does not seem to be loading the world state on launch.

Per your mono comment: mono should not be installed if installing .NET, as mono is an opensource version of it. Not having mono installed is fine if the .NET packages are.

custom_server

#!/bin/bash
PROCESS_WAIT_TIME=25
WATCHDOG_TIME=300

# --- ADD required windows packages ---
su steam -c "winetricks dotnet472"
su steam -c "winetricks vcrun2013"
su steam -c "winetricks vcrun2017"

# --- Link to windows dedicated server location ---
ln -sf /data/config '/steam/.wine/drive_c/users/steam/Application Data/SpaceEngineersDedicated'

function shutdown() {
  echo 'Shutting down server ...'
  if [ "$(pgrep -n Conan)" != '' ]; then
    echo "Sending SIGINT to server (max ${PROCESS_WAIT_TIME} secs) ..."
    kill -SIGINT `pgrep -n Conan`
    sleep ${PROCESS_WAIT_TIME}
  fi
  if [ "$(pgrep wine)" != '' ]; then
    echo "Sending SIGINT to wine processes (max ${PROCESS_WAIT_TIME} sec) ..."
    kill -SIGINT `pgrep wine`
    sleep ${PROCESS_WAIT_TIME}
  fi
  exit 0
}
trap shutdown SIGINT SIGKILL SIGTERM

function start_server() {
  su steam -c "wine ${SERVER_DIR}/DedicatedServer64/SpaceEngineersDedicated.exe -console"
}

function watch_server() {
  if ps aux | grep [C]onanSandboxServer > /dev/null; then
    echo 'Server is running ...'
  else
    echo 'Starting server ...'
    start_server &
  fi
}

while true; do
  watch_server
  # background and using wait enables trap capture.
  sleep ${WATCHDOG_TIME} &
  wait
done

Then modifying /data/config/SpaceEngineers-Dedicated.cfg appropriately.

Conclusion

I'm absolutely willing to update the base image to make this server work, however, it looks like this might be a square peg/round hole problem; it might be better to get the dedicated server running on a standard Linux machine, then letting me know what was needed to get that working -- then I can apply changes to the image to make it work going forward. Fundamentally this seems to be an issue with running the Windows binary on Linux -- until that's solved and repeatable, the docker image will never work correctly.

Other references:
Official dedicated server useful posts
Space Engineers dedicated server configuration

from steam.

r-pufky avatar r-pufky commented on July 28, 2024

I left off this evening trying to get it to load the GUI since maybe I could at least prove it runs that way. But I get CantStartFromCommandLine as an error so I'm not sure if there is something that needs to happen to trick it into thinking it is in an interactive setting. Rumor is there is a "-console" flag that who knows what it does.

The -console flag launches the server going directly to the server console. See Space Engineers dedicated server configuration

from steam.

r-pufky avatar r-pufky commented on July 28, 2024

Closing issue due to lack of updates.

from steam.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.