Blog (107)
Komentarze (2.3k)
Recenzje (0)

STEAM - co z wersją dla Linuksa?

@webnullSTEAM - co z wersją dla Linuksa?11.02.2011 23:39

Witam, postaram się nie rozpisać za bardzo (wiem, że nie każdy lubi zbyt długie teksty), a jednocześnie opowiedzieć jak to było z tym STEAMem dla Linuksa.

Oferta pracy

Wszystko zaczęło się od oferty pracy na stanowisko Senior Software Engineer w którym jednym z zadań było tworzenie Linuksowego portu gier napisanych dla Windows.

Link do oferty: http://www.valvesoftware.com/job-SenSoftEngineer.html

Archiwalnie zrzut ekranu: http://img145.imageshack.us/img145/3649/valvesoftwareengineer.png

Pojawiło się pełno teorii jako, że Valve Software zamierza wydać oficjalnego klienta jednej z największych platform do grania - STEAM.

Przeportowanie STEAM dla MacOSX

MacOSX tak samo jak systemy oparte o Linuksa używają X11 oraz OpenGL dlatego sprawa z tymi dwoma rzeczami już jest załatwiona, co jeszcze stanęło na drodze portu dla Linuksa?

Oto lista podobieństw oraz głównych różnic tych dwóch systemów:


- Inna biblioteka graficzna (GTK/QT dla Linuksa, "Cocoa/Carbon?" dla MacOSX)
- Inne jądro
- Inny domyślny podsystem graficzny w MacOSX
+ Ten sam podsystem wyświetlania grafiki 3D, mowa o OpenGL
+ Obydwa systemy są Uniksopodobne, podobne założenia, "wszystko jest plikiem"
+ To samo środowisko skryptowe czyli bash jako domyślna powłoka stąd jeden launcher dla dwóch systemów

Jednym z ważnych dowodów na to, że Valve "po cichu" tworzy klienta dla Linuksa był kod skryptu uruchamiającego STEAM dla MacOSX napisany w bashu.


#!/bin/bash

# figure out the absolute path to the script being run a bit
# non-obvious, the ${0%/*} pulls the path out of $0, cd's into the
# specified directory, then uses $PWD to figure out where that
# directory lives - and all this in a subshell, so we don't affect
# $PWD

STEAMROOT=$(cd "${0%/*}" && echo $PWD)

#determine platform
UNAME=`uname`
if [ "$UNAME" == "Darwin" ]; then
   PLATFORM=osx32
   # prepend our lib path to LD_LIBRARY_PATH
   export DYLD_LIBRARY_PATH="${STEAMROOT}"/${PLATFORM}:$DYLD_LIBRARY_PATH
elif [ "$UNAME" == "Linux" ]; then
   PLATFORM=linux32
   # prepend our lib path to LD_LIBRARY_PATH
   export LD_LIBRARY_PATH="${STEAMROOT}"/${PLATFORM}:$LD_LIBRARY_PATH
fi

if [ -z $STEAMEXE ]; then
  STEAMEXE=steam
fi

ulimit -n 2048

# and launch steam
cd "$STEAMROOT"

STATUS=42
while [ $STATUS -eq 42 ]; do
        ${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE} $@
        STATUS=$?
        # are we running osx?
        if [ $STATUS -eq 42 -a ${PLATFORM} == "osx32" -a -f Info.plist ]; then
                # are we running from in a bundle?
                exec open "${STEAMROOT}"/../..
        fi
done
exit $STATUS

Powyższy kod jest jednoznacznym dowodem na to, że STEAM był testowany pod Linuksem a także, że Linux jest platformą wpisaną w planach tak jak MacOSX.

Wczesne wersje plików binarnych skompilowanych dla Linuksa

Przez bardzo krótki okres czasu były publicznie dostępne pliki binarne klienta STEAM dla Linuksa pod tym adresem, sam zdążyłem je pobrać pamiętam, że miałem te pliki na pendrive lecz aktualnie już ich nie posiadam dlatego nie jestem w stanie udostępnić ;-)

Wyjście w konsoli klienta STEAM:

yjwong@yjwong-laptop:~/Documents/steam$ ./steam.sh 
[  0%] !!! Fatal Error: Failed to determine download location for universe 0
[----] Verifying installation...
[  0%] Downloading Update...
[  0%] !!! Fatal Error: Failed to determine download location for universe 0
unlinked 0 orphaned pipes
CellID: Fetching server list from CSDS. . .
CellID: CSDS returned 168 servers.
CellID: Connecting to 62.118.240.140:27031. . .
CellID: Connect to 62.118.240.140:27031 took 524 MS
CellID: New Best!
CellID: Connecting to 209.197.6.226:27031. . .
Shutting down. . .
CellID: Connect to 209.197.6.226:27031 took 326 MS
CellID: New Best!
CellID: Connecting to 203.77.185.186:27031. . .
CellID: Connect to 203.77.185.186:27031 took 286 MS
CellID: New Best!
CellID: Connecting to 69.28.153.109:27031. . .
CellID: Connect to 69.28.153.109:27031 took 380 MS
CellID: Connecting to 79.141.161.2:27031. . .
CellID: exiting!
unlinked 2 orphaned pipes
CAsyncIOManager: 0 threads terminating.  0 reads, 0 writes, 0 deferrals.
CAsyncIOManager: 1657 single object sleeps, 0 multi object sleeps
CAsyncIOManager: 0 single object alertable sleeps, 1 multi object alertable sleeps
yjwong@yjwong-laptop:~/Documents/steam$

Warto zauważyć, że na wyjściu z konsoli nie ma charakterystycznych dla Wine wpisów.

Lecz abyście Mi uwierzyli pokażę zrzuty ekranu czy nawet film wideo w którym widać proces uruchamiania STEAM dla Linuksa.

@edycja 14.02.2011: Dodaję także kilka ważniejszych zrzutów ekranu które pominąłem: Główne okno STEAM Okno nowości Wbudowany czat

Źródła: http://www.phoronix.com/scan.php?page=news_item&px=ODIzMA http://www.phoronix.com/scan.php?page=news_item&px=ODIyOQ

http://www.youtube.com/watch?v=VPWEX23osn0

Drukowalne ciągi znaków odnalezione w kliencie beta dla MacOSX

Przy pomocy narzędzia strings odnaleziono ciągi "Linux" w becie klienta dla MacOSX:

ReadToken overflow 
WIN32 
VISTA 
WIN7
POSIX 
LINUX 
X360 
Assertion Failed: kv

windows 
macos 
linux 
unknown 
macos104 
macos1058 
macos106 
linux22 
linux24 
linux26

Co oznacza, że zapewne w kodzie znajdują się pewnego rodzaju instrukcje być może dla kompilatora pokazujące który kod jest przeznaczony dla jakiego systemu(mało prawdopodobne?) bądź dla statystyk popularności danego systemu wśród użytkowników STEAM.

Odnośnie windowsowej wersji klienta nie znaleziono już tego co pod MacOSX, wyniki bardziej wskazują na hlds, lecz jest jedna wzmianka o kliencie:

webnull@webnull-gentoo-desktop /media/Disk/Gry/STEAM $ strings Steam.exe |grep ux
9uxr
uxWP
ux9u
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\auxdata.cpp
german-luxembourg
french-luxembourg
Bad eCurrentLinuxClientVersion field in CClientConfigRecord
Bad eCurrentLinuxHldsUpdateToolVersion field in CClientConfigRecord
Bad eBetaLinuxHldsUpdateToolVersion field in CClientConfigRecord
Empty eBetaLinuxHldsUpdateToolPassword in CClientConfigRecord
Luxembourg
uxyKNOGJKHKK|

Z tego co widać, że jest wersja klienta Linuksowego (STEAM?) oraz wersja klienta Linuksowego serwera dedykowanego (HLDS - bądź jego aktualizatora?).

Gry w sklepie STEAM dostępne dla platformy Linux

W sklepie STEAM pojawiły się gry które w minimalnych wymaganiach sprzętowych miały podanego Linuksa obok Windowsa i MacOSX - a to dziwne, Valve nie dopuściło by czegoś takiego skoro STEAM nie byłby dla Linuksa przecież nie można okłamywać potencjalnych klientów.

Oficjalna informacja od producenta

There's no Linux version that we're working on right now.

to słowa wypowiedziane przez przedstawiciela Valve Douga Lombardiego, oznaczają one, że nie ma aktualnie w planie żadnej wersji STEAM dla Linuksa nad którą by teraz Valve pracowało.

Oczywiście publiczna wypowiedź przedstawiciela Valve nie oznacza, że klienta Linuksowego nie ma w planach.

Osobiście jestem przekonany, że Valve przynajmniej zamierzało wydać klienta STEAM dla Linuksa - czym może być spowodowana nagła zmiana?

Może Valve specjalnie skłamało aby pozytywnie zaskoczyć społeczność?

Co jeżeli ktoś podłożył te wszystkie dowody? (najmniej prawdopodobne - pliki klienta były dostępne na serwerach oficjalnych platformy STEAM, sam pobrałem te pliki kiedyś - szkoda, że do dziś ich nie posiadam).

Pamiętam kiedyś jak pobierałem pliki binarne klienta Linuksowego to dostępne były także pliki binarne klienta Windowsowego i tego dla MacOSX.

Przykładem dawniej to było: http://store.steampowered.com/public/client/steam_client_linux # 403 (zablokowano) http://store.steampowered.com/public/client/steam_client_windows # 404 (brak) http://store.steampowered.com/public/client/steam_client_macosx # 404 (brak)

Dziwnym trafem akurat katalog steam_client_linux zablokowano, a pozostałe nie istnieją - zostały skasowane. Jakby Valve coś ukrywało w tym jednym katalogu.

@edycja - 12.02.2011 Być może to nie były plotki, a większa firma jak Microsoft opłaciła wycofanie się Valve z tworzenia klienta dla konkurencyjnego systemu operacyjnego?

To jest całkowicie możliwe ponieważ natywny klient mógłby spowodować nagły wzrost popularności Linuksa, bardzo znaczący wzrost...

Zapraszam do udziału w dyskusji na temat STEAMa.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.