Page 2 of 2

Re: luasteam - SteamWorks API Integration

Posted: Sat Jan 23, 2021 10:54 am
by groverburger
pauljessup wrote: Thu Jan 21, 2021 6:57 pm using on a Mac, and I'm having an issue making a .love. Whenever I just drag and drop and run it in love by itself, it finds. the .so just fine (in the same directory as my .lua source files). But when I zip up and archive into a .love file, it can no longer find the .so. Not sure how to fix it, it says it's looking in the lua path files for it, but still not finding it. Yet it works fine if I just run the source through the Lua app.
I would also like to know the answer to this - I'm running into the same issue. I think the problem is more in how love2d is handling files in fused mode vs non-fused mode, but still I would like to know how others solved this problem.

For what it's worth, I found out through some trial and error that having .so files in the saves folder works. However, this would then require an install script to set up this dependency before the game is initially launched which is not ideal.

TLDR: if somone knows and could explain a way to bundle .so and .dylib files in the fused mode love2d game app for distribution on Steam, it would be greatly appreciated.

Re: luasteam - SteamWorks API Integration

Posted: Sat Jan 23, 2021 11:06 am
by ivan
You could try my library which is FFI-based, using only the binaries provided by Valve:
https://love2d.org/forums/viewtopic.php?f=5&t=87917

Re: luasteam - SteamWorks API Integration

Posted: Mon Jan 25, 2021 5:01 pm
by pauljessup
Tried it, and had other issues.

Re: luasteam - SteamWorks API Integration

Posted: Wed Mar 08, 2023 2:55 pm
by zorfmorf
Hello! I've gone through the trouble and implemented most of the Steam Networking interfaces. It works fine on Windows and Linux as far as I can tell, but I'm looking for any people interested in testing it out before I make a merge request with the maintainer.

https://github.com/zorfmorf/luasteam

I also added documentation for everything including examples, though you will have to build the library and documentation by yourself as per the instructions.

High points
  • Encrypted, fast networking over UDP. Reliable or unreliable, connection oriented. The library does all the heavy lifting for you.
  • Connect diretly to other steam users (2P2) without worrying about any ports, NAT punching or anything
  • Standalone server support without having to run steam in the background

Re: luasteam - SteamWorks API Integration

Posted: Wed Mar 15, 2023 2:08 am
by zorfmorf
I've opened a PR and it's finished as far as I'm concerned.

Still looking for feedback from anybody willing to try it out.

https://github.com/uspgamedev/luasteam/pull/27

Re: luasteam - SteamWorks API Integration

Posted: Wed May 22, 2024 8:40 pm
by Mertcan_Krdm
Hi, for some reason starting my game with luasteam I get the following error: " main.lua:43: module 'libraries/steam/luasteam' not found: no field package.preload.." (So basically love is missing the file) and even when I am creating a new folder including only a main.lua file and the luasteam.dll this error still occurs. :x

Also requiring luasteam after the game has already launched gives the same error. :cry:

Are there some basic troubleshooting I could do? I might have missed a single step in the docs, but I don't see which one if there is one missing.
luasteam.dll is included in the folder and steam_api64.dll.
The folder requiring luasteam (Steam = require 'libraries/steam/luasteam') is also correct.

Re: luasteam - SteamWorks API Integration

Posted: Thu May 23, 2024 9:52 pm
by MrFariator
Could always provide the full error, to see if it gives a better hint. I've found that when loading any DLLs or .so, it's better to look at the whole traceback to see where lua is trying to find the thing from.
Personally, when making an AppImage following the steps on wiki, I had to place the luasteam.so in squashfs-root/lib/lua/5.1/luasteam.so, and that made the AppImage read the luasteam.so with just the following:

Code: Select all

require("luasteam")

Re: luasteam - SteamWorks API Integration

Posted: Fri May 24, 2024 2:33 pm
by Mertcan_Krdm
This is the full error:
Error

main.lua:15: module 'libraries/steam/luasteam' not found:
no field package.preload['libraries/steam/luasteam']
no 'libraries/steam/luasteam' in LOVE game directories.
no file 'libraries/steam/luasteam' in LOVE paths.
no file '.\libraries/steam/luasteam.lua'
no file 'C:\Program Files\LOVE\lua\libraries/steam/luasteam.lua'
no file 'C:\Program Files\LOVE\lua\libraries/steam/luasteam\init.lua'
no file '.\libraries/steam/luasteam.dll'
no file 'C:\Program Files\LOVE\libraries/steam/luasteam.dll'
no file 'C:\Program Files\LOVE\loadall.dll'
no file 'C:/Users/mertk/OneDrive/Desktop/Code/LoveGame/libraries/steam/luasteam.dll'


Traceback

[love "callbacks.lua"]:228: in function 'handler'
[C]: in function 'require'
main.lua:15: in main chunk
[C]: in function 'require'
[C]: in function 'xpcall'
[C]: in function 'xpcall'

Re: luasteam - SteamWorks API Integration

Posted: Fri May 24, 2024 7:34 pm
by MrFariator
Ah, I somehow misread your post, thinking it was about .so on linux, rather than .dll on windows. On windows, you need to place the .DLL(s) next to the executable, and it can't be in a subfolder. So, if you are running from source for testing purposes, it needs to be next to the love.exe (wherever it is installed on your system), and if you're running a fused executable, then it needs to be next to your game.exe.

The other alternative I believe is to append the subfolder(s) to the search path (by modifying package.cpath or such), but I've found it easier to just keep DLLs at root level relative to the executable.