Ini adalah emulator uap yang meniru fitur Steam Online pada LAN. Ini bekerja pada Linux dan Windows. Untuk readme tentang cara menggunakannya lihat: rilis readme
Anda mengganti API Steam .dll atau .so dengan tambang (untuk langkah -langkah lengkap, lihat rilis ReadMe) dan kemudian Anda dapat meletakkan Steam di tempat sampah dan memainkan game Anda baik di pemain tunggal di LAN tanpa Steam (dengan asumsi game tidak memiliki DRM dan menggunakan Steam untuk online).
Jika Anda seorang pengembang game dan membuat kesalahan dengan terlalu banyak tergantung pada API Steam dan ingin merilis versi game Anda tanpa itu dan tidak ingin menulis ulang game Anda, ini untuk Anda. Ini adalah LGPLV3+ berlisensi sehingga satu -satunya kode sumber yang perlu Anda terbitkan adalah kode sumber emulator ini (dan hanya jika Anda membuat modifikasi untuk itu).
Ganti steam_api (64) .dll (libsteam_api.so di Linux) dari game dengan tambang. Untuk Linux pastikan bahwa jika API asli adalah 32 bit Anda menggunakan build 32 bit dan jika 64 bit Anda menggunakan build 64 bit.
Letakkan file steam_appid.txt yang berisi appid game tepat di sampingnya jika belum ada satu.
Jika game Anda memiliki Steam_API asli (64) .dll atau libsteam_api.so lebih tua dari Mei 2016 (pada Windows: Properties-> Digital Signatures-> Timestamp) Anda mungkin harus menambahkan steam_interfaces.txt di samping perpustakaan emulator saya jika game tidak berfungsi. Ada skrip Linux untuk menghasilkannya di folder skrip repo ini.
Untuk informasi lebih lanjut lihat: Rilis ReadMe
Anda dapat mengunduh Git Builds terbaru untuk Linux dan Windows di situs web GitLab Pages dan rilis stabil di bagian rilis repo ini.
Salah satu alasan saya membuat kode open source ini adalah karena saya ingin kontribusi. Kecuali kode Anda terkait dengan hal -hal eksperimental yang dibutuhkan untuk bekerja pada Linux dan Windows. Memiliki perilaku yang akurat lebih penting daripada membuat permainan berfungsi. Memiliki perilaku yang tidak akurat mungkin memperbaiki satu permainan tetapi akan merusak yang lain.
#goldberg: matrix.org
Ketergantungan: Protobuf-lite
Instal protobuf-lite (paket dev) dan protoc (atau kompiler protobuf atau apa pun yang disebut dalam distro Anda) menggunakan manajer paket Anda.
Kemudian lakukan: make
Dan itu akan membangun rilis build (jangan lupa untuk menambahkan sesuatu seperti -j8 jika komputer Anda bukan omong kosong dan Anda ingin membangun dengan kecepatan yang layak).
Untuk membangun debug build: make debug
Makefile saya menyebalkan sehingga Anda mungkin perlu melakukannya: make clean jika Anda ingin membangun debug build setelah membangun pembangunan rilis atau sebaliknya.
Untuk pembuatan rilis saya, saya membangunnya di Steamos menggunakan skrip build_steamos.sh . Agar berfungsi, Anda memerlukan versi x86 dari protobuf yang diinstal ke: ../protobuf/prefix_x86/ dan versi x64 yang diinstal ke: ../protobuf/prefix/
Hal pertama yang harus Anda lakukan adalah menginstal git untuk windows. Git untuk windows
Kemudian instal Visual Studio Build Tools: Microsoft Build Tools (pastikan Anda menginstal alat C ++ Build. Cukup pilih C++ build tools di installer dan tekan Install.)
Buat folder baru di suatu tempat di komputer Anda.
Masuk ke folder itu lalu klik kanan buka prompt perintah git. (Klik kanan di folder-> bash git di sini)
Jalankan perintah:
git clone https://github.com/Microsoft/vcpkg
cd vcpkg
./bootstrap-vcpkg.bat
./vcpkg install protobuf --triplet x86-windows-static
./vcpkg install protobuf --triplet x64-windows-static
cd ..
git clone https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
cd goldberg_emulator
Ini harus membangun dan menginstal semua dependensi dan mengkloning repo. Beberapa perintah seperti bootstrap-vcpkg.bat dan vcpkg instalasi mungkin memakan waktu.
Kemudian untuk membangun versi eksperimental debug: build_win_debug_experimental.bat
Untuk membangun versi rilis Run: build_win_release.bat
Jika karena alasan tertentu Anda ingin mengatur direktori protobuf ke sesuatu yang berbeda, Anda dapat mengedit: build_set_protobuf_directories.bat
Masuk ke folder goldberg_emulator kemudian klik kanan buka prompt perintah git. (Klik kanan di folder-> bash git di sini)
Jalankan perintah:
git pull
Target berikut disertakan dengan konfigurasi CMake untuk proyek ini:
Sementara semua target disertakan untuk semua platform/varian build, ada beberapa poin yang perlu diperhatikan:
Konfigurasi CMake untuk proyek ini juga mencakup dukungan instal. Menginstal proyek akan menghasilkan satu set file output yang lebih bersih (daripada file build mentah) dan akan menyalin melalui readmes, alat, dan file dukungan lainnya yang sesuai dari direktori proyek. Instalasi ini disusun sebagai yang diikuti:
+ install-folder
|- (lib)steam_api(64).[dll|so]
|- (lib)steamclient(64).[dll|so]
|- (lib)steamnetworkingsockets(64).[dll|so]
|- Readme_release.txt
|- Readme_debug.txt // Only for debug build's
|- Readme_experimental.txt // Only for experimental build's
|- steam_appid.EDIT_AND_RENAME.txt
|- steam_interfaces.EXAMPLE.txt
|+ lobby_connect
|- lobby_connect(64)(.exe)
|- Readme_lobby_connect.txt
|+ tools
|- generate_interfaces(64)(.exe)
|- find_interfaces.ps1
|- find_interfaces.sh
|- Readme_generate_interfaces.txt
|+ steam_settings.EXAMPLE
|- ... // steam_settings example files
Perhatikan bahwa jika tidak ada CMAKE_INSTALL_PREFIX Define diatur untuk pembuatan cmake (atau metode lain untuk mengatur direktori instalasi khusus digunakan) Direktori instalasi spesifik OS default akan digunakan, ini adalah:
c:/Program Files/${PROJECT_NAME}/usr/localSilakan lihat bagian 'Ubah Direktori Instalasi' dari Readme ini untuk informasi lebih lanjut.
+ some-top-level-folder
|- vcpkg
|- goldberg_emulator
bootstrap-vcpkg.bat dari folder instalasivcpkg install protobuf --triplet x64-windows-static && vcpkg install protobuf --triplet x86-windows-staticRepo ini mencakup file cmakesettings.json yang berisi konfigurasi untuk platform target berikut dan membangun varian:
Konfigurasi ini harus dimuat secara otomatis saat membuka folder Goldberg_emulator di Visual Studio. Untuk informasi lebih lanjut tentang cara menggunakan konfigurasi ini (dan proyek cmake di Visual Studio secara umum) silakan lihat: https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019
Visual Studio Builds untuk konfigurasi Windows dan WSL dari akan dikeluarkan ke folder berikut: ${projectDir}out${workspaceHash}build<configuration name>
Anda juga dapat memilih untuk menginstal langsung dari Visual Studio. Visual Studio menginstal untuk konfigurasi windows dari akan dikeluarkan ke folder berikut: ${projectDir}outinstall<configuration name>
Saat menggunakan konfigurasi ini adalah beberapa poin yang perlu diperhatikan:
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars64.bat"
cd "<build folder>"
cmake "<goldberg_emulator src folder>" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="<vcpkg installation folder>scriptsbuildsystemsvcpkg.cmake"
Perhatikan bahwa jika Anda menggunakan alat build untuk Visual Studio 2019 jalur ke vcvars64.bat sedikit berbeda:
call "<Path to Build Tools for Visual Studio 2019 Installation Folder>2019BuildToolsVCAuxiliaryBuildvcvars64.bat"
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars64.bat"
cd "<build folder>"
nmake
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars64.bat"
cd "<build folder>"
nmake install
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars86.bat"
cd "<build folder>"
cmake "<goldberg_emulator src folder>" -DVCPKG_TARGET_TRIPLET:STRING="x86-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="<vcpkg installation folder>scriptsbuildsystemsvcpkg.cmake"
Perhatikan bahwa jika Anda menggunakan alat build untuk Visual Studio 2019 jalur ke vcvars86.bat sedikit berbeda:
call "<Path to Build Tools for Visual Studio 2019 Installation Folder>2019BuildToolsVCAuxiliaryBuildvcvars86.bat"
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars86.bat"
cd "<build folder>"
nmake
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars86.bat"
cd "<build folder>"
nmake install
sudo apt install build-essential )sudo apt install cmake )sudo apt install libprotobuf-dev protobuf-compiler ) cd "<build folder>"
cmake "<goldberg_emulator src folder>"
cd "<build folder>"
make
cd "<build folder>"
make install
Untuk mengatur generator, tambahkan -G "<Generator Name>" misalnya
cmake .. -G "Ninja" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake"
Untuk mengatur tipe build, append -DCMAKE_BUILD_TYPE:STRING="<Build Type>" misalnya
cmake .. -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo"
Untuk mengatur Build Eksperimental, tambahkan -DEMU_EXPERIMENTAL_BUILD:BOOL=ON misalnya
cmake .. -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DEMU_EXPERIMENTAL_BUILD:BOOL=ON
Untuk membangun konfigurasi cmake yang dihasilkan dengan ninja:
cd "<build folder>"
ninja
Untuk menggunakan arah instalasi khusus, tambahkan -DCMAKE_INSTALL_PREFIX:STRING="<Custom Installation Directory>" misalnya
cmake .. -DCMAKE_INSTALL_PREFIX:STRING="./install/" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo"
Jika Anda tidak ingin preset direktori instalasi selama langkah generasi, Anda juga dapat menggunakan alat build atau OS spesifik, beberapa contohnya adalah:
nmake install prefix="<Custom Installation Directory>"make DESTDIR="<Custom Installation Directory>" install Saya pikir cara emulator uap lainnya memiliki INI ketika Anda mengatur semuanya pada pengaturan per game bodoh. Satu -satunya hal yang harus ditetapkan pada pengaturan per game adalah hal -hal yang spesifik untuk game seperti appid, dlc, mod, versi antarmuka, dll ...
Sisanya seperti nama Anda harus diatur di tempat global karena saya tidak suka harus mengatur setiap nama semua orang di INI untuk setiap game yang saya salin kepada orang -orang ketika saya ingin menyalin mereka untuk bermain di LAN saya.
EMU saya dibuat sedemikian rupa sehingga Anda bisa menginstalnya di game dan kemudian menyalin game ke orang -orang dan mereka tidak perlu mengubah apa pun.
Saya setuju bahwa fakta bahwa saya memiliki beberapa file mungkin bodoh tetapi sebenarnya tidak. Sistem file Anda adalah database jadi mengapa Anda harus mereplikasi dengan membuat satu file konfigurasi ketika Anda bisa memiliki banyak. Jauh lebih mudah untuk mengelola pengkodean bijaksana.
Tidak ada perbedaan dalam fungsi antara versi Windows normal dan versi Linux. Windows memiliki bangunan eksperimental yang memiliki fitur yang hanya masuk akal di Windows.
Baca ini jika Anda ingin tahu apa itu: readme eksperimental
Ini ilegal seperti anggur atau emulator konsol HLE. Yang dilakukannya hanyalah menghapus ketergantungan uap dari permainan uap Anda.
Itu tidak merusak DRM. Jika permainan memiliki perlindungan yang tidak memungkinkan Anda menggunakan API Steam API khusus, itu harus retak sebelum Anda menggunakan emulator saya. Steam adalah DRM sebanyak API mana pun adalah DRM. Steam memiliki DRM aktual yang disebut SteamStub yang dapat dengan mudah retak tetapi ini tidak akan memecahkannya untuk Anda.
Tidak, saya tidak peduli membuat game ini berfungsi karena mereka menggunakan API seperti koordinator game yang tidak digunakan game lain. Valve juga terus mengubahnya.
Namun jika orang lain membuang -buang waktu mereka untuk membuat mereka bekerja dan saya akan dengan senang hati menggabungkan pekerjaan mereka.